finnow/web-app/src/api/auth.ts

35 lines
892 B
TypeScript

import { ApiClient } from './base'
interface UsernameAvailability {
available: boolean
}
export class AuthApiClient extends ApiClient {
async login(username: string, password: string): Promise<string> {
return await super.postText('/login', { username, password })
}
async register(username: string, password: string): Promise<void> {
await super.postJson('/register', { username, password })
}
async getUsernameAvailability(username: string): Promise<boolean> {
const r = (await super.getJson(
'/register/username-availability?username=' + username,
)) as UsernameAvailability
return r.available
}
async getMyUser(): Promise<string> {
return await super.getText('/me')
}
async deleteMyUser(): Promise<void> {
await super.delete('/me')
}
async getNewToken(): Promise<string> {
return await super.getText('/me/token')
}
}