omnichannel-frontend/src/modules/management/services/adminAccessService.js

94 lines
2.2 KiB
JavaScript
Raw Normal View History

import { API_BASE_URL } from '../../../shared/services/apiConfig';
async function request(path, options = {}) {
const response = await fetch(`${API_BASE_URL}${path}`, {
headers: {
'Content-Type': 'application/json',
...options.headers,
},
...options,
});
if (!response.ok) {
let message = 'Falha ao consultar acessos';
try {
const payload = await response.json();
message = payload?.message || payload?.error || message;
} catch {
// Mantem mensagem padrao.
}
throw new Error(message);
}
return response.json();
}
export async function getAccessOptions() {
return request('/admin/access/options');
}
export async function getAdminOverview() {
return request('/admin/access/overview');
}
export async function getAttendantRanking(areaId) {
const query = areaId ? `?areaId=${encodeURIComponent(areaId)}` : '';
return request(`/admin/access/ranking${query}`);
}
export async function getAuditLogs(page = 1, limit = 100) {
return request(`/admin/access/audit?page=${encodeURIComponent(page)}&limit=${encodeURIComponent(limit)}`);
}
export async function getAiContents() {
return request('/admin/access/ai-contents');
}
export async function createAiContent(payload) {
return request('/admin/access/ai-contents', {
method: 'POST',
body: JSON.stringify(payload),
});
}
export async function deleteAiContent(id) {
return request(`/admin/access/ai-contents/${id}`, {
method: 'DELETE',
});
}
export async function getAccessUsers() {
return request('/admin/access/users');
}
export async function getAccessAreas() {
return request('/admin/access/areas');
}
export async function updateUserAccess(userId, access) {
return request(`/admin/access/users/${userId}`, {
method: 'PUT',
body: JSON.stringify(access),
});
}
export async function createAccessArea(payload) {
return request('/admin/access/areas', {
method: 'POST',
body: JSON.stringify(payload),
});
}
export async function updateAccessArea(areaId, payload) {
return request(`/admin/access/areas/${areaId}`, {
method: 'PUT',
body: JSON.stringify(payload),
});
}
export async function deleteAccessArea(areaId) {
return request(`/admin/access/areas/${areaId}`, {
method: 'DELETE',
});
}