import { baseAppFetch } from '@baseapp-frontend/utils/functions/fetch/baseAppFetch' import type { ChangeExpiredPasswordRequest, ChangePasswordRequest, ConfirmEmailParams, ForgotPasswordRequest, LoginRequest, LoginResponse, RegisterRequest, RequestEmailChangeRequest, ResetPasswordRequest, } from '../types/auth' export default class AuthApi { static login({ email, password }: LoginRequest): Promise { return baseAppFetch(`/auth/login`, { method: 'POST', body: { email, password } }) } static recoverPassword({ email }: ForgotPasswordRequest): Promise { return baseAppFetch(`/forgot-password`, { method: 'POST', body: { email } }) } static resetPassword({ newPassword, token }: ResetPasswordRequest): Promise { return baseAppFetch(`/forgot-password/reset`, { method: 'POST', body: { newPassword, token } }) } static register(request: RegisterRequest): Promise { return baseAppFetch(`/register`, { method: 'POST', body: request }) } static changePassword({ currentPassword, newPassword }: ChangePasswordRequest) { return baseAppFetch('/users/change-password', { method: 'POST', body: { currentPassword, newPassword }, }) } static changeExpiredPassword({ currentPassword, newPassword, token, }: ChangeExpiredPasswordRequest): Promise { return baseAppFetch(`/change-expired-password`, { method: 'POST', body: { currentPassword, newPassword, token }, }) } static requestEmailChange({ newEmail }: RequestEmailChangeRequest): Promise { return baseAppFetch(`/change-email`, { method: 'POST', body: { newEmail } }) } static resendRequestEmailChange(): Promise { return baseAppFetch(`/change-email/resend-confirm`, { method: 'POST' }) } static confirmEmailChange({ id, token }: ConfirmEmailParams): Promise { return baseAppFetch(`/change-email/${id}/confirm`, { method: 'POST', body: { token } }) } static verifyEmailChange({ id, token }: ConfirmEmailParams): Promise { return baseAppFetch(`/change-email/${id}/verify`, { method: 'POST', body: { token } }) } static resendVerifyEmailChange(): Promise { return baseAppFetch(`/change-email/resend-verify`, { method: 'POST' }) } static cancelEmailChange(): Promise { return baseAppFetch(`/change-email/cancel`, { method: 'POST' }) } } export const AUTH_API_KEY = { default: ['auth'], }