aboutsummaryrefslogtreecommitdiffhomepage
path: root/shared/extra-utils/server/config.ts
diff options
context:
space:
mode:
Diffstat (limited to 'shared/extra-utils/server/config.ts')
-rw-r--r--shared/extra-utils/server/config.ts156
1 files changed, 156 insertions, 0 deletions
diff --git a/shared/extra-utils/server/config.ts b/shared/extra-utils/server/config.ts
new file mode 100644
index 000000000..deb77e9c0
--- /dev/null
+++ b/shared/extra-utils/server/config.ts
@@ -0,0 +1,156 @@
1import { makeDeleteRequest, makeGetRequest, makePutBodyRequest } from '../requests/requests'
2import { CustomConfig } from '../../models/server/custom-config.model'
3
4function getConfig (url: string) {
5 const path = '/api/v1/config'
6
7 return makeGetRequest({
8 url,
9 path,
10 statusCodeExpected: 200
11 })
12}
13
14function getAbout (url: string) {
15 const path = '/api/v1/config/about'
16
17 return makeGetRequest({
18 url,
19 path,
20 statusCodeExpected: 200
21 })
22}
23
24function getCustomConfig (url: string, token: string, statusCodeExpected = 200) {
25 const path = '/api/v1/config/custom'
26
27 return makeGetRequest({
28 url,
29 token,
30 path,
31 statusCodeExpected
32 })
33}
34
35function updateCustomConfig (url: string, token: string, newCustomConfig: CustomConfig, statusCodeExpected = 200) {
36 const path = '/api/v1/config/custom'
37
38 return makePutBodyRequest({
39 url,
40 token,
41 path,
42 fields: newCustomConfig,
43 statusCodeExpected
44 })
45}
46
47function updateCustomSubConfig (url: string, token: string, newConfig: any) {
48 const updateParams: CustomConfig = {
49 instance: {
50 name: 'PeerTube updated',
51 shortDescription: 'my short description',
52 description: 'my super description',
53 terms: 'my super terms',
54 defaultClientRoute: '/videos/recently-added',
55 isNSFW: true,
56 defaultNSFWPolicy: 'blur',
57 customizations: {
58 javascript: 'alert("coucou")',
59 css: 'body { background-color: red; }'
60 }
61 },
62 services: {
63 twitter: {
64 username: '@MySuperUsername',
65 whitelisted: true
66 }
67 },
68 cache: {
69 previews: {
70 size: 2
71 },
72 captions: {
73 size: 3
74 }
75 },
76 signup: {
77 enabled: false,
78 limit: 5,
79 requiresEmailVerification: false
80 },
81 admin: {
82 email: 'superadmin1@example.com'
83 },
84 contactForm: {
85 enabled: true
86 },
87 user: {
88 videoQuota: 5242881,
89 videoQuotaDaily: 318742
90 },
91 transcoding: {
92 enabled: true,
93 allowAdditionalExtensions: true,
94 threads: 1,
95 resolutions: {
96 '240p': false,
97 '360p': true,
98 '480p': true,
99 '720p': false,
100 '1080p': false
101 },
102 hls: {
103 enabled: false
104 }
105 },
106 import: {
107 videos: {
108 http: {
109 enabled: false
110 },
111 torrent: {
112 enabled: false
113 }
114 }
115 },
116 autoBlacklist: {
117 videos: {
118 ofUsers: {
119 enabled: false
120 }
121 }
122 },
123 followers: {
124 instance: {
125 enabled: true,
126 manualApproval: false
127 }
128 }
129 }
130
131 Object.assign(updateParams, newConfig)
132
133 return updateCustomConfig(url, token, updateParams)
134}
135
136function deleteCustomConfig (url: string, token: string, statusCodeExpected = 200) {
137 const path = '/api/v1/config/custom'
138
139 return makeDeleteRequest({
140 url,
141 token,
142 path,
143 statusCodeExpected
144 })
145}
146
147// ---------------------------------------------------------------------------
148
149export {
150 getConfig,
151 getCustomConfig,
152 updateCustomConfig,
153 getAbout,
154 deleteCustomConfig,
155 updateCustomSubConfig
156}