aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/http
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2022-04-10 16:04:03 +0800
committercrupest <crupest@outlook.com>2022-04-10 16:04:03 +0800
commit928ba0ce419bacba113951095278a5138ead34cf (patch)
treead4bc6b985c21e751199a25a77f36da7163a47c5 /FrontEnd/src/http
parent86160e4a5697615452a7e06dc78f8be4c8b2515f (diff)
downloadtimeline-928ba0ce419bacba113951095278a5138ead34cf.tar.gz
timeline-928ba0ce419bacba113951095278a5138ead34cf.tar.bz2
timeline-928ba0ce419bacba113951095278a5138ead34cf.zip
...
Diffstat (limited to 'FrontEnd/src/http')
-rw-r--r--FrontEnd/src/http/timeline.ts136
1 files changed, 104 insertions, 32 deletions
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<HttpTimelineInfo[]>;
- getTimeline(timelineName: string): Promise<HttpTimelineInfo>;
+ getTimeline(
+ ownerUsername: string,
+ timelineName: string
+ ): Promise<HttpTimelineInfo>;
postTimeline(req: HttpTimelinePostRequest): Promise<HttpTimelineInfo>;
patchTimeline(
+ ownerUsername: string,
timelineName: string,
req: HttpTimelinePatchRequest
): Promise<HttpTimelineInfo>;
- deleteTimeline(timelineName: string): Promise<void>;
- memberPut(timelineName: string, username: string): Promise<void>;
- memberDelete(timelineName: string, username: string): Promise<void>;
- listPost(timelineName: string): Promise<HttpTimelinePostInfo[]>;
- generatePostDataUrl(timelineName: string, postId: number): string;
- getPostDataAsString(timelineName: string, postId: number): Promise<string>;
+ deleteTimeline(ownerUsername: string, timelineName: string): Promise<void>;
+ memberPut(
+ ownerUsername: string,
+ timelineName: string,
+ username: string
+ ): Promise<void>;
+ memberDelete(
+ ownerUsername: string,
+ timelineName: string,
+ username: string
+ ): Promise<void>;
+ listPost(
+ ownerUsername: string,
+ timelineName: string
+ ): Promise<HttpTimelinePostInfo[]>;
+ generatePostDataUrl(
+ ownerUsername: string,
+ timelineName: string,
+ postId: number
+ ): string;
+ getPostDataAsString(
+ ownerUsername: string,
+ timelineName: string,
+ postId: number
+ ): Promise<string>;
postPost(
+ ownerUsername: string,
timelineName: string,
req: HttpTimelinePostPostRequest
): Promise<HttpTimelinePostInfo>;
patchPost(
+ ownerUsername: string,
timelineName: string,
postId: number,
req: HttpTimelinePostPatchRequest
): Promise<HttpTimelinePostInfo>;
- deletePost(timelineName: string, postId: number): Promise<void>;
+ deletePost(
+ ownerUsername: string,
+ timelineName: string,
+ postId: number
+ ): Promise<void>;
}
export class HttpTimelineClient implements IHttpTimelineClient {
@@ -123,63 +153,97 @@ export class HttpTimelineClient implements IHttpTimelineClient {
.then(extractResponseData);
}
- getTimeline(timelineName: string): Promise<HttpTimelineInfo> {
+ getTimeline(
+ ownerUsername: string,
+ timelineName: string
+ ): Promise<HttpTimelineInfo> {
return axios
- .get<HttpTimelineInfo>(`${apiBaseUrl}/timelines/${timelineName}`)
+ .get<HttpTimelineInfo>(
+ `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}`
+ )
.then(extractResponseData);
}
postTimeline(req: HttpTimelinePostRequest): Promise<HttpTimelineInfo> {
return axios
- .post<HttpTimelineInfo>(`${apiBaseUrl}/timelines`, req)
+ .post<HttpTimelineInfo>(`${apiBaseUrl}/v2/timelines`, req)
.then(extractResponseData)
- .catch(convertToIfErrorCodeIs(11040101, HttpTimelineNameConflictError));
+ .catch(convertToIfStatusCodeIs(422, HttpTimelineNameConflictError));
}
patchTimeline(
+ ownerUsername: string,
timelineName: string,
req: HttpTimelinePatchRequest
): Promise<HttpTimelineInfo> {
return axios
- .patch<HttpTimelineInfo>(`${apiBaseUrl}/timelines/${timelineName}`, req)
+ .patch<HttpTimelineInfo>(
+ `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}`,
+ req
+ )
.then(extractResponseData);
}
- deleteTimeline(timelineName: string): Promise<void> {
- return axios.delete(`${apiBaseUrl}/timelines/${timelineName}`).then();
+ deleteTimeline(ownerUsername: string, timelineName: string): Promise<void> {
+ return axios
+ .delete(`${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}`)
+ .then();
}
- memberPut(timelineName: string, username: string): Promise<void> {
+ memberPut(
+ ownerUsername: string,
+ timelineName: string,
+ username: string
+ ): Promise<void> {
return axios
- .put(`${apiBaseUrl}/timelines/${timelineName}/members/${username}`)
+ .put(
+ `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}/members/${username}`
+ )
.then();
}
- memberDelete(timelineName: string, username: string): Promise<void> {
+ memberDelete(
+ ownerUsername: string,
+ timelineName: string,
+ username: string
+ ): Promise<void> {
return axios
- .delete(`${apiBaseUrl}/timelines/${timelineName}/members/${username}`)
+ .delete(
+ `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}/members/${username}`
+ )
.then();
}
- listPost(timelineName: string): Promise<HttpTimelinePostInfo[]> {
+ listPost(
+ ownerUsername: string,
+ timelineName: string
+ ): Promise<HttpTimelinePostInfo[]> {
return axios
.get<HttpTimelinePostInfo[]>(
- `${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<string> {
+ getPostDataAsString(
+ ownerUsername: string,
+ timelineName: string,
+ postId: number
+ ): Promise<string> {
return axios
.get<string>(
- `${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<HttpTimelinePostInfo> {
return axios
.post<HttpTimelinePostInfo>(
- `${apiBaseUrl}/timelines/${timelineName}/posts`,
+ `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}/posts`,
req
)
.then(extractResponseData);
}
patchPost(
+ ownerUsername: string,
timelineName: string,
postId: number,
req: HttpTimelinePostPatchRequest
): Promise<HttpTimelinePostInfo> {
return axios
.patch<HttpTimelinePostInfo>(
- `${apiBaseUrl}/timelines/${timelineName}/posts/${postId}`,
+ `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}/posts/${postId}`,
req
)
.then(extractResponseData);
}
- deletePost(timelineName: string, postId: number): Promise<void> {
+ deletePost(
+ ownerUsername: string,
+ timelineName: string,
+ postId: number
+ ): Promise<void> {
return axios
- .delete(`${apiBaseUrl}/timelines/${timelineName}/posts/${postId}`)
+ .delete(
+ `${apiBaseUrl}/v2/timelines/${ownerUsername}/${timelineName}/posts/${postId}`
+ )
.then();
}
}