feat: integrate with new api

This commit is contained in:
Maulana Sodiqin
2025-03-19 23:38:42 +07:00
parent c8935b885e
commit daeeb09798
24 changed files with 354 additions and 0 deletions
+41
View File
@@ -0,0 +1,41 @@
import { api } from '@imphnen-frontend-service/utils';
import {
TLoginRequest,
TLoginResponse,
TRegisterRequest,
TVerifyEmailRequest,
} from '../../types/auth';
import { TResponseMessage } from '../../types/common';
export const postLogin = async (
payload: TLoginRequest
): Promise<TLoginResponse> => {
const { data } = await api({
method: 'POST',
url: '/auth/login',
data: payload,
});
return data;
};
export const postRegister = async (
payload: TRegisterRequest
): Promise<TResponseMessage> => {
const { data } = await api({
method: 'POST',
url: '/auth/register',
data: payload,
});
return data;
};
export const postVerifyEmail = async (
payload: TVerifyEmailRequest
): Promise<TResponseMessage> => {
const { data } = await api({
method: 'POST',
url: '/auth/verify',
data: payload,
});
return data;
};
+1
View File
@@ -0,0 +1 @@
export {};
+3
View File
@@ -0,0 +1,3 @@
export * from './auth';
export * from './gacha';
export * from './users';
+1
View File
@@ -0,0 +1 @@
export {};
+45
View File
@@ -0,0 +1,45 @@
import { useMutation, UseMutationResult } from '@tanstack/react-query';
import { postLogin, postRegister, postVerifyEmail } from '../../api/auth';
import {
TLoginRequest,
TLoginResponse,
TRegisterRequest,
TVerifyEmailRequest,
} from '../../types/auth';
import { TResponseError, TResponseMessage } from '../../types/common';
export const usePostLogin = (): UseMutationResult<
TLoginResponse,
TResponseError,
TLoginRequest,
unknown
> => {
return useMutation({
mutationKey: ['post-login'],
mutationFn: async (payload) => await postLogin(payload),
});
};
export const usePostRegister = (): UseMutationResult<
TResponseMessage,
TResponseError,
TRegisterRequest,
unknown
> => {
return useMutation({
mutationKey: ['post-register'],
mutationFn: async (payload) => await postRegister(payload),
});
};
export const usePostVerifyEmail = (): UseMutationResult<
TResponseMessage,
TResponseError,
TVerifyEmailRequest,
unknown
> => {
return useMutation({
mutationKey: ['post-verify-email'],
mutationFn: async (payload) => await postVerifyEmail(payload),
});
};
+1
View File
@@ -0,0 +1 @@
export {};
+3
View File
@@ -0,0 +1,3 @@
export * from './auth';
export * from './gacha';
export * from './users';
+1
View File
@@ -0,0 +1 @@
export {};
+3
View File
@@ -0,0 +1,3 @@
export * from './api';
export * from './hooks';
export * from './types';
+29
View File
@@ -0,0 +1,29 @@
export type TLoginRequest = {
email: string;
password: string;
};
export type TLoginResponse = {
data: {
token: {
access_token: string;
refresh_token: string;
};
user: {
fullname: string;
email: string;
is_active: boolean;
};
};
};
export type TRegisterRequest = {
fullname: string;
email: string;
password: string;
};
export type TVerifyEmailRequest = {
email: string;
otp: number;
};
+11
View File
@@ -0,0 +1,11 @@
import { AxiosError } from 'axios';
export type TResponse<T = unknown> = {
data: T;
};
export type TResponseMessage = {
message: string;
};
export type TResponseError = AxiosError<TResponseMessage>;
+1
View File
@@ -0,0 +1 @@
export {};
+3
View File
@@ -0,0 +1,3 @@
export * from './auth';
export * from './gacha';
export * from './users';
+1
View File
@@ -0,0 +1 @@
export {};