From b7c5f670df80431a2555ea90c5d9cd2fdcdcc37b Mon Sep 17 00:00:00 2001 From: keven Date: Mon, 15 Sep 2025 15:08:19 -0300 Subject: [PATCH] =?UTF-8?q?[MVPTN-62]=20feat(CRUD):=20Integra=C3=A7=C3=A3o?= =?UTF-8?q?=20do=20crud=20com=20os=20endpoints?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../{profissao => profissoes}/page.tsx | 0 .../g_tb_profissao/GTBProfissaoForm.tsx | 4 +- .../GTBProfissao/GTBProfissaoIndexData.ts | 51 +++---------------- .../GTBProfissao/GTBProfissaoRemoveData.ts | 9 ++-- .../GTBProfissao/GTBProfissaoSaveData.ts | 13 +++-- .../g_tb_profissao/useGTBProfissaoReadHook.ts | 2 +- .../g_tb_profissao/useGTBProfissaoSaveHook.ts | 2 +- .../_interfaces/GTBProfissaoInterface.ts | 2 +- .../cadastros/_schemas/GTBProfissaoSchema.ts | 10 ++-- .../GTBProfissaoRemoveService.ts | 2 - src/config/app.json | 4 +- 11 files changed, 35 insertions(+), 64 deletions(-) rename src/app/(protected)/(cadastros)/cadastros/(g_tb_profissao)/{profissao => profissoes}/page.tsx (100%) diff --git a/src/app/(protected)/(cadastros)/cadastros/(g_tb_profissao)/profissao/page.tsx b/src/app/(protected)/(cadastros)/cadastros/(g_tb_profissao)/profissoes/page.tsx similarity index 100% rename from src/app/(protected)/(cadastros)/cadastros/(g_tb_profissao)/profissao/page.tsx rename to src/app/(protected)/(cadastros)/cadastros/(g_tb_profissao)/profissoes/page.tsx diff --git a/src/app/(protected)/(cadastros)/cadastros/_components/g_tb_profissao/GTBProfissaoForm.tsx b/src/app/(protected)/(cadastros)/cadastros/_components/g_tb_profissao/GTBProfissaoForm.tsx index 37aaf6a..96f5104 100644 --- a/src/app/(protected)/(cadastros)/cadastros/_components/g_tb_profissao/GTBProfissaoForm.tsx +++ b/src/app/(protected)/(cadastros)/cadastros/_components/g_tb_profissao/GTBProfissaoForm.tsx @@ -83,7 +83,7 @@ export default function GTBProfissaoForm({ isOpen, data, onClose, onSave }: Prop Descrição - + @@ -98,7 +98,7 @@ export default function GTBProfissaoForm({ isOpen, data, onClose, onSave }: Prop CBO - + diff --git a/src/app/(protected)/(cadastros)/cadastros/_data/GTBProfissao/GTBProfissaoIndexData.ts b/src/app/(protected)/(cadastros)/cadastros/_data/GTBProfissao/GTBProfissaoIndexData.ts index d6a5a97..b1fa9f0 100644 --- a/src/app/(protected)/(cadastros)/cadastros/_data/GTBProfissao/GTBProfissaoIndexData.ts +++ b/src/app/(protected)/(cadastros)/cadastros/_data/GTBProfissao/GTBProfissaoIndexData.ts @@ -1,49 +1,12 @@ +import API from "@/services/api/Api"; +import { Methods } from "@/services/api/enums/ApiMethodEnum"; export default async function GTBProfissoesIndexData() { - return Promise.resolve([ - { "tb_profissao_id": 2, "descricao": "gestora comercial", "situacao": "A", "cod_cbo": "" }, - { "tb_profissao_id": 3, "descricao": "OPERADOR DE SUBSTAÇÃO", "situacao": "A", "cod_cbo": "123456" }, - { "tb_profissao_id": 4, "descricao": "funcionária pública federal", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 5, "descricao": "Estudante", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 6, "descricao": "Fazendeiro", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 7, "descricao": "Gerente de Fazenda", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 8, "descricao": "Lavrador", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 9, "descricao": "motorista", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 11, "descricao": "2º Tenente", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 12, "descricao": "agricultor", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 13, "descricao": "Aposentada", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 14, "descricao": "Arquiteto", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 15, "descricao": "Artesã", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 16, "descricao": "Autônomo", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 17, "descricao": "Auxiliar de Escritório", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 19, "descricao": "Administrador Rural", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 20, "descricao": "Administrador de fazenda", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 21, "descricao": "Advogada", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 22, "descricao": "Designer de Sobrancelhas", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 23, "descricao": "Agente Administrativo Educacional", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 24, "descricao": "Agricultora", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 25, "descricao": "Agrimensor", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 26, "descricao": "Agropecuarista", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 27, "descricao": "Agrônoma", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 28, "descricao": "Ambulante", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 29, "descricao": "Analista de Sistemas", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 30, "descricao": "Arquiteta", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 31, "descricao": "Artesão", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 32, "descricao": "Assessora Parlamentar", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 33, "descricao": "Assistente de Gestão", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 34, "descricao": "Auxiliar Técnico", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 35, "descricao": "Auxiliar Administrativo", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 36, "descricao": "Auxiliar de Cartório", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 37, "descricao": "Auxiliar de Enfermagem", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 38, "descricao": "Auxiliar de Limpeza", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 39, "descricao": "Auxiliar de Produção II", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 40, "descricao": "Auxiliar de Serviços gerais", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 41, "descricao": "Auxiliar de Sondagem", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 42, "descricao": "Balconista", "situacao": "A", "cod_cbo": "-2" }, - { "tb_profissao_id": 43, "descricao": "Bancário Aposentado", "situacao": "A", "cod_cbo": null }, - { "tb_profissao_id": 44, "descricao": "Bioquímico", "situacao": "A", "cod_cbo": "-2" } - ] - ); + const api = new API(); + return await api.send({ + method: Methods.GET, + endpoint: `administrativo/g_tb_profissao/` + }); } \ No newline at end of file diff --git a/src/app/(protected)/(cadastros)/cadastros/_data/GTBProfissao/GTBProfissaoRemoveData.ts b/src/app/(protected)/(cadastros)/cadastros/_data/GTBProfissao/GTBProfissaoRemoveData.ts index 952b392..61f3064 100644 --- a/src/app/(protected)/(cadastros)/cadastros/_data/GTBProfissao/GTBProfissaoRemoveData.ts +++ b/src/app/(protected)/(cadastros)/cadastros/_data/GTBProfissao/GTBProfissaoRemoveData.ts @@ -1,11 +1,14 @@ +import API from "@/services/api/Api"; import GTBProfissaoInterface from "../../_interfaces/GTBProfissaoInterface"; +import { Methods } from "@/services/api/enums/ApiMethodEnum"; export default async function GTBProfissaoRemoveData(data: GTBProfissaoInterface) { - console.log(data) + const api = new API(); - return Promise.resolve({ - message: 'Dados removidos com sucesso' + return await api.send({ + method: Methods.DELETE, + endpoint: `administrativo/g_tb_profissao/${data.tb_profissao_id}` }); } \ No newline at end of file diff --git a/src/app/(protected)/(cadastros)/cadastros/_data/GTBProfissao/GTBProfissaoSaveData.ts b/src/app/(protected)/(cadastros)/cadastros/_data/GTBProfissao/GTBProfissaoSaveData.ts index 91c21e6..de65818 100644 --- a/src/app/(protected)/(cadastros)/cadastros/_data/GTBProfissao/GTBProfissaoSaveData.ts +++ b/src/app/(protected)/(cadastros)/cadastros/_data/GTBProfissao/GTBProfissaoSaveData.ts @@ -1,10 +1,17 @@ +import API from "@/services/api/Api"; import GTBProfissaoInterface from "../../_interfaces/GTBProfissaoInterface"; +import { Methods } from "@/services/api/enums/ApiMethodEnum"; export default async function GTBProfissaoSaveData(data: GTBProfissaoInterface) { - return Promise.resolve({ - message: 'Profissao salva com sucesso', - data: { "tb_profissao_id": 2, "descricao": "gestora comercial", "situacao": "A", "cod_cbo": "" }, + const isUpdate = Boolean(data.tb_profissao_id); + + const api = new API(); + + return await api.send({ + method: isUpdate ? Methods.PUT : Methods.POST, + endpoint: `administrativo/g_tb_profissao/${data.tb_profissao_id || ''}`, + body: data }); } \ No newline at end of file diff --git a/src/app/(protected)/(cadastros)/cadastros/_hooks/g_tb_profissao/useGTBProfissaoReadHook.ts b/src/app/(protected)/(cadastros)/cadastros/_hooks/g_tb_profissao/useGTBProfissaoReadHook.ts index 958da81..6033859 100644 --- a/src/app/(protected)/(cadastros)/cadastros/_hooks/g_tb_profissao/useGTBProfissaoReadHook.ts +++ b/src/app/(protected)/(cadastros)/cadastros/_hooks/g_tb_profissao/useGTBProfissaoReadHook.ts @@ -12,7 +12,7 @@ export const useGTBProfissaoReadHook = () => { const response = await GTBProfissaoIndexService(); - setGTBProfissao(response); + setGTBProfissao(response.data); setResponse(response); diff --git a/src/app/(protected)/(cadastros)/cadastros/_hooks/g_tb_profissao/useGTBProfissaoSaveHook.ts b/src/app/(protected)/(cadastros)/cadastros/_hooks/g_tb_profissao/useGTBProfissaoSaveHook.ts index b259478..d93edb3 100644 --- a/src/app/(protected)/(cadastros)/cadastros/_hooks/g_tb_profissao/useGTBProfissaoSaveHook.ts +++ b/src/app/(protected)/(cadastros)/cadastros/_hooks/g_tb_profissao/useGTBProfissaoSaveHook.ts @@ -12,7 +12,7 @@ export const useGTBProfissaoSaveHook = () => { const response = await GTBProfissaoSaveService(data); - setGTBProfissao(response); + setGTBProfissao(response.data); setResponse(response); diff --git a/src/app/(protected)/(cadastros)/cadastros/_interfaces/GTBProfissaoInterface.ts b/src/app/(protected)/(cadastros)/cadastros/_interfaces/GTBProfissaoInterface.ts index 13f7312..0d86edf 100644 --- a/src/app/(protected)/(cadastros)/cadastros/_interfaces/GTBProfissaoInterface.ts +++ b/src/app/(protected)/(cadastros)/cadastros/_interfaces/GTBProfissaoInterface.ts @@ -4,6 +4,6 @@ export default interface GTBProfissaoInterface { tb_profissao_id?: number, descricao: string, situacao: string, - cod_cbo: string + cod_cbo?: string } \ No newline at end of file diff --git a/src/app/(protected)/(cadastros)/cadastros/_schemas/GTBProfissaoSchema.ts b/src/app/(protected)/(cadastros)/cadastros/_schemas/GTBProfissaoSchema.ts index b7823ff..9d11ff2 100644 --- a/src/app/(protected)/(cadastros)/cadastros/_schemas/GTBProfissaoSchema.ts +++ b/src/app/(protected)/(cadastros)/cadastros/_schemas/GTBProfissaoSchema.ts @@ -1,8 +1,8 @@ -import z from "zod"; +import { z } from "zod"; export const GTBProfissaoSchema = z.object({ - tb_profissao_id: z.number().optional, - descricao: z.string().optional, - situacao: z.string().optional, - cod_cbo: z.string().optional + tb_profissao_id: z.number().optional(), + descricao: z.string(), + situacao: z.string(), + cod_cbo: z.string().optional() }); \ No newline at end of file diff --git a/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_profissao/GTBProfissaoRemoveService.ts b/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_profissao/GTBProfissaoRemoveService.ts index 9a1dcef..8e2ebb0 100644 --- a/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_profissao/GTBProfissaoRemoveService.ts +++ b/src/app/(protected)/(cadastros)/cadastros/_services/g_tb_profissao/GTBProfissaoRemoveService.ts @@ -3,8 +3,6 @@ import GTBProfissaoInterface from "../../_interfaces/GTBProfissaoInterface"; export default async function GTBProfissaoRemoveService(data: GTBProfissaoInterface) { - console.log(data); - const response = await GTBProfissaoRemoveData(data); return response; diff --git a/src/config/app.json b/src/config/app.json index fb7f42d..d38e8d3 100644 --- a/src/config/app.json +++ b/src/config/app.json @@ -1,8 +1,8 @@ { "state": "go", "api": { - "url": "http://api-saas-api-homologacao:8000/", - "prefix": "api/v1", + "url": "http://localhost:8000/", + "prefix": "api/v1/", "content_type": "application/json" } } \ No newline at end of file