aboutsummaryrefslogtreecommitdiff
path: root/FrontEnd/src/app/services/timeline.ts
diff options
context:
space:
mode:
Diffstat (limited to 'FrontEnd/src/app/services/timeline.ts')
-rw-r--r--FrontEnd/src/app/services/timeline.ts50
1 files changed, 34 insertions, 16 deletions
diff --git a/FrontEnd/src/app/services/timeline.ts b/FrontEnd/src/app/services/timeline.ts
index 4e2530cc..46671ea1 100644
--- a/FrontEnd/src/app/services/timeline.ts
+++ b/FrontEnd/src/app/services/timeline.ts
@@ -26,6 +26,8 @@ export type { TimelineVisibility } from "@/http/timeline";
import { dataStorage } from "./common";
import { userInfoService, AuthUser } from "./user";
import { DataAndStatus, DataHub2 } from "./DataHub2";
+import { getHttpBookmarkClient } from "@/http/bookmark";
+import { getHttpHighlightClient } from "@/http/highlight";
export type TimelineInfo = HttpTimelineInfo;
export type TimelineChangePropertyRequest = HttpTimelinePatchRequest;
@@ -347,24 +349,20 @@ export class TimelineService {
createPost(
timelineName: string,
request: TimelineCreatePostRequest
- ): Observable<unknown> {
- return from(
- getHttpTimelineClient()
- .postPost(timelineName, request)
- .then(() => {
- void this.syncPosts(timelineName);
- })
- );
+ ): Promise<void> {
+ return getHttpTimelineClient()
+ .postPost(timelineName, request)
+ .then(() => {
+ void this.syncPosts(timelineName);
+ });
}
- deletePost(timelineName: string, postId: number): Observable<unknown> {
- return from(
- getHttpTimelineClient()
- .deletePost(timelineName, postId)
- .then(() => {
- void this.syncPosts(timelineName);
- })
- );
+ deletePost(timelineName: string, postId: number): Promise<void> {
+ return getHttpTimelineClient()
+ .deletePost(timelineName, postId)
+ .then(() => {
+ void this.syncPosts(timelineName);
+ });
}
isMemberOf(username: string, timeline: TimelineInfo): boolean {
@@ -433,6 +431,26 @@ export class TimelineService {
user.username === post.author.username)
);
}
+
+ setHighlight(timelineName: string, highlight: boolean): Promise<void> {
+ const client = getHttpHighlightClient();
+ const promise = highlight
+ ? client.put(timelineName)
+ : client.delete(timelineName);
+ return promise.then(() => {
+ void timelineService.syncTimeline(timelineName);
+ });
+ }
+
+ setBookmark(timelineName: string, bookmark: boolean): Promise<void> {
+ const client = getHttpBookmarkClient();
+ const promise = bookmark
+ ? client.put(timelineName)
+ : client.delete(timelineName);
+ return promise.then(() => {
+ void timelineService.syncTimeline(timelineName);
+ });
+ }
}
export const timelineService = new TimelineService();