diff options
Diffstat (limited to 'FrontEnd/src/http/token.ts')
-rw-r--r-- | FrontEnd/src/http/token.ts | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/FrontEnd/src/http/token.ts b/FrontEnd/src/http/token.ts index 2eba9566..7cb3d9c3 100644 --- a/FrontEnd/src/http/token.ts +++ b/FrontEnd/src/http/token.ts @@ -1,6 +1,6 @@ // Don't use axios in common because it will contains // authorization header, which shouldn't be used in token apis. -import originalAxios, { AxiosError } from "axios"; +import originalAxios from "axios"; import { apiBaseUrl, extractResponseData, configureAxios } from "./common"; @@ -28,29 +28,24 @@ export interface HttpVerifyTokenResponse { user: HttpUser; } -export class HttpCreateTokenBadCredentialError extends Error { - constructor(public innerError?: AxiosError) { - super(); - } +export interface HttpRegisterRequest { + username: string; + password: string; + nickname?: string; + registerCode: string; } export interface IHttpTokenClient { create(req: HttpCreateTokenRequest): Promise<HttpCreateTokenResponse>; verify(req: HttpVerifyTokenRequest): Promise<HttpVerifyTokenResponse>; + register(req: HttpRegisterRequest): Promise<HttpUser>; } export class HttpTokenClient implements IHttpTokenClient { create(req: HttpCreateTokenRequest): Promise<HttpCreateTokenResponse> { return axios .post<HttpCreateTokenResponse>(`${apiBaseUrl}/v2/token/create`, req, {}) - .then(extractResponseData, (error: AxiosError) => { - const statusCode = error.response?.status; - if (statusCode === 422) { - throw new HttpCreateTokenBadCredentialError(error); - } else { - throw error; - } - }); + .then(extractResponseData); } verify(req: HttpVerifyTokenRequest): Promise<HttpVerifyTokenResponse> { @@ -58,6 +53,12 @@ export class HttpTokenClient implements IHttpTokenClient { .post<HttpVerifyTokenResponse>(`${apiBaseUrl}/v2/token/verify`, req) .then(extractResponseData); } + + register(req: HttpRegisterRequest): Promise<HttpUser> { + return axios + .post<HttpUser>(`${apiBaseUrl}/v2/register`, req) + .then(extractResponseData); + } } let client: IHttpTokenClient = new HttpTokenClient(); |