[VDU-5] feat(implementação): implementando endpoint para buscar usuario por email

This commit is contained in:
= 2025-10-13 10:05:10 -03:00
parent a8eb911832
commit e33bb452cf
4 changed files with 92 additions and 0 deletions

View file

@ -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<UserInterface>();
const fetchUser = async (User: UserInterface) => {
const response = await UserReadService(User.user_id);
setUser(response.data);
setResponse(response);
};
return { User, fetchUser };
};

View file

@ -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<UserInterface>();
const saveUser = async (User: any) => {
const response = await UserSaveService(User);
setUser(response.data);
setResponse(response);
};
return { User, saveUser };
};

View file

@ -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<UserInterface | null>(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 };
};

View file

@ -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<UserInterface[] | null>(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 };
};