import type { $Fetch } from 'ofetch'; import type { User, ConfirmResult } from '~/types/auth' export default class UserRepository { private fetcher: $Fetch; constructor(fetcher: $Fetch) { this.fetcher = fetcher; } async confirm(token: string){ return await this.fetcher('/auth/confirm', { method: 'POST', body: { token } }) } async register(email: string, password:string, locale:string){ return await this.fetcher('/user/register', { method: 'POST', body:{ email, password, locale } }) } async emailChange(newEmail: string, locale:string){ return await this.fetcher('/user/email-update/request', { method: 'POST', body:{ newEmail, locale } }) } async updateDisplayName(newDisplayName: string){ return await this.fetcher('/user/update', { method: 'PUT', body:{ display_name : newDisplayName } }) } async deleteRequest(locale:string){ return await this.fetcher('/user/delete-request', { method:'DELETE', body:{ locale } }) } async pwdChallenge(pwd:string){ return await this.fetcher('/user/pwdChallenge', { method:'POST', body:{ pwd } }) } }