From 5351fd4be8c63b8ecdc017752da57921653e98a1 Mon Sep 17 00:00:00 2001 From: = <=> Date: Mon, 13 Oct 2025 10:03:58 -0300 Subject: [PATCH] [VDU-4] feat(implementando): implementando endpoint para cadastrar/atualizar usuario --- .../hooks/User/useGUsuarioReadHooks.ts | 22 ++++++++++++++++++ .../hooks/User/useGUsuarioSaveHook.ts | 22 ++++++++++++++++++ .../hooks/User/useUserIndexHook.ts | 23 +++++++++++++++++++ 3 files changed, 67 insertions(+) create mode 100644 src/packages/administrativo/hooks/User/useGUsuarioReadHooks.ts create mode 100644 src/packages/administrativo/hooks/User/useGUsuarioSaveHook.ts create mode 100644 src/packages/administrativo/hooks/User/useUserIndexHook.ts diff --git a/src/packages/administrativo/hooks/User/useGUsuarioReadHooks.ts b/src/packages/administrativo/hooks/User/useGUsuarioReadHooks.ts new file mode 100644 index 0000000..b1ef5a6 --- /dev/null +++ b/src/packages/administrativo/hooks/User/useGUsuarioReadHooks.ts @@ -0,0 +1,22 @@ +'use client'; + +import { useState } from 'react'; +import { UserInterface } from '../../interfaces/User/UserInterface'; +import { UserReadService } from '../../services/User/UserReadService'; +import { useResponse } from '@/shared/components/response/ResponseContext'; + +export const useGUserReadHooks = () => { + const { setResponse } = useResponse(); + + const [User, setUser] = useState(); + + const fetchUser = async (User: UserInterface) => { + const response = await UserReadService(User.user_id); + + setUser(response.data); + + setResponse(response); + }; + + return { User, fetchUser }; +}; diff --git a/src/packages/administrativo/hooks/User/useGUsuarioSaveHook.ts b/src/packages/administrativo/hooks/User/useGUsuarioSaveHook.ts new file mode 100644 index 0000000..8cd265c --- /dev/null +++ b/src/packages/administrativo/hooks/User/useGUsuarioSaveHook.ts @@ -0,0 +1,22 @@ +'use client'; + +import { useState } from 'react'; +import { UserInterface } from '../../interfaces/User/UserInterface'; +import { UserSaveService } from '../../services/User/UserSaveService'; +import { useResponse } from '@/shared/components/response/ResponseContext'; + +export const useGUserSaveHook = () => { + const { setResponse } = useResponse(); + + const [User, setUser] = useState(); + + const saveUser = async (User: any) => { + const response = await UserSaveService(User); + + setUser(response.data); + + setResponse(response); + }; + + return { User, saveUser }; +}; diff --git a/src/packages/administrativo/hooks/User/useUserIndexHook.ts b/src/packages/administrativo/hooks/User/useUserIndexHook.ts new file mode 100644 index 0000000..0fe9a24 --- /dev/null +++ b/src/packages/administrativo/hooks/User/useUserIndexHook.ts @@ -0,0 +1,23 @@ +'use client'; + +import { useState } from 'react'; +import { UserInterface } from '../../interfaces/User/UserInterface'; +import { UserIndexService } from '../../services/User/UserIndexService'; +import { useResponse } from '@/shared/components/response/ResponseContext'; + +export const useUserIndexHook = () => { + const { setResponse } = useResponse(); + + const [usuarios, setUsuarios] = useState(null); + + const fetchUsuarios = async () => { + const response = await UserIndexService(); + + setUsuarios(response.data); + + // Define os dados do componente de resposta (toast, modal, etc) + setResponse(response); + }; + + return { usuarios, fetchUsuarios }; +};