|
|
import { API_BASE } from "@/utils/constants"; |
|
|
import { baseHeaders } from "@/utils/request"; |
|
|
|
|
|
const Admin = { |
|
|
|
|
|
users: async () => { |
|
|
return await fetch(`${API_BASE}/admin/users`, { |
|
|
method: "GET", |
|
|
headers: baseHeaders(), |
|
|
}) |
|
|
.then((res) => res.json()) |
|
|
.then((res) => res?.users || []) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return []; |
|
|
}); |
|
|
}, |
|
|
newUser: async (data) => { |
|
|
return await fetch(`${API_BASE}/admin/users/new`, { |
|
|
method: "POST", |
|
|
headers: baseHeaders(), |
|
|
body: JSON.stringify(data), |
|
|
}) |
|
|
.then((res) => res.json()) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return { user: null, error: e.message }; |
|
|
}); |
|
|
}, |
|
|
updateUser: async (userId, data) => { |
|
|
return await fetch(`${API_BASE}/admin/user/${userId}`, { |
|
|
method: "POST", |
|
|
headers: baseHeaders(), |
|
|
body: JSON.stringify(data), |
|
|
}) |
|
|
.then((res) => res.json()) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return { success: false, error: e.message }; |
|
|
}); |
|
|
}, |
|
|
deleteUser: async (userId) => { |
|
|
return await fetch(`${API_BASE}/admin/user/${userId}`, { |
|
|
method: "DELETE", |
|
|
headers: baseHeaders(), |
|
|
}) |
|
|
.then((res) => res.json()) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return { success: false, error: e.message }; |
|
|
}); |
|
|
}, |
|
|
|
|
|
|
|
|
invites: async () => { |
|
|
return await fetch(`${API_BASE}/admin/invites`, { |
|
|
method: "GET", |
|
|
headers: baseHeaders(), |
|
|
}) |
|
|
.then((res) => res.json()) |
|
|
.then((res) => res?.invites || []) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return []; |
|
|
}); |
|
|
}, |
|
|
newInvite: async ({ role = null, workspaceIds = null }) => { |
|
|
return await fetch(`${API_BASE}/admin/invite/new`, { |
|
|
method: "POST", |
|
|
headers: baseHeaders(), |
|
|
body: JSON.stringify({ |
|
|
role, |
|
|
workspaceIds, |
|
|
}), |
|
|
}) |
|
|
.then((res) => res.json()) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return { invite: null, error: e.message }; |
|
|
}); |
|
|
}, |
|
|
disableInvite: async (inviteId) => { |
|
|
return await fetch(`${API_BASE}/admin/invite/${inviteId}`, { |
|
|
method: "DELETE", |
|
|
headers: baseHeaders(), |
|
|
}) |
|
|
.then((res) => res.json()) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return { success: false, error: e.message }; |
|
|
}); |
|
|
}, |
|
|
|
|
|
|
|
|
workspaces: async () => { |
|
|
return await fetch(`${API_BASE}/admin/workspaces`, { |
|
|
method: "GET", |
|
|
headers: baseHeaders(), |
|
|
}) |
|
|
.then((res) => res.json()) |
|
|
.then((res) => res?.workspaces || []) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return []; |
|
|
}); |
|
|
}, |
|
|
workspaceUsers: async (workspaceId) => { |
|
|
return await fetch(`${API_BASE}/admin/workspaces/${workspaceId}/users`, { |
|
|
method: "GET", |
|
|
headers: baseHeaders(), |
|
|
}) |
|
|
.then((res) => res.json()) |
|
|
.then((res) => res?.users || []) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return []; |
|
|
}); |
|
|
}, |
|
|
newWorkspace: async (name) => { |
|
|
return await fetch(`${API_BASE}/admin/workspaces/new`, { |
|
|
method: "POST", |
|
|
headers: baseHeaders(), |
|
|
body: JSON.stringify({ name }), |
|
|
}) |
|
|
.then((res) => res.json()) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return { workspace: null, error: e.message }; |
|
|
}); |
|
|
}, |
|
|
updateUsersInWorkspace: async (workspaceId, userIds = []) => { |
|
|
return await fetch( |
|
|
`${API_BASE}/admin/workspaces/${workspaceId}/update-users`, |
|
|
{ |
|
|
method: "POST", |
|
|
headers: baseHeaders(), |
|
|
body: JSON.stringify({ userIds }), |
|
|
} |
|
|
) |
|
|
.then((res) => res.json()) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return { success: false, error: e.message }; |
|
|
}); |
|
|
}, |
|
|
deleteWorkspace: async (workspaceId) => { |
|
|
return await fetch(`${API_BASE}/admin/workspaces/${workspaceId}`, { |
|
|
method: "DELETE", |
|
|
headers: baseHeaders(), |
|
|
}) |
|
|
.then((res) => res.json()) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return { success: false, error: e.message }; |
|
|
}); |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
systemPreferences: async () => { |
|
|
return await fetch(`${API_BASE}/admin/system-preferences`, { |
|
|
method: "GET", |
|
|
headers: baseHeaders(), |
|
|
}) |
|
|
.then((res) => res.json()) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return null; |
|
|
}); |
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
systemPreferencesByFields: async (labels = []) => { |
|
|
return await fetch( |
|
|
`${API_BASE}/admin/system-preferences-for?labels=${labels.join(",")}`, |
|
|
{ |
|
|
method: "GET", |
|
|
headers: baseHeaders(), |
|
|
} |
|
|
) |
|
|
.then((res) => res.json()) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return null; |
|
|
}); |
|
|
}, |
|
|
updateSystemPreferences: async (updates = {}) => { |
|
|
return await fetch(`${API_BASE}/admin/system-preferences`, { |
|
|
method: "POST", |
|
|
headers: baseHeaders(), |
|
|
body: JSON.stringify(updates), |
|
|
}) |
|
|
.then((res) => res.json()) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return { success: false, error: e.message }; |
|
|
}); |
|
|
}, |
|
|
|
|
|
|
|
|
getApiKeys: async function () { |
|
|
return fetch(`${API_BASE}/admin/api-keys`, { |
|
|
method: "GET", |
|
|
headers: baseHeaders(), |
|
|
}) |
|
|
.then((res) => { |
|
|
if (!res.ok) { |
|
|
throw new Error(res.statusText || "Error fetching api keys."); |
|
|
} |
|
|
return res.json(); |
|
|
}) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return { apiKeys: [], error: e.message }; |
|
|
}); |
|
|
}, |
|
|
generateApiKey: async function () { |
|
|
return fetch(`${API_BASE}/admin/generate-api-key`, { |
|
|
method: "POST", |
|
|
headers: baseHeaders(), |
|
|
}) |
|
|
.then((res) => { |
|
|
if (!res.ok) { |
|
|
throw new Error(res.statusText || "Error generating api key."); |
|
|
} |
|
|
return res.json(); |
|
|
}) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return { apiKey: null, error: e.message }; |
|
|
}); |
|
|
}, |
|
|
deleteApiKey: async function (apiKeyId = "") { |
|
|
return fetch(`${API_BASE}/admin/delete-api-key/${apiKeyId}`, { |
|
|
method: "DELETE", |
|
|
headers: baseHeaders(), |
|
|
}) |
|
|
.then((res) => res.ok) |
|
|
.catch((e) => { |
|
|
console.error(e); |
|
|
return false; |
|
|
}); |
|
|
}, |
|
|
}; |
|
|
|
|
|
export default Admin; |
|
|
|