Move utils to /shared
[oweals/peertube.git] / shared / utils / users / blocklist.ts
1 /* tslint:disable:no-unused-expression */
2
3 import { makeDeleteRequest, makePostBodyRequest } from '../index'
4 import { makeGetRequest } from '../requests/requests'
5
6 function getAccountBlocklistByAccount (
7   url: string,
8   token: string,
9   start: number,
10   count: number,
11   sort = '-createdAt',
12   statusCodeExpected = 200
13 ) {
14   const path = '/api/v1/users/me/blocklist/accounts'
15
16   return makeGetRequest({
17     url,
18     token,
19     query: { start, count, sort },
20     path,
21     statusCodeExpected
22   })
23 }
24
25 function addAccountToAccountBlocklist (url: string, token: string, accountToBlock: string, statusCodeExpected = 204) {
26   const path = '/api/v1/users/me/blocklist/accounts'
27
28   return makePostBodyRequest({
29     url,
30     path,
31     token,
32     fields: {
33       accountName: accountToBlock
34     },
35     statusCodeExpected
36   })
37 }
38
39 function removeAccountFromAccountBlocklist (url: string, token: string, accountToUnblock: string, statusCodeExpected = 204) {
40   const path = '/api/v1/users/me/blocklist/accounts/' + accountToUnblock
41
42   return makeDeleteRequest({
43     url,
44     path,
45     token,
46     statusCodeExpected
47   })
48 }
49
50 function getServerBlocklistByAccount (
51   url: string,
52   token: string,
53   start: number,
54   count: number,
55   sort = '-createdAt',
56   statusCodeExpected = 200
57 ) {
58   const path = '/api/v1/users/me/blocklist/servers'
59
60   return makeGetRequest({
61     url,
62     token,
63     query: { start, count, sort },
64     path,
65     statusCodeExpected
66   })
67 }
68
69 function addServerToAccountBlocklist (url: string, token: string, serverToBlock: string, statusCodeExpected = 204) {
70   const path = '/api/v1/users/me/blocklist/servers'
71
72   return makePostBodyRequest({
73     url,
74     path,
75     token,
76     fields: {
77       host: serverToBlock
78     },
79     statusCodeExpected
80   })
81 }
82
83 function removeServerFromAccountBlocklist (url: string, token: string, serverToBlock: string, statusCodeExpected = 204) {
84   const path = '/api/v1/users/me/blocklist/servers/' + serverToBlock
85
86   return makeDeleteRequest({
87     url,
88     path,
89     token,
90     statusCodeExpected
91   })
92 }
93
94 function getAccountBlocklistByServer (
95   url: string,
96   token: string,
97   start: number,
98   count: number,
99   sort = '-createdAt',
100   statusCodeExpected = 200
101 ) {
102   const path = '/api/v1/server/blocklist/accounts'
103
104   return makeGetRequest({
105     url,
106     token,
107     query: { start, count, sort },
108     path,
109     statusCodeExpected
110   })
111 }
112
113 function addAccountToServerBlocklist (url: string, token: string, accountToBlock: string, statusCodeExpected = 204) {
114   const path = '/api/v1/server/blocklist/accounts'
115
116   return makePostBodyRequest({
117     url,
118     path,
119     token,
120     fields: {
121       accountName: accountToBlock
122     },
123     statusCodeExpected
124   })
125 }
126
127 function removeAccountFromServerBlocklist (url: string, token: string, accountToUnblock: string, statusCodeExpected = 204) {
128   const path = '/api/v1/server/blocklist/accounts/' + accountToUnblock
129
130   return makeDeleteRequest({
131     url,
132     path,
133     token,
134     statusCodeExpected
135   })
136 }
137
138 function getServerBlocklistByServer (
139   url: string,
140   token: string,
141   start: number,
142   count: number,
143   sort = '-createdAt',
144   statusCodeExpected = 200
145 ) {
146   const path = '/api/v1/server/blocklist/servers'
147
148   return makeGetRequest({
149     url,
150     token,
151     query: { start, count, sort },
152     path,
153     statusCodeExpected
154   })
155 }
156
157 function addServerToServerBlocklist (url: string, token: string, serverToBlock: string, statusCodeExpected = 204) {
158   const path = '/api/v1/server/blocklist/servers'
159
160   return makePostBodyRequest({
161     url,
162     path,
163     token,
164     fields: {
165       host: serverToBlock
166     },
167     statusCodeExpected
168   })
169 }
170
171 function removeServerFromServerBlocklist (url: string, token: string, serverToBlock: string, statusCodeExpected = 204) {
172   const path = '/api/v1/server/blocklist/servers/' + serverToBlock
173
174   return makeDeleteRequest({
175     url,
176     path,
177     token,
178     statusCodeExpected
179   })
180 }
181
182 // ---------------------------------------------------------------------------
183
184 export {
185   getAccountBlocklistByAccount,
186   addAccountToAccountBlocklist,
187   removeAccountFromAccountBlocklist,
188   getServerBlocklistByAccount,
189   addServerToAccountBlocklist,
190   removeServerFromAccountBlocklist,
191
192   getAccountBlocklistByServer,
193   addAccountToServerBlocklist,
194   removeAccountFromServerBlocklist,
195   getServerBlocklistByServer,
196   addServerToServerBlocklist,
197   removeServerFromServerBlocklist
198 }