64 lines
1.4 KiB
TypeScript
64 lines
1.4 KiB
TypeScript
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<ConfirmResult>('/auth/confirm', {
|
|
method: 'POST',
|
|
body: {
|
|
token
|
|
}
|
|
})
|
|
}
|
|
|
|
async register(email: string, password:string, locale:string){
|
|
return await this.fetcher<ConfirmResult>('/user/register', {
|
|
method: 'POST',
|
|
body:{
|
|
email, password, locale
|
|
}
|
|
})
|
|
}
|
|
|
|
async emailChange(newEmail: string, locale:string){
|
|
return await this.fetcher<ConfirmResult>('/user/email-update/request', {
|
|
method: 'POST',
|
|
body:{
|
|
newEmail, locale
|
|
}
|
|
})
|
|
}
|
|
|
|
async updateDisplayName(newDisplayName: string){
|
|
return await this.fetcher<ConfirmResult>('/user/update', {
|
|
method: 'PUT',
|
|
body:{
|
|
display_name : newDisplayName
|
|
}
|
|
})
|
|
}
|
|
|
|
async deleteRequest(locale:string){
|
|
return await this.fetcher<ConfirmResult>('/user/delete-request', {
|
|
method:'DELETE',
|
|
body:{
|
|
locale
|
|
}
|
|
})
|
|
}
|
|
async pwdChallenge(pwd:string){
|
|
return await this.fetcher<ConfirmResult>('/user/pwdChallenge', {
|
|
method:'POST',
|
|
body:{
|
|
pwd
|
|
}
|
|
})
|
|
}
|
|
}
|