]>
Commit | Line | Data |
---|---|---|
2c27e704 C |
1 | import { ResultList, Video, VideoChannel } from '@shared/models' |
2 | import { HttpStatusCode } from '../../core-utils/miscs/http-error-codes' | |
3 | import { AbstractCommand, OverrideCommandOptions } from '../shared' | |
4 | ||
5 | export class SubscriptionsCommand extends AbstractCommand { | |
6 | ||
7 | add (options: OverrideCommandOptions & { | |
8 | targetUri: string | |
9 | }) { | |
10 | const path = '/api/v1/users/me/subscriptions' | |
11 | ||
12 | return this.postBodyRequest({ | |
13 | ...options, | |
14 | ||
15 | path, | |
16 | fields: { uri: options.targetUri }, | |
17 | defaultExpectedStatus: HttpStatusCode.NO_CONTENT_204 | |
18 | }) | |
19 | } | |
20 | ||
21 | list (options: OverrideCommandOptions & { | |
22 | sort?: string // default -createdAt | |
23 | search?: string | |
24 | } = {}) { | |
25 | const { sort = '-createdAt', search } = options | |
26 | const path = '/api/v1/users/me/subscriptions' | |
27 | ||
28 | return this.getRequestBody<ResultList<VideoChannel>>({ | |
29 | ...options, | |
30 | ||
31 | path, | |
32 | query: { | |
33 | sort, | |
34 | search | |
35 | }, | |
36 | defaultExpectedStatus: HttpStatusCode.OK_200 | |
37 | }) | |
38 | } | |
39 | ||
40 | listVideos (options: OverrideCommandOptions & { | |
41 | sort?: string // default -createdAt | |
42 | } = {}) { | |
43 | const { sort = '-createdAt' } = options | |
44 | const path = '/api/v1/users/me/subscriptions/videos' | |
45 | ||
46 | return this.getRequestBody<ResultList<Video>>({ | |
47 | ...options, | |
48 | ||
49 | path, | |
50 | query: { sort }, | |
51 | defaultExpectedStatus: HttpStatusCode.OK_200 | |
52 | }) | |
53 | } | |
54 | ||
55 | get (options: OverrideCommandOptions & { | |
56 | uri: string | |
57 | }) { | |
58 | const path = '/api/v1/users/me/subscriptions/' + options.uri | |
59 | ||
60 | return this.getRequestBody<VideoChannel>({ | |
61 | ...options, | |
62 | ||
63 | path, | |
64 | defaultExpectedStatus: HttpStatusCode.OK_200 | |
65 | }) | |
66 | } | |
67 | ||
68 | remove (options: OverrideCommandOptions & { | |
69 | uri: string | |
70 | }) { | |
71 | const path = '/api/v1/users/me/subscriptions/' + options.uri | |
72 | ||
73 | return this.deleteRequest({ | |
74 | ...options, | |
75 | ||
76 | path, | |
77 | defaultExpectedStatus: HttpStatusCode.NO_CONTENT_204 | |
78 | }) | |
79 | } | |
80 | ||
81 | exist (options: OverrideCommandOptions & { | |
82 | uris: string[] | |
83 | }) { | |
84 | const path = '/api/v1/users/me/subscriptions/exist' | |
85 | ||
86 | return this.getRequestBody<{ [id: string ]: boolean }>({ | |
87 | ...options, | |
88 | ||
89 | path, | |
90 | query: { 'uris[]': options.uris }, | |
91 | defaultExpectedStatus: HttpStatusCode.OK_200 | |
92 | }) | |
93 | } | |
94 | } |