fix(frontend): use english api slugs and harden dashboard modules
This commit is contained in:
parent
bf0e6f3e0d
commit
bf588993c5
8 changed files with 46 additions and 39 deletions
|
|
@ -201,7 +201,7 @@ const GestaoColaboradores = () => {
|
|||
try {
|
||||
|
||||
const response = await fetch(
|
||||
`${process.env.NEXT_PUBLIC_BFF_API_URL}/usuarios?page=${page}&empresas_dados_id=${empresaId}`,
|
||||
`${process.env.NEXT_PUBLIC_BFF_API_URL}/users?page=${page}&company_id=${empresaId}`,
|
||||
{
|
||||
headers: {
|
||||
'accept': 'application/json',
|
||||
|
|
@ -274,7 +274,7 @@ const GestaoColaboradores = () => {
|
|||
|
||||
try {
|
||||
const response = await fetch(
|
||||
`${process.env.NEXT_PUBLIC_BFF_API_URL}/usuarios/${id}`,
|
||||
`${process.env.NEXT_PUBLIC_BFF_API_URL}/users/${id}`,
|
||||
{
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
|
|
@ -298,7 +298,7 @@ const GestaoColaboradores = () => {
|
|||
const handleToggleStatus = async (colaborador: Colaborador) => {
|
||||
try {
|
||||
const response = await fetch(
|
||||
`${process.env.NEXT_PUBLIC_BFF_API_URL}/usuarios/${colaborador.id}`,
|
||||
`${process.env.NEXT_PUBLIC_BFF_API_URL}/users/${colaborador.id}`,
|
||||
{
|
||||
method: 'PATCH',
|
||||
headers: {
|
||||
|
|
@ -872,4 +872,4 @@ const EnderecoModal = ({ endereco, onClose }: EnderecoModalProps) => {
|
|||
);
|
||||
};
|
||||
|
||||
export default GestaoColaboradores;
|
||||
export default GestaoColaboradores;
|
||||
|
|
|
|||
|
|
@ -181,7 +181,7 @@ export default function GestaoPedidosPage() {
|
|||
|
||||
|
||||
// Construir URL com filtro baseado no nível do usuário
|
||||
let url = `${process.env.NEXT_PUBLIC_BFF_API_URL}/pedidos?page=${currentPage}&limit=${pageSize}`;
|
||||
let url = `${process.env.NEXT_PUBLIC_BFF_API_URL}/orders?page=${currentPage}&limit=${pageSize}`;
|
||||
|
||||
// Se o usuário não for superadmin, filtrar pelos pedidos dele
|
||||
if (user && user.superadmin === false) {
|
||||
|
|
|
|||
|
|
@ -269,6 +269,7 @@ const GestaoLaboratorios = () => {
|
|||
onPrevPage={handlePrevPage}
|
||||
onNextPage={handleNextPage}
|
||||
onSearch={handleSearch}
|
||||
onRefresh={handleRefresh}
|
||||
/>
|
||||
</TableContainer>
|
||||
)}
|
||||
|
|
@ -286,4 +287,4 @@ const GestaoLaboratorios = () => {
|
|||
);
|
||||
};
|
||||
|
||||
export default GestaoLaboratorios;
|
||||
export default GestaoLaboratorios;
|
||||
|
|
|
|||
|
|
@ -90,7 +90,7 @@ const UsuariosPendentesPage = () => {
|
|||
}
|
||||
|
||||
const response = await fetch(
|
||||
`${process.env.NEXT_PUBLIC_BFF_API_URL}/usuarios?page=${pageNum}&ativo=false`,
|
||||
`${process.env.NEXT_PUBLIC_BFF_API_URL}/users?page=${pageNum}`,
|
||||
{
|
||||
method: 'GET',
|
||||
headers: {
|
||||
|
|
@ -106,7 +106,10 @@ const UsuariosPendentesPage = () => {
|
|||
|
||||
const data = await response.json();
|
||||
|
||||
const usuariosData = data.data || data.items || data;
|
||||
const rawUsuariosData = data.data || data.items || data || [];
|
||||
const usuariosData = Array.isArray(rawUsuariosData)
|
||||
? rawUsuariosData.filter((usuario: any) => usuario?.ativo === false)
|
||||
: [];
|
||||
|
||||
// Para cada usuário, buscar dados do endereço e empresa
|
||||
const usuariosCompletos = await Promise.all(
|
||||
|
|
@ -179,7 +182,7 @@ const UsuariosPendentesPage = () => {
|
|||
const token = localStorage.getItem('access_token');
|
||||
|
||||
const response = await fetch(
|
||||
`${process.env.NEXT_PUBLIC_BFF_API_URL}/usuarios/${usuarioId}`,
|
||||
`${process.env.NEXT_PUBLIC_BFF_API_URL}/users/${usuarioId}`,
|
||||
{
|
||||
method: 'PATCH',
|
||||
headers: {
|
||||
|
|
@ -646,4 +649,4 @@ const UsuariosPendentesPage = () => {
|
|||
);
|
||||
};
|
||||
|
||||
export default UsuariosPendentesPage;
|
||||
export default UsuariosPendentesPage;
|
||||
|
|
|
|||
|
|
@ -227,29 +227,29 @@ const CadastroProdutoWizard: React.FC = () => {
|
|||
|
||||
|
||||
|
||||
// Tentar diferentes estruturas possíveis
|
||||
let laboratoriosArray = [];
|
||||
let categoriasArray = [];
|
||||
// Tentar diferentes estruturas possíveis (incluindo payload nulo)
|
||||
let laboratoriosArray: any[] = [];
|
||||
let categoriasArray: any[] = [];
|
||||
|
||||
// Para laboratórios
|
||||
if (Array.isArray(labsData)) {
|
||||
laboratoriosArray = labsData;
|
||||
} else if (labsData.documents && Array.isArray(labsData.documents)) {
|
||||
} else if (labsData && Array.isArray((labsData as any).documents)) {
|
||||
laboratoriosArray = labsData.documents;
|
||||
} else if (labsData.data && Array.isArray(labsData.data)) {
|
||||
} else if (labsData && Array.isArray((labsData as any).data)) {
|
||||
laboratoriosArray = labsData.data;
|
||||
} else if (labsData.items && Array.isArray(labsData.items)) {
|
||||
} else if (labsData && Array.isArray((labsData as any).items)) {
|
||||
laboratoriosArray = labsData.items;
|
||||
}
|
||||
|
||||
// Para categorias
|
||||
if (Array.isArray(catsData)) {
|
||||
categoriasArray = catsData;
|
||||
} else if (catsData.documents && Array.isArray(catsData.documents)) {
|
||||
} else if (catsData && Array.isArray((catsData as any).documents)) {
|
||||
categoriasArray = catsData.documents;
|
||||
} else if (catsData.data && Array.isArray(catsData.data)) {
|
||||
} else if (catsData && Array.isArray((catsData as any).data)) {
|
||||
categoriasArray = catsData.data;
|
||||
} else if (catsData.items && Array.isArray(catsData.items)) {
|
||||
} else if (catsData && Array.isArray((catsData as any).items)) {
|
||||
categoriasArray = catsData.items;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -19,6 +19,7 @@ interface LaboratorioListProps {
|
|||
onPrevPage: () => void;
|
||||
onNextPage: () => void;
|
||||
onSearch: (nome: string) => void;
|
||||
onRefresh: () => void;
|
||||
}
|
||||
|
||||
const LaboratorioList: React.FC<LaboratorioListProps> = ({
|
||||
|
|
@ -34,7 +35,8 @@ const LaboratorioList: React.FC<LaboratorioListProps> = ({
|
|||
onDelete,
|
||||
onPrevPage,
|
||||
onNextPage,
|
||||
onSearch
|
||||
onSearch,
|
||||
onRefresh
|
||||
}) => {
|
||||
const totalPages = Math.ceil(totalLaboratorios / pageSize);
|
||||
const startItem = (currentPage - 1) * pageSize + 1;
|
||||
|
|
@ -42,7 +44,8 @@ const LaboratorioList: React.FC<LaboratorioListProps> = ({
|
|||
|
||||
const [search, setSearch] = React.useState('');
|
||||
|
||||
const handleSearch = () => {
|
||||
const handleSearch = (e: React.FormEvent) => {
|
||||
e.preventDefault();
|
||||
onSearch(search);
|
||||
};
|
||||
|
||||
|
|
@ -204,4 +207,4 @@ const LaboratorioList: React.FC<LaboratorioListProps> = ({
|
|||
);
|
||||
};
|
||||
|
||||
export default LaboratorioList;
|
||||
export default LaboratorioList;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* Serviço para gerenciar entregas via BFF
|
||||
* Integração com https://bff-dev.saveinmed.com.br/api/v1/entregas
|
||||
* Integração com https://bff-dev.saveinmed.com.br/api/v1/shipments
|
||||
*/
|
||||
|
||||
const BFF_BASE_URL = process.env.NEXT_PUBLIC_BFF_API_URL!;
|
||||
|
|
@ -112,7 +112,7 @@ export const entregasApiService = {
|
|||
if (params.search) queryParams.append('search', params.search);
|
||||
if (params.status && params.status !== 'todos') queryParams.append('status', params.status);
|
||||
|
||||
const url = `${BFF_BASE_URL}/entregas${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
||||
const url = `${BFF_BASE_URL}/shipments${queryParams.toString() ? `?${queryParams.toString()}` : ''}`;
|
||||
|
||||
|
||||
const response = await fetch(url, {
|
||||
|
|
@ -162,7 +162,7 @@ export const entregasApiService = {
|
|||
}
|
||||
|
||||
|
||||
const response = await fetch(`${BFF_BASE_URL}/entregas/${entregaId}`, {
|
||||
const response = await fetch(`${BFF_BASE_URL}/shipments/${entregaId}`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'accept': 'application/json',
|
||||
|
|
@ -209,7 +209,7 @@ export const entregasApiService = {
|
|||
if (!token) return;
|
||||
|
||||
// Tentar OPTIONS para ver se retorna schema
|
||||
const optionsResponse = await fetch(`${BFF_BASE_URL}/entregas`, {
|
||||
const optionsResponse = await fetch(`${BFF_BASE_URL}/shipments`, {
|
||||
method: 'OPTIONS',
|
||||
headers: {
|
||||
'Authorization': `Bearer ${token}`,
|
||||
|
|
@ -243,7 +243,7 @@ export const entregasApiService = {
|
|||
};
|
||||
|
||||
|
||||
const response = await fetch(`${BFF_BASE_URL}/entregas`, {
|
||||
const response = await fetch(`${BFF_BASE_URL}/shipments`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'accept': 'application/json',
|
||||
|
|
@ -308,7 +308,7 @@ export const entregasApiService = {
|
|||
}
|
||||
|
||||
|
||||
const response = await fetch(`${BFF_BASE_URL}/entregas/${entregaId}`, {
|
||||
const response = await fetch(`${BFF_BASE_URL}/shipments/${entregaId}`, {
|
||||
method: 'PATCH',
|
||||
headers: {
|
||||
'accept': 'application/json',
|
||||
|
|
@ -406,7 +406,7 @@ export const entregasApiService = {
|
|||
}
|
||||
|
||||
const fazerRequisicao = async (dados: any) => {
|
||||
return await fetch(`${BFF_BASE_URL}/entregas/cotacao`, {
|
||||
return await fetch(`${BFF_BASE_URL}/shipping/calculate`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'accept': 'application/json',
|
||||
|
|
@ -527,4 +527,4 @@ export const entregasApiService = {
|
|||
return null;
|
||||
}
|
||||
}
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
/**
|
||||
* Serviço para gerenciar pedidos via BFF
|
||||
* Integração com https://bff-dev.saveinmed.com.br/api/v1/pedidos
|
||||
* Integração com https://bff-dev.saveinmed.com.br/api/v1/orders
|
||||
*/
|
||||
|
||||
const BFF_BASE_URL = process.env.NEXT_PUBLIC_BFF_API_URL!;
|
||||
|
|
@ -248,7 +248,7 @@ export const pedidoApiService = {
|
|||
};
|
||||
|
||||
|
||||
const response = await fetch(`${BFF_BASE_URL}/pedidos`, {
|
||||
const response = await fetch(`${BFF_BASE_URL}/orders`, {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'accept': 'application/json',
|
||||
|
|
@ -283,7 +283,7 @@ export const pedidoApiService = {
|
|||
}
|
||||
|
||||
|
||||
const response = await fetch(`${BFF_BASE_URL}/pedidos/${pedidoId}`, {
|
||||
const response = await fetch(`${BFF_BASE_URL}/orders/${pedidoId}`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'accept': 'application/json',
|
||||
|
|
@ -317,7 +317,7 @@ export const pedidoApiService = {
|
|||
|
||||
|
||||
// Primeiro, tentar buscar com filtro específico
|
||||
let response = await fetch(`${BFF_BASE_URL}/pedidos?carrinhos=${carrinhoId}&status=pendente&limit=10`, {
|
||||
let response = await fetch(`${BFF_BASE_URL}/orders?carrinhos=${carrinhoId}&status=pendente&limit=10`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'accept': 'application/json',
|
||||
|
|
@ -327,7 +327,7 @@ export const pedidoApiService = {
|
|||
|
||||
// Se a busca específica não funcionar, fazer busca geral
|
||||
if (!response.ok) {
|
||||
response = await fetch(`${BFF_BASE_URL}/pedidos?page=1&limit=100`, {
|
||||
response = await fetch(`${BFF_BASE_URL}/orders?page=1&limit=100`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'accept': 'application/json',
|
||||
|
|
@ -399,7 +399,7 @@ export const pedidoApiService = {
|
|||
}
|
||||
|
||||
|
||||
const response = await fetch(`${BFF_BASE_URL}/pedidos?page=${page}&limit=100&usuario_id=${userId}`, {
|
||||
const response = await fetch(`${BFF_BASE_URL}/orders?page=${page}&limit=100&usuario_id=${userId}`, {
|
||||
method: 'GET',
|
||||
headers: {
|
||||
'accept': 'application/json',
|
||||
|
|
@ -432,7 +432,7 @@ export const pedidoApiService = {
|
|||
}
|
||||
|
||||
|
||||
const response = await fetch(`${BFF_BASE_URL}/pedidos/${pedidoId}`, {
|
||||
const response = await fetch(`${BFF_BASE_URL}/orders/${pedidoId}`, {
|
||||
method: 'PATCH',
|
||||
headers: {
|
||||
'accept': 'application/json',
|
||||
|
|
@ -471,7 +471,7 @@ export const pedidoApiService = {
|
|||
};
|
||||
|
||||
|
||||
const response = await fetch(`${BFF_BASE_URL}/pedidos/${pedidoId}`, {
|
||||
const response = await fetch(`${BFF_BASE_URL}/orders/${pedidoId}`, {
|
||||
method: 'PATCH',
|
||||
headers: {
|
||||
'accept': 'application/json',
|
||||
|
|
@ -494,4 +494,4 @@ export const pedidoApiService = {
|
|||
return { success: false, error: 'Erro de conexão ao atualizar status' };
|
||||
}
|
||||
},
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Reference in a new issue