Files
client-web/src/modules/auth/api/auth.ts
T
2026-09-11 16:17:24 +08:00

49 lines
1.5 KiB
TypeScript

import { apiRequest } from '@/api/http'
import type { TokenPair } from '@/api/session'
export interface RegisterMerchantRequest {
username: string
password: string
displayName: string
companyName: string
legalPerson?: string
phone: string
contactEmail?: string
countryCode?: string
address?: string
}
export interface RegisterMerchantResult {
accountId: number | string
tenantId: number | string
membershipId: number | string
tenantStatus: 'PROFILE_REQUIRED'
nextStep: string
}
export interface ImpersonationExchangeResult {
tokenType: string
accessToken: string
expiresIn: number
}
export function loginMerchant(loginId: string, password: string) {
return apiRequest<TokenPair>({ method: 'POST', url: '/auth/login', data: { loginId, password } })
}
export function registerMerchant(payload: RegisterMerchantRequest) {
return apiRequest<RegisterMerchantResult>({ method: 'POST', url: '/auth/register', data: payload })
}
export function logoutMerchant(refreshToken: string) {
return apiRequest<void>({ method: 'POST', url: '/auth/logout', data: { refreshToken } })
}
export function changeCurrentPassword(oldPassword: string, newPassword: string) {
return apiRequest<void>({ method: 'PUT', url: '/auth/password', data: { oldPassword, newPassword } })
}
export function exchangeImpersonationCode(code: string) {
return apiRequest<ImpersonationExchangeResult>({ method: 'POST', url: '/auth/impersonations/exchange', data: { code } })
}