aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/http/token.ts
diff options
context:
space:
mode:
Diffstat (limited to 'FrontEnd/src/http/token.ts')
-rw-r--r--FrontEnd/src/http/token.ts27
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();