From 928ba0ce419bacba113951095278a5138ead34cf Mon Sep 17 00:00:00 2001 From: crupest Date: Sun, 10 Apr 2022 16:04:03 +0800 Subject: ... --- FrontEnd/src/http/timeline.ts | 136 ++++++++++++++++++++++++++++++++---------- 1 file changed, 104 insertions(+), 32 deletions(-) (limited to 'FrontEnd/src/http/timeline.ts') diff --git a/FrontEnd/src/http/timeline.ts b/FrontEnd/src/http/timeline.ts index 9697c1a0..49a7b8f2 100644 --- a/FrontEnd/src/http/timeline.ts +++ b/FrontEnd/src/http/timeline.ts @@ -6,7 +6,7 @@ import { axios, apiBaseUrl, extractResponseData, - convertToIfErrorCodeIs, + convertToIfStatusCodeIs, getHttpToken, } from "./common"; import { HttpUser } from "./user"; @@ -18,7 +18,7 @@ export type TimelineVisibility = typeof kTimelineVisibilities[number]; export interface HttpTimelineInfo { uniqueId: string; title: string; - name: string; + nameV2: string; description: string; owner: HttpUser; visibility: TimelineVisibility; @@ -54,7 +54,8 @@ export interface HttpTimelinePostInfo { dataList: HttpTimelinePostDataDigest[]; color: string; lastUpdated: string; - timelineName: string; + timelineOwnerV2: string; + timelineNameV2: string; editable: boolean; } @@ -90,28 +91,57 @@ export class HttpTimelineNameConflictError extends Error { export interface IHttpTimelineClient { listTimeline(query: HttpTimelineListQuery): Promise; - getTimeline(timelineName: string): Promise; + getTimeline( + ownerUsername: string, + timelineName: string + ): Promise; postTimeline(req: HttpTimelinePostRequest): Promise; patchTimeline( + ownerUsername: string, timelineName: string, req: HttpTimelinePatchRequest ): Promise; - deleteTimeline(timelineName: string): Promise; - memberPut(timelineName: string, username: string): Promise; - memberDelete(timelineName: string, username: string): Promise; - listPost(timelineName: string): Promise; - generatePostDataUrl(timelineName: string, postId: number): string; - getPostDataAsString(timelineName: string, postId: number): Promise; + deleteTimeline(ownerUsername: string, timelineName: string): Promise; + memberPut( + ownerUsername: string, + timelineName: string, + username: string + ): Promise; + memberDelete( + ownerUsername: string, + timelineName: string, + username: string + ): Promise; + listPost( + ownerUsername: string, + timelineName: string + ): Promise; + generatePostDataUrl( + ownerUsername: string, + timelineName: string, + postId: number + ): string; + getPostDataAsString( + ownerUsername: string, + timelineName: string, + postId: number + ): Promise; postPost( + ownerUsername: string, timelineName: string, req: HttpTimelinePostPostRequest ): Promise; patchPost( + ownerUsername: string, timelineName: string, postId: number, req: HttpTimelinePostPatchRequest ): Promise; - deletePost(timelineName: string, postId: number): Promise; + deletePost( + ownerUsername: string, + timelineName: string, + postId: number + ): Promise; } export class HttpTimelineClient implements IHttpTimelineClient { @@ -123,63 +153,97 @@ export class HttpTimelineClient implements IHttpTimelineClient { .then(extractResponseData); } - getTimeline(timelineName: string): Promise { + getTimeline( + ownerUsername: string, + timelineName: string + ): Promise { return axios - .get(`${apiBaseUrl}/timelines/${timelineName}`) + .get( + `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}` + ) .then(extractResponseData); } postTimeline(req: HttpTimelinePostRequest): Promise { return axios - .post(`${apiBaseUrl}/timelines`, req) + .post(`${apiBaseUrl}/v2/timelines`, req) .then(extractResponseData) - .catch(convertToIfErrorCodeIs(11040101, HttpTimelineNameConflictError)); + .catch(convertToIfStatusCodeIs(422, HttpTimelineNameConflictError)); } patchTimeline( + ownerUsername: string, timelineName: string, req: HttpTimelinePatchRequest ): Promise { return axios - .patch(`${apiBaseUrl}/timelines/${timelineName}`, req) + .patch( + `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}`, + req + ) .then(extractResponseData); } - deleteTimeline(timelineName: string): Promise { - return axios.delete(`${apiBaseUrl}/timelines/${timelineName}`).then(); + deleteTimeline(ownerUsername: string, timelineName: string): Promise { + return axios + .delete(`${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}`) + .then(); } - memberPut(timelineName: string, username: string): Promise { + memberPut( + ownerUsername: string, + timelineName: string, + username: string + ): Promise { return axios - .put(`${apiBaseUrl}/timelines/${timelineName}/members/${username}`) + .put( + `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}/members/${username}` + ) .then(); } - memberDelete(timelineName: string, username: string): Promise { + memberDelete( + ownerUsername: string, + timelineName: string, + username: string + ): Promise { return axios - .delete(`${apiBaseUrl}/timelines/${timelineName}/members/${username}`) + .delete( + `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}/members/${username}` + ) .then(); } - listPost(timelineName: string): Promise { + listPost( + ownerUsername: string, + timelineName: string + ): Promise { return axios .get( - `${apiBaseUrl}/timelines/${timelineName}/posts` + `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}/posts` ) .then(extractResponseData); } - generatePostDataUrl(timelineName: string, postId: number): string { + generatePostDataUrl( + ownerUsername: string, + timelineName: string, + postId: number + ): string { return applyQueryParameters( - `${apiBaseUrl}/timelines/${timelineName}/posts/${postId}/data`, + `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}/posts/${postId}/data`, { token: getHttpToken() } ); } - getPostDataAsString(timelineName: string, postId: number): Promise { + getPostDataAsString( + ownerUsername: string, + timelineName: string, + postId: number + ): Promise { return axios .get( - `${apiBaseUrl}/timelines/${timelineName}/posts/${postId}/data`, + `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}/posts/${postId}/data`, { responseType: "text", } @@ -188,33 +252,41 @@ export class HttpTimelineClient implements IHttpTimelineClient { } postPost( + ownerUsername: string, timelineName: string, req: HttpTimelinePostPostRequest ): Promise { return axios .post( - `${apiBaseUrl}/timelines/${timelineName}/posts`, + `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}/posts`, req ) .then(extractResponseData); } patchPost( + ownerUsername: string, timelineName: string, postId: number, req: HttpTimelinePostPatchRequest ): Promise { return axios .patch( - `${apiBaseUrl}/timelines/${timelineName}/posts/${postId}`, + `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}/posts/${postId}`, req ) .then(extractResponseData); } - deletePost(timelineName: string, postId: number): Promise { + deletePost( + ownerUsername: string, + timelineName: string, + postId: number + ): Promise { return axios - .delete(`${apiBaseUrl}/timelines/${timelineName}/posts/${postId}`) + .delete( + `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}/posts/${postId}` + ) .then(); } } -- cgit v1.2.3