2023-12-26 19:22:09 +00:00
|
|
|
import { WEBUI_API_BASE_URL } from '$lib/constants';
|
|
|
|
|
|
2024-06-04 04:17:43 +00:00
|
|
|
export const getAdminDetails = async (token: string) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/admin/details`, {
|
|
|
|
|
method: 'GET',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
Authorization: `Bearer ${token}`
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-06-04 04:17:43 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const getAdminConfig = async (token: string) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/admin/config`, {
|
|
|
|
|
method: 'GET',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
Authorization: `Bearer ${token}`
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-06-04 04:17:43 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const updateAdminConfig = async (token: string, body: object) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/admin/config`, {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
Authorization: `Bearer ${token}`
|
|
|
|
|
},
|
|
|
|
|
body: JSON.stringify(body)
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-06-04 04:17:43 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
|
2023-12-26 19:32:22 +00:00
|
|
|
export const getSessionUser = async (token: string) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
2023-12-28 17:55:54 +00:00
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/`, {
|
2023-12-26 19:32:22 +00:00
|
|
|
method: 'GET',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
Authorization: `Bearer ${token}`
|
2024-06-19 21:38:09 +00:00
|
|
|
},
|
|
|
|
|
credentials: 'include'
|
2023-12-26 19:32:22 +00:00
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2023-12-26 19:32:22 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
|
2024-11-05 22:20:54 +00:00
|
|
|
export const ldapUserSignIn = async (user: string, password: string) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/ldap`, {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json'
|
|
|
|
|
},
|
|
|
|
|
credentials: 'include',
|
|
|
|
|
body: JSON.stringify({
|
|
|
|
|
user: user,
|
|
|
|
|
password: password
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-11-05 22:20:54 +00:00
|
|
|
|
|
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const getLdapConfig = async (token: string = '') => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/admin/config/ldap`, {
|
|
|
|
|
method: 'GET',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
...(token && { authorization: `Bearer ${token}` })
|
2024-11-06 01:41:24 +00:00
|
|
|
}
|
2024-11-05 22:20:54 +00:00
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-11-05 22:20:54 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
2024-11-06 01:41:24 +00:00
|
|
|
};
|
2024-11-05 22:20:54 +00:00
|
|
|
|
|
|
|
|
export const updateLdapConfig = async (token: string = '', enable_ldap: boolean) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/admin/config/ldap`, {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
...(token && { authorization: `Bearer ${token}` })
|
|
|
|
|
},
|
|
|
|
|
body: JSON.stringify({
|
|
|
|
|
enable_ldap: enable_ldap
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-11-05 22:20:54 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
2024-11-06 01:41:24 +00:00
|
|
|
};
|
2024-11-05 22:20:54 +00:00
|
|
|
|
|
|
|
|
export const getLdapServer = async (token: string = '') => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/admin/config/ldap/server`, {
|
|
|
|
|
method: 'GET',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
...(token && { authorization: `Bearer ${token}` })
|
2024-11-06 01:41:24 +00:00
|
|
|
}
|
2024-11-05 22:20:54 +00:00
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-11-05 22:20:54 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
2024-11-06 01:41:24 +00:00
|
|
|
};
|
2024-11-05 22:20:54 +00:00
|
|
|
|
|
|
|
|
export const updateLdapServer = async (token: string = '', body: object) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/admin/config/ldap/server`, {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
...(token && { authorization: `Bearer ${token}` })
|
|
|
|
|
},
|
|
|
|
|
body: JSON.stringify(body)
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-11-05 22:20:54 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
|
2023-12-26 19:22:09 +00:00
|
|
|
export const userSignIn = async (email: string, password: string) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/signin`, {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json'
|
|
|
|
|
},
|
2024-06-20 20:14:58 +00:00
|
|
|
credentials: 'include',
|
2023-12-26 19:22:09 +00:00
|
|
|
body: JSON.stringify({
|
|
|
|
|
email: email,
|
|
|
|
|
password: password
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
2023-12-26 19:32:22 +00:00
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2023-12-26 19:22:09 +00:00
|
|
|
|
2023-12-26 19:32:22 +00:00
|
|
|
error = err.detail;
|
2023-12-26 19:22:09 +00:00
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
|
2024-04-04 19:10:45 +00:00
|
|
|
export const userSignUp = async (
|
|
|
|
|
name: string,
|
|
|
|
|
email: string,
|
|
|
|
|
password: string,
|
|
|
|
|
profile_image_url: string
|
|
|
|
|
) => {
|
2023-12-26 19:22:09 +00:00
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/signup`, {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json'
|
|
|
|
|
},
|
2024-06-20 20:14:58 +00:00
|
|
|
credentials: 'include',
|
2023-12-26 19:22:09 +00:00
|
|
|
body: JSON.stringify({
|
|
|
|
|
name: name,
|
|
|
|
|
email: email,
|
2024-04-04 19:08:20 +00:00
|
|
|
password: password,
|
|
|
|
|
profile_image_url: profile_image_url
|
2023-12-26 19:22:09 +00:00
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
2023-12-26 19:32:22 +00:00
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2023-12-26 19:32:22 +00:00
|
|
|
error = err.detail;
|
2023-12-26 19:22:09 +00:00
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
2023-12-29 08:26:47 +00:00
|
|
|
|
2024-10-24 20:35:29 +00:00
|
|
|
export const userSignOut = async () => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/signout`, {
|
|
|
|
|
method: 'GET',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json'
|
|
|
|
|
},
|
|
|
|
|
credentials: 'include'
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
2025-06-05 11:20:27 +00:00
|
|
|
return res.json();
|
2024-10-24 20:35:29 +00:00
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-10-24 20:35:29 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
2025-05-16 20:38:39 +00:00
|
|
|
return res;
|
2024-10-24 20:35:29 +00:00
|
|
|
};
|
|
|
|
|
|
2024-05-02 00:55:18 +00:00
|
|
|
export const addUser = async (
|
|
|
|
|
token: string,
|
|
|
|
|
name: string,
|
|
|
|
|
email: string,
|
|
|
|
|
password: string,
|
2025-05-05 12:17:20 +00:00
|
|
|
role: string = 'pending',
|
|
|
|
|
profile_image_url: null | string = null
|
2024-05-02 00:55:18 +00:00
|
|
|
) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/add`, {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
2024-05-02 01:06:02 +00:00
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
...(token && { authorization: `Bearer ${token}` })
|
2024-05-02 00:55:18 +00:00
|
|
|
},
|
|
|
|
|
body: JSON.stringify({
|
|
|
|
|
name: name,
|
|
|
|
|
email: email,
|
|
|
|
|
password: password,
|
2025-05-05 12:17:20 +00:00
|
|
|
role: role,
|
|
|
|
|
...(profile_image_url && { profile_image_url: profile_image_url })
|
2024-05-02 00:55:18 +00:00
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-05-02 00:55:18 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
|
2024-01-27 05:22:25 +00:00
|
|
|
export const updateUserProfile = async (token: string, name: string, profileImageUrl: string) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/update/profile`, {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
...(token && { authorization: `Bearer ${token}` })
|
|
|
|
|
},
|
|
|
|
|
body: JSON.stringify({
|
|
|
|
|
name: name,
|
|
|
|
|
profile_image_url: profileImageUrl
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-01-27 05:22:25 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
|
2023-12-29 08:26:47 +00:00
|
|
|
export const updateUserPassword = async (token: string, password: string, newPassword: string) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/update/password`, {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
...(token && { authorization: `Bearer ${token}` })
|
|
|
|
|
},
|
|
|
|
|
body: JSON.stringify({
|
|
|
|
|
password: password,
|
|
|
|
|
new_password: newPassword
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2023-12-29 08:26:47 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
2024-01-01 20:32:28 +00:00
|
|
|
|
|
|
|
|
export const getSignUpEnabledStatus = async (token: string) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/signup/enabled`, {
|
|
|
|
|
method: 'GET',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
Authorization: `Bearer ${token}`
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-01-01 20:32:28 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
|
2024-02-14 09:17:43 +00:00
|
|
|
export const getDefaultUserRole = async (token: string) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/signup/user/role`, {
|
|
|
|
|
method: 'GET',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
Authorization: `Bearer ${token}`
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-02-14 09:17:43 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const updateDefaultUserRole = async (token: string, role: string) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/signup/user/role`, {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
Authorization: `Bearer ${token}`
|
|
|
|
|
},
|
|
|
|
|
body: JSON.stringify({
|
|
|
|
|
role: role
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-02-14 09:17:43 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
|
2024-01-01 20:32:28 +00:00
|
|
|
export const toggleSignUpEnabledStatus = async (token: string) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/signup/enabled/toggle`, {
|
|
|
|
|
method: 'GET',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
Authorization: `Bearer ${token}`
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-01-01 20:32:28 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
2024-02-20 04:44:00 +00:00
|
|
|
|
|
|
|
|
export const getJWTExpiresDuration = async (token: string) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/token/expires`, {
|
|
|
|
|
method: 'GET',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
Authorization: `Bearer ${token}`
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-02-20 04:44:00 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export const updateJWTExpiresDuration = async (token: string, duration: string) => {
|
|
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/token/expires/update`, {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
Authorization: `Bearer ${token}`
|
|
|
|
|
},
|
|
|
|
|
body: JSON.stringify({
|
|
|
|
|
duration: duration
|
|
|
|
|
})
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-02-20 04:44:00 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
|
};
|
2024-03-26 10:24:14 +00:00
|
|
|
|
2024-04-02 16:39:55 +00:00
|
|
|
export const createAPIKey = async (token: string) => {
|
2024-03-26 10:24:14 +00:00
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/api_key`, {
|
|
|
|
|
method: 'POST',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
Authorization: `Bearer ${token}`
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-03-26 10:24:14 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
2024-04-02 16:39:55 +00:00
|
|
|
return res.api_key;
|
2024-04-02 16:33:27 +00:00
|
|
|
};
|
2024-03-26 10:24:14 +00:00
|
|
|
|
2024-04-02 16:39:55 +00:00
|
|
|
export const getAPIKey = async (token: string) => {
|
2024-03-26 10:24:14 +00:00
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/api_key`, {
|
|
|
|
|
method: 'GET',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
Authorization: `Bearer ${token}`
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-03-26 10:24:14 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
2024-04-02 16:39:55 +00:00
|
|
|
return res.api_key;
|
2024-04-02 16:33:27 +00:00
|
|
|
};
|
2024-03-26 10:24:14 +00:00
|
|
|
|
2024-04-02 16:39:55 +00:00
|
|
|
export const deleteAPIKey = async (token: string) => {
|
2024-03-26 10:24:14 +00:00
|
|
|
let error = null;
|
|
|
|
|
|
|
|
|
|
const res = await fetch(`${WEBUI_API_BASE_URL}/auths/api_key`, {
|
|
|
|
|
method: 'DELETE',
|
|
|
|
|
headers: {
|
|
|
|
|
'Content-Type': 'application/json',
|
|
|
|
|
Authorization: `Bearer ${token}`
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
.then(async (res) => {
|
|
|
|
|
if (!res.ok) throw await res.json();
|
|
|
|
|
return res.json();
|
|
|
|
|
})
|
|
|
|
|
.catch((err) => {
|
2025-05-15 19:35:07 +00:00
|
|
|
console.error(err);
|
2024-03-26 10:24:14 +00:00
|
|
|
error = err.detail;
|
|
|
|
|
return null;
|
|
|
|
|
});
|
|
|
|
|
if (error) {
|
|
|
|
|
throw error;
|
|
|
|
|
}
|
|
|
|
|
return res;
|
2024-04-02 16:33:27 +00:00
|
|
|
};
|