|
1 | 1 | import type { ManagementStack, TaxonomyPublishJobResponse, TaxonomyPublishPayload } from '../interfaces'; |
2 | 2 | import { OperationType } from '../interfaces'; |
3 | 3 |
|
4 | | -const DEFAULT_TAXONOMY_API_VERSION = '3.2'; |
5 | | - |
6 | | -type TaxonomyPublishWithBranch = ( |
7 | | - data: TaxonomyPublishPayload, |
8 | | - apiVersion?: string, |
9 | | - params?: { branch?: string } |
10 | | -) => Promise<TaxonomyPublishJobResponse>; |
11 | | - |
12 | | -type TaxonomyOperationApi = { |
13 | | - publish: TaxonomyPublishWithBranch; |
14 | | - unpublish: TaxonomyPublishWithBranch; |
15 | | -}; |
16 | | - |
17 | 4 | export class TaxonomyService { |
18 | 5 | constructor(private stack: ManagementStack) {} |
19 | 6 |
|
20 | | - /** |
21 | | - * Publish one or more taxonomies (initiates a publish job). |
22 | | - */ |
23 | | - async publish( |
24 | | - data: TaxonomyPublishPayload, |
25 | | - apiVersion: string = DEFAULT_TAXONOMY_API_VERSION, |
26 | | - branch?: string |
27 | | - ): Promise<TaxonomyPublishJobResponse> { |
28 | | - return this.submit(OperationType.PUBLISH, data, apiVersion, branch); |
| 7 | + async publish(data: TaxonomyPublishPayload, branch?: string): Promise<TaxonomyPublishJobResponse> { |
| 8 | + return this.submit(OperationType.PUBLISH, data, branch); |
29 | 9 | } |
30 | 10 |
|
31 | | - /** |
32 | | - * Unpublish one or more taxonomies (initiates an unpublish job). |
33 | | - */ |
34 | | - async unpublish( |
35 | | - data: TaxonomyPublishPayload, |
36 | | - apiVersion: string = DEFAULT_TAXONOMY_API_VERSION, |
37 | | - branch?: string |
38 | | - ): Promise<TaxonomyPublishJobResponse> { |
39 | | - return this.submit(OperationType.UNPUBLISH, data, apiVersion, branch); |
| 11 | + async unpublish(data: TaxonomyPublishPayload, branch?: string): Promise<TaxonomyPublishJobResponse> { |
| 12 | + return this.submit(OperationType.UNPUBLISH, data, branch); |
40 | 13 | } |
41 | 14 |
|
42 | 15 | private async submit( |
43 | 16 | operation: OperationType, |
44 | 17 | data: TaxonomyPublishPayload, |
45 | | - apiVersion: string, |
46 | 18 | branch?: string |
47 | 19 | ): Promise<TaxonomyPublishJobResponse> { |
48 | | - const taxonomies = this.stack.taxonomy() as unknown as TaxonomyOperationApi; |
49 | | - const params = |
50 | | - branch && branch !== 'main' |
51 | | - ? { |
52 | | - branch, |
53 | | - } |
54 | | - : undefined; |
55 | | - if (operation === OperationType.UNPUBLISH) { |
56 | | - if (params) { |
57 | | - return taxonomies.unpublish(data, apiVersion, params); |
58 | | - } |
59 | | - return taxonomies.unpublish(data, apiVersion); |
60 | | - } |
| 20 | + const taxonomyInstance = this.stack.taxonomy() as any; |
| 21 | + taxonomyInstance.addHeader('api_version', '3.2'); |
| 22 | + |
| 23 | + const params = branch && branch !== 'main' ? { branch } : undefined; |
61 | 24 |
|
62 | | - if (params) { |
63 | | - return taxonomies.publish(data, apiVersion, params); |
| 25 | + if (operation === OperationType.UNPUBLISH) { |
| 26 | + return params ? taxonomyInstance.unpublish(data, undefined, params) : taxonomyInstance.unpublish(data); |
64 | 27 | } |
65 | | - return taxonomies.publish(data, apiVersion); |
| 28 | + return params ? taxonomyInstance.publish(data, undefined, params) : taxonomyInstance.publish(data); |
66 | 29 | } |
67 | 30 | } |
0 commit comments