mirror of
https://github.com/Soulful-Sailer/Event-Tracker.git
synced 2026-03-29 16:16:46 -05:00
74 lines
2.4 KiB
JavaScript
74 lines
2.4 KiB
JavaScript
let eventServer = new URL("http://" + window.location.host);
|
|
|
|
/**
|
|
* sends the specified GET request to the server and returns the response
|
|
* @param {string} filePath - path to requested file on server
|
|
* @param {string} dataType - type of data requested (text, json, blob)
|
|
* @param {Object} [headers] - request headers if needed
|
|
* @param {Object} [parameters] - Search Parameters
|
|
* @returns {Response} response - data returned by the server, decoded as indended
|
|
*/
|
|
function fetchFile(filePath, dataType, headers={}, parameters={}) {
|
|
//setup URL
|
|
let fileURL = eventServer;
|
|
fileURL.pathname = `/${filePath}`;
|
|
for (p in parameters) fileURL.searchParams.append(p, parameters[p]);
|
|
|
|
headers["method"] = "GET";
|
|
return fetch(fileURL, headers)
|
|
.then(response => {
|
|
//If server replies with requested file, return it. Else log HTTP error
|
|
if (response.ok) {
|
|
//decode the response as indended
|
|
switch (dataType) {
|
|
case "text": return response.text().then(data => { return data }); break;
|
|
case "json": return response.json().then(data => { return data }); break;
|
|
case "blob": return response.blob().then(data => { return data }); break;
|
|
}
|
|
}
|
|
else {
|
|
console.log(`HTTP-Error: ${events.status}\n${fileURL}`);
|
|
return undefined;
|
|
}
|
|
})
|
|
//if request is unable to be sent, log error
|
|
.catch(error => {
|
|
console.log(error.message);
|
|
return undefined;
|
|
});
|
|
}
|
|
|
|
/**
|
|
* sends specified data as a POST request to the server
|
|
* @param {string} filePath - path to requested file on server
|
|
* @param {string} data - stringified data to be sent to server
|
|
* @param {string} contentType - content type header for POST request
|
|
* @param {Object} [headers] - request headers if needed
|
|
* @returns {Response} response - server's response to the request
|
|
*/
|
|
function postData(filePath, data, contentType, headers={}) {
|
|
//setup URL
|
|
let fileURL = eventServer;
|
|
fileURL.pathname = `/${filePath}`;
|
|
|
|
headers["method"] = "POST";
|
|
headers["headers"] = {"Content-Type" : contentType};
|
|
headers["body"] = data;
|
|
|
|
return fetch(fileURL, headers)
|
|
.then(response => {
|
|
//return the server's response, log if there is an HTTP error
|
|
if (response.ok)
|
|
return response;
|
|
else {
|
|
console.log(`HTTP-Error: ${response.status}\n${fileURL}`);
|
|
return response;
|
|
}
|
|
})
|
|
//if request is unable to be sent, log error
|
|
.catch(error => {
|
|
console.log(error.message);
|
|
return undefined;
|
|
});
|
|
}
|