3
0
Fork 0
mirror of https://github.com/ZeppelinBot/Zeppelin.git synced 2025-05-10 12:25:02 +00:00

Dashboard work. Move configs to DB. Some script reorganization. Add nodemon configs.

This commit is contained in:
Dragory 2019-06-22 18:52:24 +03:00
parent 168d82a966
commit 2adc5af8d7
39 changed files with 8441 additions and 2915 deletions

53
dashboard/src/api.ts Normal file
View file

@ -0,0 +1,53 @@
const apiUrl = process.env.API_URL;
type QueryParamObject = { [key: string]: string | null };
function buildQueryString(params: QueryParamObject) {
if (Object.keys(params).length === 0) return "";
return (
"?" +
Array.from(Object.entries(params))
.map(pair => `${encodeURIComponent(pair[0])}=${encodeURIComponent(pair[1] || "")}`)
.join("&")
);
}
let apiKey = null;
export function setApiKey(newKey) {
apiKey = newKey;
}
export function hasApiKey() {
return apiKey != null;
}
export function resetApiKey() {
apiKey = null;
}
export function request(resource, fetchOpts: RequestInit = {}) {
return fetch(`${apiUrl}/${resource}`, fetchOpts)
.then(res => res.json())
.catch(err => {
console.log(err);
});
}
export function get(resource: string, params: QueryParamObject = {}) {
const headers: Record<string, string> = apiKey ? { "X-Api-Key": (apiKey as unknown) as string } : {};
return request(resource + buildQueryString(params), {
method: "GET",
headers,
});
}
export function post(resource: string, params: QueryParamObject = {}) {
const headers: Record<string, string> = apiKey ? { "X-Api-Key": (apiKey as unknown) as string } : {};
return request(resource + buildQueryString(params), {
method: "POST",
body: JSON.stringify(params),
headers: {
...headers,
"Content-Type": "application/json",
},
});
}