From c92e903c3cf6eee784d03c05efcf02c9d94da469 Mon Sep 17 00:00:00 2001 From: = <=> Date: Mon, 13 Oct 2025 09:59:43 -0300 Subject: [PATCH] =?UTF-8?q?[VDU-4]=20feat(implementando):=20endpoint=20par?= =?UTF-8?q?a=20buscar=20usu=C3=A1rio=20por=20email?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../hooks/User/useGUsuarioReadHooks.ts | 22 +++++++++++++++ .../hooks/User/useGUsuarioSaveHook.ts | 22 +++++++++++++++ .../hooks/User/useUserIndexByEmailHook.ts | 25 +++++++++++++++++ .../hooks/User/useUserIndexByIDHook.ts | 27 +++++++++++++++++++ .../hooks/User/useUserIndexHook.ts | 23 ++++++++++++++++ .../services/User/UserSaveService.ts | 2 +- 6 files changed, 120 insertions(+), 1 deletion(-) 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/useUserIndexByEmailHook.ts create mode 100644 src/packages/administrativo/hooks/User/useUserIndexByIDHook.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/useUserIndexByEmailHook.ts b/src/packages/administrativo/hooks/User/useUserIndexByEmailHook.ts new file mode 100644 index 0000000..2749a7c --- /dev/null +++ b/src/packages/administrativo/hooks/User/useUserIndexByEmailHook.ts @@ -0,0 +1,25 @@ +'use client'; + +import { useState } from 'react'; +import { UserInterface } from '../../interfaces/User/UserInterface'; +import { UserIndexByEmailService } from '../../services/User/UserIndexByEmailService'; +import { useResponse } from '@/shared/components/response/ResponseContext'; + +export const useUserIndexByEmailHook = () => { + const { setResponse } = useResponse(); + + const [user, setUser] = useState(null); + + const fetchUserByEmail = async (email: string) => { + try { + const response = await UserIndexByEmailService(email); + + setUser(response.data); + setResponse(response); + } catch (error) { + console.error("Erro ao buscar usuário por Email:", error); + } + }; + + return { user, fetchUserByEmail }; +}; \ No newline at end of file diff --git a/src/packages/administrativo/hooks/User/useUserIndexByIDHook.ts b/src/packages/administrativo/hooks/User/useUserIndexByIDHook.ts new file mode 100644 index 0000000..3297895 --- /dev/null +++ b/src/packages/administrativo/hooks/User/useUserIndexByIDHook.ts @@ -0,0 +1,27 @@ +'use client'; + +import { useState } from 'react'; +import { UserInterface } from '../../interfaces/User/UserInterface'; +import { UserIndexByIDService } from '../../services/User/UserIndexByIDService'; +import { useResponse } from '@/shared/components/response/ResponseContext'; + +export const useUserIndexByIdHook = () => { + const { setResponse } = useResponse(); + + const [user, setUser] = useState(null); + + const fetchUserById = async (userId: number) => { + try { + const response = await UserIndexByIDService(userId); + + setUser(response.data); + setResponse(response); + } catch (error) { + // O withClientErrorHandler já deve tratar o erro e formatar a 'response', + // mas um catch local pode ser útil para lógicas adicionais se necessário. + console.error("Erro ao buscar usuário por ID:", error); + } + }; + + return { user, fetchUserById }; +}; \ No newline at end of file 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 }; +}; diff --git a/src/packages/administrativo/services/User/UserSaveService.ts b/src/packages/administrativo/services/User/UserSaveService.ts index 1dcf406..77e5408 100644 --- a/src/packages/administrativo/services/User/UserSaveService.ts +++ b/src/packages/administrativo/services/User/UserSaveService.ts @@ -9,4 +9,4 @@ async function executeUserSave(form: any) { } -export const UserSave = withClientErrorHandler(executeUserSave) \ No newline at end of file +export const UserSaveService = withClientErrorHandler(executeUserSave) \ No newline at end of file