aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/http/highlight.ts
diff options
context:
space:
mode:
authorcrupest <crupest@outlook.com>2021-06-15 18:25:17 +0800
committerGitHub <noreply@github.com>2021-06-15 18:25:17 +0800
commit4645761c2090aeaf8c26789155b342c048f44535 (patch)
tree1aab5ce94549f3f8b3fd1a31c84fb2dd8b6b2511 /FrontEnd/src/http/highlight.ts
parent485ef185153890b7c6ac4ed9798a3f2db80c8845 (diff)
parentb6afd5e8161126522bdfff876f5483fa97e94797 (diff)
downloadtimeline-4645761c2090aeaf8c26789155b342c048f44535.tar.gz
timeline-4645761c2090aeaf8c26789155b342c048f44535.tar.bz2
timeline-4645761c2090aeaf8c26789155b342c048f44535.zip
Merge pull request #620 from crupest/vite
Migrate to vite!
Diffstat (limited to 'FrontEnd/src/http/highlight.ts')
-rw-r--r--FrontEnd/src/http/highlight.ts49
1 files changed, 49 insertions, 0 deletions
diff --git a/FrontEnd/src/http/highlight.ts b/FrontEnd/src/http/highlight.ts
new file mode 100644
index 00000000..fddf0729
--- /dev/null
+++ b/FrontEnd/src/http/highlight.ts
@@ -0,0 +1,49 @@
+import { axios, apiBaseUrl, extractResponseData } from "./common";
+
+import { HttpTimelineInfo } from "./timeline";
+
+export interface HttpHighlightMoveRequest {
+ timeline: string;
+ newPosition: number;
+}
+
+export interface IHttpHighlightClient {
+ list(): Promise<HttpTimelineInfo[]>;
+ put(timeline: string): Promise<void>;
+ delete(timeline: string): Promise<void>;
+ move(req: HttpHighlightMoveRequest): Promise<void>;
+}
+
+export class HttpHighlightClient implements IHttpHighlightClient {
+ list(): Promise<HttpTimelineInfo[]> {
+ return axios
+ .get<HttpTimelineInfo[]>(`${apiBaseUrl}/highlights`)
+ .then(extractResponseData);
+ }
+
+ put(timeline: string): Promise<void> {
+ return axios.put(`${apiBaseUrl}/highlights/${timeline}`).then();
+ }
+
+ delete(timeline: string): Promise<void> {
+ return axios.delete(`${apiBaseUrl}/highlights/${timeline}`).then();
+ }
+
+ move(req: HttpHighlightMoveRequest): Promise<void> {
+ return axios.post(`${apiBaseUrl}/highlightop/move`, req).then();
+ }
+}
+
+let client: IHttpHighlightClient = new HttpHighlightClient();
+
+export function getHttpHighlightClient(): IHttpHighlightClient {
+ return client;
+}
+
+export function setHttpHighlightClient(
+ newClient: IHttpHighlightClient
+): IHttpHighlightClient {
+ const old = client;
+ client = newClient;
+ return old;
+}