diff options
author | crupest <crupest@outlook.com> | 2020-07-26 15:02:55 +0800 |
---|---|---|
committer | crupest <crupest@outlook.com> | 2020-07-26 15:02:55 +0800 |
commit | f5d10683a1edeba4dabe148ff7aa682c044f7496 (patch) | |
tree | d8f7edae96baa26823dee80ccc9329a23ac04c3c /Timeline/ClientApp/src/app/http/mock/token.ts | |
parent | 7753c9cad23b06c2acdd908a5a7cc3863bfa6b61 (diff) | |
download | timeline-f5d10683a1edeba4dabe148ff7aa682c044f7496.tar.gz timeline-f5d10683a1edeba4dabe148ff7aa682c044f7496.tar.bz2 timeline-f5d10683a1edeba4dabe148ff7aa682c044f7496.zip |
Merge front end repo
Diffstat (limited to 'Timeline/ClientApp/src/app/http/mock/token.ts')
-rw-r--r-- | Timeline/ClientApp/src/app/http/mock/token.ts | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/Timeline/ClientApp/src/app/http/mock/token.ts b/Timeline/ClientApp/src/app/http/mock/token.ts new file mode 100644 index 00000000..6924e7d7 --- /dev/null +++ b/Timeline/ClientApp/src/app/http/mock/token.ts @@ -0,0 +1,53 @@ +import { AxiosError } from 'axios';
+
+import {
+ IHttpTokenClient,
+ HttpCreateTokenRequest,
+ HttpCreateTokenResponse,
+ HttpVerifyTokenRequest,
+ HttpVerifyTokenResponse,
+} from '../token';
+
+import { mockPrepare } from './common';
+import { getUser, MockUserNotExistError, checkToken } from './user';
+
+export class MockHttpTokenClient implements IHttpTokenClient {
+ // TODO: Mock bad credentials error.
+ async create(req: HttpCreateTokenRequest): Promise<HttpCreateTokenResponse> {
+ await mockPrepare();
+ try {
+ const user = await getUser(req.username);
+ return {
+ user,
+ token: `token-${req.username}`,
+ };
+ } catch (e) {
+ if (e instanceof MockUserNotExistError) {
+ throw {
+ isAxiosError: true,
+ response: {
+ status: 400,
+ },
+ } as Partial<AxiosError>;
+ }
+ throw e;
+ }
+ }
+
+ async verify(req: HttpVerifyTokenRequest): Promise<HttpVerifyTokenResponse> {
+ await mockPrepare();
+ try {
+ const user = await getUser(checkToken(req.token));
+ return {
+ user,
+ };
+ } catch (e) {
+ throw {
+ isAxiosError: true,
+ response: {
+ status: 400,
+ },
+ } as Partial<AxiosError>;
+ }
+ }
+}
|