]>
Commit | Line | Data |
---|---|---|
1 | import { makeDeleteRequest, makeGetRequest, makePostBodyRequest, makePutBodyRequest } from '../requests/requests' | |
2 | import { VideoRedundanciesTarget } from '@shared/models' | |
3 | import { HttpStatusCode } from '../../../shared/core-utils/miscs/http-error-codes' | |
4 | ||
5 | function updateRedundancy ( | |
6 | url: string, | |
7 | accessToken: string, | |
8 | host: string, | |
9 | redundancyAllowed: boolean, | |
10 | expectedStatus = HttpStatusCode.NO_CONTENT_204 | |
11 | ) { | |
12 | const path = '/api/v1/server/redundancy/' + host | |
13 | ||
14 | return makePutBodyRequest({ | |
15 | url, | |
16 | path, | |
17 | token: accessToken, | |
18 | fields: { redundancyAllowed }, | |
19 | statusCodeExpected: expectedStatus | |
20 | }) | |
21 | } | |
22 | ||
23 | function listVideoRedundancies (options: { | |
24 | url: string | |
25 | accessToken: string | |
26 | target: VideoRedundanciesTarget | |
27 | start?: number | |
28 | count?: number | |
29 | sort?: string | |
30 | statusCodeExpected?: HttpStatusCode | |
31 | }) { | |
32 | const path = '/api/v1/server/redundancy/videos' | |
33 | ||
34 | const { url, accessToken, target, statusCodeExpected, start, count, sort } = options | |
35 | ||
36 | return makeGetRequest({ | |
37 | url, | |
38 | token: accessToken, | |
39 | path, | |
40 | query: { | |
41 | start: start ?? 0, | |
42 | count: count ?? 5, | |
43 | sort: sort ?? 'name', | |
44 | target | |
45 | }, | |
46 | statusCodeExpected: statusCodeExpected || HttpStatusCode.OK_200 | |
47 | }) | |
48 | } | |
49 | ||
50 | function addVideoRedundancy (options: { | |
51 | url: string | |
52 | accessToken: string | |
53 | videoId: number | |
54 | }) { | |
55 | const path = '/api/v1/server/redundancy/videos' | |
56 | const { url, accessToken, videoId } = options | |
57 | ||
58 | return makePostBodyRequest({ | |
59 | url, | |
60 | token: accessToken, | |
61 | path, | |
62 | fields: { videoId }, | |
63 | statusCodeExpected: HttpStatusCode.NO_CONTENT_204 | |
64 | }) | |
65 | } | |
66 | ||
67 | function removeVideoRedundancy (options: { | |
68 | url: string | |
69 | accessToken: string | |
70 | redundancyId: number | |
71 | }) { | |
72 | const { url, accessToken, redundancyId } = options | |
73 | const path = '/api/v1/server/redundancy/videos/' + redundancyId | |
74 | ||
75 | return makeDeleteRequest({ | |
76 | url, | |
77 | token: accessToken, | |
78 | path, | |
79 | statusCodeExpected: HttpStatusCode.NO_CONTENT_204 | |
80 | }) | |
81 | } | |
82 | ||
83 | export { | |
84 | updateRedundancy, | |
85 | listVideoRedundancies, | |
86 | addVideoRedundancy, | |
87 | removeVideoRedundancy | |
88 | } |