mirror of
https://github.com/containrrr/watchtower.git
synced 2025-12-16 23:20:12 +01:00
91 lines
No EOL
2.1 KiB
JavaScript
91 lines
No EOL
2.1 KiB
JavaScript
|
|
const apiFactory = () => {
|
|
const baseUrl = "http://localhost:8080/v1";
|
|
let token = "";
|
|
|
|
const headers = () => ({
|
|
'Authorization': 'Bearer ' + token
|
|
});
|
|
|
|
const checkLogin = async () => {
|
|
const token = localStorage.getItem("token");
|
|
|
|
if (token) {
|
|
const isLoggedIn = await logIn(token);
|
|
return isLoggedIn;
|
|
}
|
|
return false;
|
|
};
|
|
|
|
const logIn = async (password, remember) => {
|
|
token = password;
|
|
const response = await fetch(baseUrl + "/list", {
|
|
credentials: 'include',
|
|
headers: headers()
|
|
});
|
|
|
|
if (response.ok) {
|
|
if (remember === true) {
|
|
localStorage.setItem("token", password);
|
|
}
|
|
return true;
|
|
}
|
|
|
|
token = "";
|
|
return false;
|
|
};
|
|
|
|
const logOut = () => {
|
|
localStorage.clear();
|
|
};
|
|
|
|
const list = async () => {
|
|
const response = await fetch(baseUrl + "/list", {
|
|
credentials: 'include',
|
|
headers: headers()
|
|
});
|
|
const data = await response.json();
|
|
return data;
|
|
};
|
|
|
|
const check = async (containerId) => {
|
|
const requestData = {
|
|
ContainerId: containerId
|
|
};
|
|
const response = await fetch(baseUrl + "/check", {
|
|
method: 'POST',
|
|
credentials: 'include',
|
|
headers: {
|
|
...headers(),
|
|
'Content-Type': 'application/json',
|
|
},
|
|
body: JSON.stringify(requestData)
|
|
});
|
|
const data = await response.json();
|
|
return data;
|
|
};
|
|
|
|
const update = async (images) => {
|
|
let updateUrl = new URL(baseUrl + "/update");
|
|
|
|
if (images instanceof Array) {
|
|
images.map(image => updateUrl.searchParams.append("image", image));
|
|
}
|
|
|
|
const response = await fetch(updateUrl.toString(), {
|
|
credentials: 'include',
|
|
headers: headers(),
|
|
});
|
|
|
|
return response.ok;
|
|
};
|
|
|
|
return {
|
|
checkLogin,
|
|
logIn,
|
|
logOut,
|
|
list,
|
|
check,
|
|
update
|
|
}
|
|
}; |