]>
Commit | Line | Data |
---|---|---|
1 | import { pick } from '@shared/core-utils' | |
2 | import { HttpStatusCode, ResultList, RunnerRegistrationToken } from '@shared/models' | |
3 | import { AbstractCommand, OverrideCommandOptions } from '../shared' | |
4 | ||
5 | export 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 | } |