aboutsummaryrefslogtreecommitdiffhomepage
path: root/packages/server-commands/src/runners/runner-registration-tokens-command.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/server-commands/src/runners/runner-registration-tokens-command.ts')
-rw-r--r--packages/server-commands/src/runners/runner-registration-tokens-command.ts55
1 files changed, 55 insertions, 0 deletions
diff --git a/packages/server-commands/src/runners/runner-registration-tokens-command.ts b/packages/server-commands/src/runners/runner-registration-tokens-command.ts
new file mode 100644
index 000000000..86b6e5f93
--- /dev/null
+++ b/packages/server-commands/src/runners/runner-registration-tokens-command.ts
@@ -0,0 +1,55 @@
1import { pick } from '@peertube/peertube-core-utils'
2import { HttpStatusCode, ResultList, RunnerRegistrationToken } from '@peertube/peertube-models'
3import { AbstractCommand, OverrideCommandOptions } from '../shared/index.js'
4
5export class RunnerRegistrationTokensCommand extends AbstractCommand {
6
7 list (options: OverrideCommandOptions & {
8 start?: number
9 count?: number
10 sort?: string
11 } = {}) {
12 const path = '/api/v1/runners/registration-tokens'
13
14 return this.getRequestBody<ResultList<RunnerRegistrationToken>>({
15 ...options,
16
17 path,
18 query: pick(options, [ 'start', 'count', 'sort' ]),
19 implicitToken: true,
20 defaultExpectedStatus: HttpStatusCode.OK_200
21 })
22 }
23
24 generate (options: OverrideCommandOptions = {}) {
25 const path = '/api/v1/runners/registration-tokens/generate'
26
27 return this.postBodyRequest({
28 ...options,
29
30 path,
31 implicitToken: true,
32 defaultExpectedStatus: HttpStatusCode.NO_CONTENT_204
33 })
34 }
35
36 delete (options: OverrideCommandOptions & {
37 id: number
38 }) {
39 const path = '/api/v1/runners/registration-tokens/' + options.id
40
41 return this.deleteRequest({
42 ...options,
43
44 path,
45 implicitToken: true,
46 defaultExpectedStatus: HttpStatusCode.NO_CONTENT_204
47 })
48 }
49
50 async getFirstRegistrationToken (options: OverrideCommandOptions = {}) {
51 const { data } = await this.list(options)
52
53 return data[0].registrationToken
54 }
55}