@camunda/ccma-api 0.1.0 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +31 -7
- package/dist/index.js +56 -2
- package/dist/index.js.map +2 -2
- package/dist/services/accounts/admin-tools.service.d.ts +27 -0
- package/dist/services/accounts/admin-tools.service.js +70 -0
- package/dist/services/accounts/admin-tools.service.js.map +7 -0
- package/dist/services/accounts/connections.service.d.ts +85 -0
- package/dist/services/accounts/connections.service.js +150 -0
- package/dist/services/accounts/connections.service.js.map +2 -2
- package/dist/services/accounts/early-access-features.service.d.ts +59 -0
- package/dist/services/accounts/early-access-features.service.js +142 -0
- package/dist/services/accounts/early-access-features.service.js.map +2 -2
- package/dist/services/accounts/invites.service.d.ts +28 -0
- package/dist/services/accounts/invites.service.js +53 -0
- package/dist/services/accounts/invites.service.js.map +7 -0
- package/dist/services/accounts/orgs.service.d.ts +42 -0
- package/dist/services/accounts/orgs.service.js +123 -0
- package/dist/services/accounts/orgs.service.js.map +2 -2
- package/dist/services/accounts/orgs.v2.service.d.ts +6 -0
- package/dist/services/accounts/orgs.v2.service.js +34 -0
- package/dist/services/accounts/orgs.v2.service.js.map +2 -2
- package/dist/services/accounts/pdf-watermark.service.d.ts +93 -0
- package/dist/services/accounts/pdf-watermark.service.js +147 -0
- package/dist/services/accounts/pdf-watermark.service.js.map +7 -0
- package/dist/services/accounts/release-train.service.d.ts +25 -0
- package/dist/services/accounts/release-train.service.js +46 -0
- package/dist/services/accounts/release-train.service.js.map +7 -0
- package/dist/services/accounts/salesplan.service.d.ts +45 -0
- package/dist/services/accounts/salesplan.service.js +185 -0
- package/dist/services/accounts/salesplan.service.js.map +2 -2
- package/dist/services/accounts/token-issuer.service.d.ts +31 -0
- package/dist/services/accounts/token-issuer.service.js +63 -0
- package/dist/services/accounts/token-issuer.service.js.map +7 -0
- package/dist/services/accounts/users.service.d.ts +59 -0
- package/dist/services/accounts/users.service.js +296 -4
- package/dist/services/accounts/users.service.js.map +2 -2
- package/dist/services/console/console.admin.service.d.ts +21 -1
- package/dist/services/console/console.admin.service.js +75 -0
- package/dist/services/console/console.admin.service.js.map +2 -2
- package/dist/services/console/console.channel.service.d.ts +49 -0
- package/dist/services/console/console.channel.service.js +123 -0
- package/dist/services/console/console.channel.service.js.map +7 -0
- package/dist/services/console/console.cluster.service.d.ts +23 -11
- package/dist/services/console/console.cluster.service.js +36 -1
- package/dist/services/console/console.cluster.service.js.map +2 -2
- package/dist/services/console/console.cluster.v2.service.d.ts +18 -1
- package/dist/services/console/console.cluster.v2.service.js +95 -0
- package/dist/services/console/console.cluster.v2.service.js.map +2 -2
- package/dist/services/console/console.clusterplan.service.d.ts +21 -0
- package/dist/services/console/console.clusterplan.service.js +92 -0
- package/dist/services/console/console.clusterplan.service.js.map +2 -2
- package/dist/services/console/console.clusterplantype.service.d.ts +54 -0
- package/dist/services/console/console.clusterplantype.service.js +152 -0
- package/dist/services/console/console.clusterplantype.service.js.map +7 -0
- package/dist/services/console/console.k8scontext.service.d.ts +10 -0
- package/dist/services/console/console.k8scontext.service.js +41 -0
- package/dist/services/console/console.k8scontext.service.js.map +7 -0
- package/dist/services/console/console.storybook-config.service.d.ts +10 -0
- package/dist/services/console/console.storybook-config.service.js +40 -0
- package/dist/services/console/console.storybook-config.service.js.map +7 -0
- package/dist/services/console/generation.service.d.ts +45 -0
- package/dist/services/console/generation.service.js +143 -0
- package/dist/services/console/generation.service.js.map +2 -2
- package/dist/services/external/external.accounts.service.d.ts +27 -0
- package/dist/services/external/external.accounts.service.js +80 -0
- package/dist/services/external/external.accounts.service.js.map +7 -0
- package/dist/services/external/external.console.service.d.ts +37 -0
- package/dist/services/external/external.console.service.js +81 -0
- package/dist/services/external/external.console.service.js.map +7 -0
- package/dist/services/external/external.notifications.service.d.ts +78 -0
- package/dist/services/external/external.notifications.service.js +220 -0
- package/dist/services/external/external.notifications.service.js.map +7 -0
- package/dist/services/external/external.services.spec.d.ts +1 -0
- package/dist/services/notifications/notifications.service.d.ts +45 -1
- package/dist/services/notifications/notifications.service.js +168 -1
- package/dist/services/notifications/notifications.service.js.map +2 -2
- package/dist/types/general.types.d.ts +9 -1
- package/dist/utils/api.d.ts +14 -1
- package/dist/utils/api.js +71 -6
- package/dist/utils/api.js.map +2 -2
- package/dist/utils/api.request-headers.spec.d.ts +1 -0
- package/dist/utils/api.transient-retry.spec.d.ts +1 -0
- package/dist/utils/sse.d.ts +51 -0
- package/dist/utils/sse.js +254 -0
- package/dist/utils/sse.js.map +7 -0
- package/dist/utils/sse.spec.d.ts +1 -0
- package/dist/utils/traceparent.d.ts +30 -0
- package/dist/utils/traceparent.js +46 -0
- package/dist/utils/traceparent.js.map +7 -0
- package/dist/utils/traceparent.spec.d.ts +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import type { RequestBaseParams } from '../../types/general.types.js';
|
|
2
|
+
export interface PdfWatermarkProjectDto {
|
|
3
|
+
uuid: string;
|
|
4
|
+
name: string;
|
|
5
|
+
confidential: boolean;
|
|
6
|
+
template: string;
|
|
7
|
+
angle: number;
|
|
8
|
+
rows: string[];
|
|
9
|
+
hasPdf: boolean;
|
|
10
|
+
pdfFilename?: string;
|
|
11
|
+
createdBy: string;
|
|
12
|
+
created: Date;
|
|
13
|
+
updated: Date;
|
|
14
|
+
}
|
|
15
|
+
export interface PdfWatermarkAuditEntryDto {
|
|
16
|
+
uuid: string;
|
|
17
|
+
projectUuid: string;
|
|
18
|
+
projectName: string;
|
|
19
|
+
userId: string;
|
|
20
|
+
userEmail: string;
|
|
21
|
+
customText: string;
|
|
22
|
+
created: Date;
|
|
23
|
+
}
|
|
24
|
+
export interface CreatePdfWatermarkProjectParams extends RequestBaseParams {
|
|
25
|
+
body: {
|
|
26
|
+
name: string;
|
|
27
|
+
confidential: boolean;
|
|
28
|
+
template: string;
|
|
29
|
+
angle: number;
|
|
30
|
+
password?: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export interface UpdatePdfWatermarkProjectParams extends RequestBaseParams {
|
|
34
|
+
params: {
|
|
35
|
+
uuid: string;
|
|
36
|
+
};
|
|
37
|
+
body: {
|
|
38
|
+
name?: string;
|
|
39
|
+
template?: string;
|
|
40
|
+
angle?: number;
|
|
41
|
+
rows?: string[];
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export interface PdfWatermarkProjectIdParams extends RequestBaseParams {
|
|
45
|
+
params: {
|
|
46
|
+
uuid: string;
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
export interface SetPdfWatermarkPdfParams extends RequestBaseParams {
|
|
50
|
+
params: {
|
|
51
|
+
uuid: string;
|
|
52
|
+
};
|
|
53
|
+
body: {
|
|
54
|
+
pdfBase64: string;
|
|
55
|
+
filename: string;
|
|
56
|
+
password?: string;
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
export interface PdfWatermarkPasswordParams extends RequestBaseParams {
|
|
60
|
+
params: {
|
|
61
|
+
uuid: string;
|
|
62
|
+
};
|
|
63
|
+
body: {
|
|
64
|
+
password?: string;
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
export interface RecordPdfWatermarkAuditParams extends RequestBaseParams {
|
|
68
|
+
params: {
|
|
69
|
+
uuid: string;
|
|
70
|
+
};
|
|
71
|
+
body: {
|
|
72
|
+
projectName: string;
|
|
73
|
+
customText: string;
|
|
74
|
+
userEmail: string;
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
/** PDF watermark projects (god-tool): templates, entries, watermarked PDFs. */
|
|
78
|
+
export declare class PdfWatermarkService {
|
|
79
|
+
static listProjects(params: RequestBaseParams): Promise<PdfWatermarkProjectDto[]>;
|
|
80
|
+
static getProject(params: PdfWatermarkProjectIdParams): Promise<PdfWatermarkProjectDto | undefined>;
|
|
81
|
+
static createProject(params: CreatePdfWatermarkProjectParams): Promise<PdfWatermarkProjectDto | undefined>;
|
|
82
|
+
static updateProject(params: UpdatePdfWatermarkProjectParams): Promise<PdfWatermarkProjectDto | undefined>;
|
|
83
|
+
static deleteProject(params: PdfWatermarkProjectIdParams): Promise<void>;
|
|
84
|
+
/** Upload/replace the project's source PDF (base64; ≤15MB in accounts). */
|
|
85
|
+
static setPdf(params: SetPdfWatermarkPdfParams): Promise<void>;
|
|
86
|
+
/** Check a confidential project's password. */
|
|
87
|
+
static unlock(params: PdfWatermarkPasswordParams): Promise<boolean>;
|
|
88
|
+
/** Decrypted source-PDF bytes for client-side watermarking. */
|
|
89
|
+
static getPdfBytes(params: PdfWatermarkPasswordParams): Promise<Blob>;
|
|
90
|
+
/** Record a watermarked-download audit entry. */
|
|
91
|
+
static recordAudit(params: RecordPdfWatermarkAuditParams): Promise<void>;
|
|
92
|
+
static listAudit(params: RequestBaseParams): Promise<PdfWatermarkAuditEntryDto[]>;
|
|
93
|
+
}
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { request } from "../../utils/api.js";
|
|
2
|
+
import { HttpError } from "../../utils/errors.js";
|
|
3
|
+
const BASE = "api/pdf-watermark";
|
|
4
|
+
const run = async (name, url, normalizedUrl, method, params, body, responseType = "json") => {
|
|
5
|
+
const serviceContext = {
|
|
6
|
+
method: { name, url, normalizedUrl, type: method },
|
|
7
|
+
source: params.config.metrics?.source || "unset",
|
|
8
|
+
target: { name: "accounts", type: "internal" }
|
|
9
|
+
};
|
|
10
|
+
const response = await request({
|
|
11
|
+
config: params.config,
|
|
12
|
+
base: { id: "accounts" },
|
|
13
|
+
url,
|
|
14
|
+
method,
|
|
15
|
+
metricsDetails: serviceContext,
|
|
16
|
+
body,
|
|
17
|
+
responseType
|
|
18
|
+
});
|
|
19
|
+
if (!response.ok) {
|
|
20
|
+
throw new HttpError(
|
|
21
|
+
`${name}: ${response.status} ${response.statusText}`,
|
|
22
|
+
response.status,
|
|
23
|
+
response.statusText
|
|
24
|
+
);
|
|
25
|
+
}
|
|
26
|
+
return response.body;
|
|
27
|
+
};
|
|
28
|
+
class PdfWatermarkService {
|
|
29
|
+
static async listProjects(params) {
|
|
30
|
+
return await run(
|
|
31
|
+
"PdfWatermarkService.listProjects",
|
|
32
|
+
`${BASE}/projects`,
|
|
33
|
+
`${BASE}/projects`,
|
|
34
|
+
"get",
|
|
35
|
+
params
|
|
36
|
+
) ?? [];
|
|
37
|
+
}
|
|
38
|
+
static async getProject(params) {
|
|
39
|
+
return run(
|
|
40
|
+
"PdfWatermarkService.getProject",
|
|
41
|
+
`${BASE}/projects/${encodeURIComponent(params.params.uuid)}`,
|
|
42
|
+
`${BASE}/projects/:uuid`,
|
|
43
|
+
"get",
|
|
44
|
+
params
|
|
45
|
+
);
|
|
46
|
+
}
|
|
47
|
+
static async createProject(params) {
|
|
48
|
+
return run(
|
|
49
|
+
"PdfWatermarkService.createProject",
|
|
50
|
+
`${BASE}/projects`,
|
|
51
|
+
`${BASE}/projects`,
|
|
52
|
+
"post",
|
|
53
|
+
params,
|
|
54
|
+
params.body
|
|
55
|
+
);
|
|
56
|
+
}
|
|
57
|
+
static async updateProject(params) {
|
|
58
|
+
return run(
|
|
59
|
+
"PdfWatermarkService.updateProject",
|
|
60
|
+
`${BASE}/projects/${encodeURIComponent(params.params.uuid)}`,
|
|
61
|
+
`${BASE}/projects/:uuid`,
|
|
62
|
+
"put",
|
|
63
|
+
params,
|
|
64
|
+
params.body
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
static async deleteProject(params) {
|
|
68
|
+
await run(
|
|
69
|
+
"PdfWatermarkService.deleteProject",
|
|
70
|
+
`${BASE}/projects/${encodeURIComponent(params.params.uuid)}`,
|
|
71
|
+
`${BASE}/projects/:uuid`,
|
|
72
|
+
"delete",
|
|
73
|
+
params,
|
|
74
|
+
void 0,
|
|
75
|
+
"none"
|
|
76
|
+
);
|
|
77
|
+
}
|
|
78
|
+
/** Upload/replace the project's source PDF (base64; ≤15MB in accounts). */
|
|
79
|
+
static async setPdf(params) {
|
|
80
|
+
await run(
|
|
81
|
+
"PdfWatermarkService.setPdf",
|
|
82
|
+
`${BASE}/projects/${encodeURIComponent(params.params.uuid)}/pdf`,
|
|
83
|
+
`${BASE}/projects/:uuid/pdf`,
|
|
84
|
+
"put",
|
|
85
|
+
params,
|
|
86
|
+
params.body,
|
|
87
|
+
"none"
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
/** Check a confidential project's password. */
|
|
91
|
+
static async unlock(params) {
|
|
92
|
+
const body = await run(
|
|
93
|
+
"PdfWatermarkService.unlock",
|
|
94
|
+
`${BASE}/projects/${encodeURIComponent(params.params.uuid)}/unlock`,
|
|
95
|
+
`${BASE}/projects/:uuid/unlock`,
|
|
96
|
+
"post",
|
|
97
|
+
params,
|
|
98
|
+
params.body
|
|
99
|
+
);
|
|
100
|
+
return Boolean(body?.ok);
|
|
101
|
+
}
|
|
102
|
+
/** Decrypted source-PDF bytes for client-side watermarking. */
|
|
103
|
+
static async getPdfBytes(params) {
|
|
104
|
+
const body = await run(
|
|
105
|
+
"PdfWatermarkService.getPdfBytes",
|
|
106
|
+
`${BASE}/projects/${encodeURIComponent(params.params.uuid)}/pdf-decrypt`,
|
|
107
|
+
`${BASE}/projects/:uuid/pdf-decrypt`,
|
|
108
|
+
"post",
|
|
109
|
+
params,
|
|
110
|
+
params.body,
|
|
111
|
+
"blob"
|
|
112
|
+
);
|
|
113
|
+
if (!body) {
|
|
114
|
+
throw new HttpError(
|
|
115
|
+
"PdfWatermarkService.getPdfBytes: empty response body",
|
|
116
|
+
500,
|
|
117
|
+
"empty response body"
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
return body;
|
|
121
|
+
}
|
|
122
|
+
/** Record a watermarked-download audit entry. */
|
|
123
|
+
static async recordAudit(params) {
|
|
124
|
+
await run(
|
|
125
|
+
"PdfWatermarkService.recordAudit",
|
|
126
|
+
`${BASE}/projects/${encodeURIComponent(params.params.uuid)}/audit`,
|
|
127
|
+
`${BASE}/projects/:uuid/audit`,
|
|
128
|
+
"post",
|
|
129
|
+
params,
|
|
130
|
+
params.body,
|
|
131
|
+
"none"
|
|
132
|
+
);
|
|
133
|
+
}
|
|
134
|
+
static async listAudit(params) {
|
|
135
|
+
return await run(
|
|
136
|
+
"PdfWatermarkService.listAudit",
|
|
137
|
+
`${BASE}/audit`,
|
|
138
|
+
`${BASE}/audit`,
|
|
139
|
+
"get",
|
|
140
|
+
params
|
|
141
|
+
) ?? [];
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
export {
|
|
145
|
+
PdfWatermarkService
|
|
146
|
+
};
|
|
147
|
+
//# sourceMappingURL=pdf-watermark.service.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/services/accounts/pdf-watermark.service.ts"],
|
|
4
|
+
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type {\n RequestBaseMethodType,\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { HttpError } from '../../utils/errors.js'\n\nconst BASE = 'api/pdf-watermark'\n\nexport interface PdfWatermarkProjectDto {\n uuid: string\n name: string\n confidential: boolean\n template: string\n angle: number\n rows: string[]\n hasPdf: boolean\n pdfFilename?: string\n createdBy: string\n created: Date\n updated: Date\n}\n\nexport interface PdfWatermarkAuditEntryDto {\n uuid: string\n projectUuid: string\n projectName: string\n userId: string\n userEmail: string\n customText: string\n created: Date\n}\n\nexport interface CreatePdfWatermarkProjectParams extends RequestBaseParams {\n body: {\n name: string\n confidential: boolean\n template: string\n angle: number\n password?: string\n }\n}\n\nexport interface UpdatePdfWatermarkProjectParams extends RequestBaseParams {\n params: { uuid: string }\n body: {\n name?: string\n template?: string\n angle?: number\n rows?: string[]\n }\n}\n\nexport interface PdfWatermarkProjectIdParams extends RequestBaseParams {\n params: { uuid: string }\n}\n\nexport interface SetPdfWatermarkPdfParams extends RequestBaseParams {\n params: { uuid: string }\n body: {\n pdfBase64: string\n filename: string\n password?: string\n }\n}\n\nexport interface PdfWatermarkPasswordParams extends RequestBaseParams {\n params: { uuid: string }\n body: { password?: string }\n}\n\nexport interface RecordPdfWatermarkAuditParams extends RequestBaseParams {\n params: { uuid: string }\n body: {\n projectName: string\n customText: string\n userEmail: string\n }\n}\n\n/** Shared request runner: all PDF-watermark routes live on the accounts base. */\nconst run = async <T>(\n name: string,\n url: string,\n normalizedUrl: string,\n method: RequestBaseMethodType,\n params: RequestBaseParams,\n body?: object,\n responseType: 'json' | 'none' | 'blob' = 'json',\n): Promise<T | undefined> => {\n const serviceContext: RequestBaseServiceContext = {\n method: { name, url, normalizedUrl, type: method },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request<T>({\n config: params.config,\n base: { id: 'accounts' },\n url,\n method,\n metricsDetails: serviceContext,\n body,\n responseType,\n })\n if (!response.ok) {\n throw new HttpError(\n `${name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n}\n\n/** PDF watermark projects (god-tool): templates, entries, watermarked PDFs. */\nexport class PdfWatermarkService {\n public static async listProjects(\n params: RequestBaseParams,\n ): Promise<PdfWatermarkProjectDto[]> {\n return (\n (await run<PdfWatermarkProjectDto[]>(\n 'PdfWatermarkService.listProjects',\n `${BASE}/projects`,\n `${BASE}/projects`,\n 'get',\n params,\n )) ?? []\n )\n }\n\n public static async getProject(\n params: PdfWatermarkProjectIdParams,\n ): Promise<PdfWatermarkProjectDto | undefined> {\n return run<PdfWatermarkProjectDto>(\n 'PdfWatermarkService.getProject',\n `${BASE}/projects/${encodeURIComponent(params.params.uuid)}`,\n `${BASE}/projects/:uuid`,\n 'get',\n params,\n )\n }\n\n public static async createProject(\n params: CreatePdfWatermarkProjectParams,\n ): Promise<PdfWatermarkProjectDto | undefined> {\n return run<PdfWatermarkProjectDto>(\n 'PdfWatermarkService.createProject',\n `${BASE}/projects`,\n `${BASE}/projects`,\n 'post',\n params,\n params.body,\n )\n }\n\n public static async updateProject(\n params: UpdatePdfWatermarkProjectParams,\n ): Promise<PdfWatermarkProjectDto | undefined> {\n return run<PdfWatermarkProjectDto>(\n 'PdfWatermarkService.updateProject',\n `${BASE}/projects/${encodeURIComponent(params.params.uuid)}`,\n `${BASE}/projects/:uuid`,\n 'put',\n params,\n params.body,\n )\n }\n\n public static async deleteProject(\n params: PdfWatermarkProjectIdParams,\n ): Promise<void> {\n await run(\n 'PdfWatermarkService.deleteProject',\n `${BASE}/projects/${encodeURIComponent(params.params.uuid)}`,\n `${BASE}/projects/:uuid`,\n 'delete',\n params,\n undefined,\n 'none',\n )\n }\n\n /** Upload/replace the project's source PDF (base64; \u226415MB in accounts). */\n public static async setPdf(params: SetPdfWatermarkPdfParams): Promise<void> {\n await run(\n 'PdfWatermarkService.setPdf',\n `${BASE}/projects/${encodeURIComponent(params.params.uuid)}/pdf`,\n `${BASE}/projects/:uuid/pdf`,\n 'put',\n params,\n params.body,\n 'none',\n )\n }\n\n /** Check a confidential project's password. */\n public static async unlock(\n params: PdfWatermarkPasswordParams,\n ): Promise<boolean> {\n const body = await run<{ ok?: boolean }>(\n 'PdfWatermarkService.unlock',\n `${BASE}/projects/${encodeURIComponent(params.params.uuid)}/unlock`,\n `${BASE}/projects/:uuid/unlock`,\n 'post',\n params,\n params.body,\n )\n return Boolean(body?.ok)\n }\n\n /** Decrypted source-PDF bytes for client-side watermarking. */\n public static async getPdfBytes(\n params: PdfWatermarkPasswordParams,\n ): Promise<Blob> {\n const body = await run<Blob>(\n 'PdfWatermarkService.getPdfBytes',\n `${BASE}/projects/${encodeURIComponent(params.params.uuid)}/pdf-decrypt`,\n `${BASE}/projects/:uuid/pdf-decrypt`,\n 'post',\n params,\n params.body,\n 'blob',\n )\n if (!body) {\n throw new HttpError(\n 'PdfWatermarkService.getPdfBytes: empty response body',\n 500,\n 'empty response body',\n )\n }\n return body\n }\n\n /** Record a watermarked-download audit entry. */\n public static async recordAudit(\n params: RecordPdfWatermarkAuditParams,\n ): Promise<void> {\n await run(\n 'PdfWatermarkService.recordAudit',\n `${BASE}/projects/${encodeURIComponent(params.params.uuid)}/audit`,\n `${BASE}/projects/:uuid/audit`,\n 'post',\n params,\n params.body,\n 'none',\n )\n }\n\n public static async listAudit(\n params: RequestBaseParams,\n ): Promise<PdfWatermarkAuditEntryDto[]> {\n return (\n (await run<PdfWatermarkAuditEntryDto[]>(\n 'PdfWatermarkService.listAudit',\n `${BASE}/audit`,\n `${BASE}/audit`,\n 'get',\n params,\n )) ?? []\n )\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { RequestBaseParams } from '../../types/general.types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Known Self-Managed release-train names, mirrored from accounts' hardcoded
|
|
4
|
+
* list (there is no list-all endpoint — the backend only serves get-by-name,
|
|
5
|
+
* so the UI iterates this set and lets the user search other names manually).
|
|
6
|
+
*/
|
|
7
|
+
export declare const KNOWN_RELEASE_TRAINS: readonly ["8.10-alpha", "8.9-minor", "8.8-patch", "8.7-patch", "8.6-patch", "8.5-patch"];
|
|
8
|
+
/**
|
|
9
|
+
* Release info for a Self-Managed train. The payload is version metadata keyed
|
|
10
|
+
* by component; only `consoleVersion` is rendered today, the rest stays opaque.
|
|
11
|
+
*/
|
|
12
|
+
export interface ReleaseTrainInfoDto {
|
|
13
|
+
consoleVersion?: string;
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
}
|
|
16
|
+
export interface GetReleaseTrainParams extends RequestBaseParams {
|
|
17
|
+
params: {
|
|
18
|
+
/** Train name, e.g. `8.8-patch`. */
|
|
19
|
+
name: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export declare class ReleaseTrainService {
|
|
23
|
+
/** Release info for one SM train (`GET api/releases/release-train/:name`). */
|
|
24
|
+
static get(params: GetReleaseTrainParams): Promise<ReleaseTrainInfoDto | undefined>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { request } from "../../utils/api.js";
|
|
2
|
+
import { HttpError } from "../../utils/errors.js";
|
|
3
|
+
const KNOWN_RELEASE_TRAINS = [
|
|
4
|
+
"8.10-alpha",
|
|
5
|
+
"8.9-minor",
|
|
6
|
+
"8.8-patch",
|
|
7
|
+
"8.7-patch",
|
|
8
|
+
"8.6-patch",
|
|
9
|
+
"8.5-patch"
|
|
10
|
+
];
|
|
11
|
+
class ReleaseTrainService {
|
|
12
|
+
/** Release info for one SM train (`GET api/releases/release-train/:name`). */
|
|
13
|
+
static async get(params) {
|
|
14
|
+
const serviceContext = {
|
|
15
|
+
method: {
|
|
16
|
+
name: `ReleaseTrainService.get`,
|
|
17
|
+
url: `api/releases/release-train/${encodeURIComponent(params.params.name)}`,
|
|
18
|
+
normalizedUrl: `api/releases/release-train/:name`,
|
|
19
|
+
type: "get"
|
|
20
|
+
},
|
|
21
|
+
source: params.config.metrics?.source || "unset",
|
|
22
|
+
target: { name: "accounts", type: "internal" }
|
|
23
|
+
};
|
|
24
|
+
const response = await request({
|
|
25
|
+
...params,
|
|
26
|
+
base: { id: "accounts" },
|
|
27
|
+
url: serviceContext.method.url,
|
|
28
|
+
method: serviceContext.method.type,
|
|
29
|
+
metricsDetails: serviceContext,
|
|
30
|
+
responseType: "json"
|
|
31
|
+
});
|
|
32
|
+
if (!response.ok) {
|
|
33
|
+
throw new HttpError(
|
|
34
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
35
|
+
response.status,
|
|
36
|
+
response.statusText
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
return response.body;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export {
|
|
43
|
+
KNOWN_RELEASE_TRAINS,
|
|
44
|
+
ReleaseTrainService
|
|
45
|
+
};
|
|
46
|
+
//# sourceMappingURL=release-train.service.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/services/accounts/release-train.service.ts"],
|
|
4
|
+
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { HttpError } from '../../utils/errors.js'\n\n/**\n * Known Self-Managed release-train names, mirrored from accounts' hardcoded\n * list (there is no list-all endpoint \u2014 the backend only serves get-by-name,\n * so the UI iterates this set and lets the user search other names manually).\n */\nexport const KNOWN_RELEASE_TRAINS = [\n '8.10-alpha',\n '8.9-minor',\n '8.8-patch',\n '8.7-patch',\n '8.6-patch',\n '8.5-patch',\n] as const\n\n/**\n * Release info for a Self-Managed train. The payload is version metadata keyed\n * by component; only `consoleVersion` is rendered today, the rest stays opaque.\n */\nexport interface ReleaseTrainInfoDto {\n consoleVersion?: string\n [key: string]: unknown\n}\n\nexport interface GetReleaseTrainParams extends RequestBaseParams {\n params: {\n /** Train name, e.g. `8.8-patch`. */\n name: string\n }\n}\n\nexport class ReleaseTrainService {\n /** Release info for one SM train (`GET api/releases/release-train/:name`). */\n public static async get(\n params: GetReleaseTrainParams,\n ): Promise<ReleaseTrainInfoDto | undefined> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `ReleaseTrainService.get`,\n url: `api/releases/release-train/${encodeURIComponent(params.params.name)}`,\n normalizedUrl: `api/releases/release-train/:name`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n\n const response = await request<ReleaseTrainInfoDto>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'json',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n}\n"],
|
|
5
|
+
"mappings": "AAUA,SAAS,eAAe;AACxB,SAAS,iBAAiB;AAOnB,MAAM,uBAAuB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAkBO,MAAM,oBAAoB;AAAA;AAAA,EAE/B,aAAoB,IAClB,QAC0C;AAC1C,UAAM,iBAA4C;AAAA,MAChD,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,KAAK,8BAA8B,mBAAmB,OAAO,OAAO,IAAI,CAAC;AAAA,QACzE,eAAe;AAAA,QACf,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,OAAO,OAAO,SAAS,UAAU;AAAA,MACzC,QAAQ,EAAE,MAAM,YAAY,MAAM,WAAW;AAAA,IAC/C;AAEA,UAAM,WAAW,MAAM,QAA6B;AAAA,MAClD,GAAG;AAAA,MACH,MAAM,EAAE,IAAI,WAAW;AAAA,MACvB,KAAK,eAAe,OAAO;AAAA,MAC3B,QAAQ,eAAe,OAAO;AAAA,MAC9B,gBAAgB;AAAA,MAChB,cAAc;AAAA,IAChB,CAAC;AACD,QAAI,CAAC,SAAS,IAAI;AAChB,YAAM,IAAI;AAAA,QACR,GAAG,eAAe,OAAO,IAAI,KAAK,SAAS,MAAM,IAAI,SAAS,UAAU;AAAA,QACxE,SAAS;AAAA,QACT,SAAS;AAAA,MACX;AAAA,IACF;AACA,WAAO,SAAS;AAAA,EAClB;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,5 +1,50 @@
|
|
|
1
|
+
import { type Limits, type SalesPlanDto, SalesPlanType } from '@camunda/ccma-shared-types';
|
|
1
2
|
import type { RequestBaseParams } from '../../types/general.types.js';
|
|
3
|
+
export type GetSalesPlansRequest = RequestBaseParams;
|
|
4
|
+
export interface CreateSalesPlanRequest extends RequestBaseParams {
|
|
5
|
+
params: {
|
|
6
|
+
name: string;
|
|
7
|
+
type: SalesPlanType;
|
|
8
|
+
version: number;
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export interface UpdateSalesPlanRequest extends RequestBaseParams {
|
|
12
|
+
params: {
|
|
13
|
+
salesPlanUuid: string;
|
|
14
|
+
name: string;
|
|
15
|
+
version: number;
|
|
16
|
+
force: boolean;
|
|
17
|
+
clusterPlanConfigurationMap: Record<string, unknown>;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
export interface UpdateSalesPlanMetadataRequest extends RequestBaseParams {
|
|
21
|
+
params: {
|
|
22
|
+
salesPlanUuid: string;
|
|
23
|
+
metadata: {
|
|
24
|
+
limits?: Limits;
|
|
25
|
+
description?: string;
|
|
26
|
+
};
|
|
27
|
+
name?: string;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export interface UpdateSalesPlanReservationsRequest extends RequestBaseParams {
|
|
31
|
+
params: {
|
|
32
|
+
orgId: string;
|
|
33
|
+
clusterPlanTypesToReserved: Record<string, number>;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export interface DeleteSalesPlanRequest extends RequestBaseParams {
|
|
37
|
+
params: {
|
|
38
|
+
uuid: string;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
2
41
|
export declare class SalesPlanService {
|
|
42
|
+
static getAll(params: GetSalesPlansRequest): Promise<SalesPlanDto[]>;
|
|
43
|
+
static create(params: CreateSalesPlanRequest): Promise<SalesPlanDto>;
|
|
44
|
+
static update(params: UpdateSalesPlanRequest): Promise<void>;
|
|
45
|
+
static updateMetadata(params: UpdateSalesPlanMetadataRequest): Promise<void>;
|
|
46
|
+
static updateReservations(params: UpdateSalesPlanReservationsRequest): Promise<void>;
|
|
47
|
+
static delete(params: DeleteSalesPlanRequest): Promise<void>;
|
|
3
48
|
static deleteClusterPlanType(params: {
|
|
4
49
|
uuid: string;
|
|
5
50
|
force?: boolean;
|
|
@@ -1,6 +1,191 @@
|
|
|
1
|
+
import {
|
|
2
|
+
SalesPlanType
|
|
3
|
+
} from "@camunda/ccma-shared-types";
|
|
1
4
|
import { request } from "../../utils/api.js";
|
|
2
5
|
import { HttpError } from "../../utils/errors.js";
|
|
3
6
|
class SalesPlanService {
|
|
7
|
+
static async getAll(params) {
|
|
8
|
+
const serviceContext = {
|
|
9
|
+
method: {
|
|
10
|
+
name: "SalesPlanService.getAll",
|
|
11
|
+
url: "api/salesplans",
|
|
12
|
+
normalizedUrl: "api/salesplans",
|
|
13
|
+
type: "get"
|
|
14
|
+
},
|
|
15
|
+
source: params.config.metrics?.source || "unset",
|
|
16
|
+
target: { name: "accounts", type: "internal" }
|
|
17
|
+
};
|
|
18
|
+
const response = await request({
|
|
19
|
+
config: params.config,
|
|
20
|
+
base: { id: "accounts" },
|
|
21
|
+
url: serviceContext.method.url,
|
|
22
|
+
method: serviceContext.method.type,
|
|
23
|
+
metricsDetails: serviceContext,
|
|
24
|
+
responseType: "json"
|
|
25
|
+
});
|
|
26
|
+
if (!response.ok) {
|
|
27
|
+
throw new HttpError(
|
|
28
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
29
|
+
response.status,
|
|
30
|
+
response.statusText
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
return response.body ?? [];
|
|
34
|
+
}
|
|
35
|
+
static async create(params) {
|
|
36
|
+
const serviceContext = {
|
|
37
|
+
method: {
|
|
38
|
+
name: "SalesPlanService.create",
|
|
39
|
+
url: "api/salesplans",
|
|
40
|
+
normalizedUrl: "api/salesplans",
|
|
41
|
+
type: "post"
|
|
42
|
+
},
|
|
43
|
+
source: params.config.metrics?.source || "unset",
|
|
44
|
+
target: { name: "accounts", type: "internal" }
|
|
45
|
+
};
|
|
46
|
+
const response = await request({
|
|
47
|
+
config: params.config,
|
|
48
|
+
base: { id: "accounts" },
|
|
49
|
+
url: serviceContext.method.url,
|
|
50
|
+
method: serviceContext.method.type,
|
|
51
|
+
metricsDetails: serviceContext,
|
|
52
|
+
body: {
|
|
53
|
+
name: params.params.name,
|
|
54
|
+
type: params.params.type,
|
|
55
|
+
version: params.params.version,
|
|
56
|
+
internal: params.params.type === SalesPlanType.INTERNAL,
|
|
57
|
+
clusterPlanConfigurationMap: {}
|
|
58
|
+
},
|
|
59
|
+
responseType: "json"
|
|
60
|
+
});
|
|
61
|
+
if (!response.ok || !response.body) {
|
|
62
|
+
throw new HttpError(
|
|
63
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
64
|
+
response.status,
|
|
65
|
+
response.statusText
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
return response.body;
|
|
69
|
+
}
|
|
70
|
+
static async update(params) {
|
|
71
|
+
const serviceContext = {
|
|
72
|
+
method: {
|
|
73
|
+
name: "SalesPlanService.update",
|
|
74
|
+
url: `api/salesplans/${encodeURIComponent(params.params.salesPlanUuid)}`,
|
|
75
|
+
normalizedUrl: "api/salesplans/:salesPlanUuid",
|
|
76
|
+
type: "put"
|
|
77
|
+
},
|
|
78
|
+
source: params.config.metrics?.source || "unset",
|
|
79
|
+
target: { name: "accounts", type: "internal" }
|
|
80
|
+
};
|
|
81
|
+
const response = await request({
|
|
82
|
+
config: params.config,
|
|
83
|
+
base: { id: "accounts" },
|
|
84
|
+
url: serviceContext.method.url,
|
|
85
|
+
method: serviceContext.method.type,
|
|
86
|
+
metricsDetails: serviceContext,
|
|
87
|
+
body: {
|
|
88
|
+
clusterPlanConfigurationMap: params.params.clusterPlanConfigurationMap,
|
|
89
|
+
force: params.params.force,
|
|
90
|
+
name: params.params.name,
|
|
91
|
+
version: params.params.version
|
|
92
|
+
},
|
|
93
|
+
responseType: "none"
|
|
94
|
+
});
|
|
95
|
+
if (!response.ok) {
|
|
96
|
+
throw new HttpError(
|
|
97
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
98
|
+
response.status,
|
|
99
|
+
response.statusText
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
static async updateMetadata(params) {
|
|
104
|
+
const serviceContext = {
|
|
105
|
+
method: {
|
|
106
|
+
name: "SalesPlanService.updateMetadata",
|
|
107
|
+
url: `api/salesplans/${encodeURIComponent(params.params.salesPlanUuid)}/metadata`,
|
|
108
|
+
normalizedUrl: "api/salesplans/:salesPlanUuid/metadata",
|
|
109
|
+
type: "patch"
|
|
110
|
+
},
|
|
111
|
+
source: params.config.metrics?.source || "unset",
|
|
112
|
+
target: { name: "accounts", type: "internal" }
|
|
113
|
+
};
|
|
114
|
+
const response = await request({
|
|
115
|
+
config: params.config,
|
|
116
|
+
base: { id: "accounts" },
|
|
117
|
+
url: serviceContext.method.url,
|
|
118
|
+
method: serviceContext.method.type,
|
|
119
|
+
metricsDetails: serviceContext,
|
|
120
|
+
body: params.params.name ? { metadata: params.params.metadata, name: params.params.name } : { metadata: params.params.metadata },
|
|
121
|
+
responseType: "none"
|
|
122
|
+
});
|
|
123
|
+
if (!response.ok) {
|
|
124
|
+
throw new HttpError(
|
|
125
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
126
|
+
response.status,
|
|
127
|
+
response.statusText
|
|
128
|
+
);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
static async updateReservations(params) {
|
|
132
|
+
const serviceContext = {
|
|
133
|
+
method: {
|
|
134
|
+
name: "SalesPlanService.updateReservations",
|
|
135
|
+
url: `api/salesplans/reserved?orgId=${encodeURIComponent(params.params.orgId)}`,
|
|
136
|
+
normalizedUrl: "api/salesplans/reserved",
|
|
137
|
+
type: "patch"
|
|
138
|
+
},
|
|
139
|
+
source: params.config.metrics?.source || "unset",
|
|
140
|
+
target: { name: "accounts", type: "internal" }
|
|
141
|
+
};
|
|
142
|
+
const response = await request({
|
|
143
|
+
config: params.config,
|
|
144
|
+
base: { id: "accounts" },
|
|
145
|
+
url: serviceContext.method.url,
|
|
146
|
+
method: serviceContext.method.type,
|
|
147
|
+
metricsDetails: serviceContext,
|
|
148
|
+
body: {
|
|
149
|
+
clusterPlanTypesToReserved: params.params.clusterPlanTypesToReserved,
|
|
150
|
+
changedBy: "admin"
|
|
151
|
+
},
|
|
152
|
+
responseType: "none"
|
|
153
|
+
});
|
|
154
|
+
if (!response.ok) {
|
|
155
|
+
throw new HttpError(
|
|
156
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
157
|
+
response.status,
|
|
158
|
+
response.statusText
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
static async delete(params) {
|
|
163
|
+
const serviceContext = {
|
|
164
|
+
method: {
|
|
165
|
+
name: "SalesPlanService.delete",
|
|
166
|
+
url: `api/salesplans/${encodeURIComponent(params.params.uuid)}`,
|
|
167
|
+
normalizedUrl: "api/salesplans/:uuid",
|
|
168
|
+
type: "delete"
|
|
169
|
+
},
|
|
170
|
+
source: params.config.metrics?.source || "unset",
|
|
171
|
+
target: { name: "accounts", type: "internal" }
|
|
172
|
+
};
|
|
173
|
+
const response = await request({
|
|
174
|
+
config: params.config,
|
|
175
|
+
base: { id: "accounts" },
|
|
176
|
+
url: serviceContext.method.url,
|
|
177
|
+
method: serviceContext.method.type,
|
|
178
|
+
metricsDetails: serviceContext,
|
|
179
|
+
responseType: "none"
|
|
180
|
+
});
|
|
181
|
+
if (!response.ok) {
|
|
182
|
+
throw new HttpError(
|
|
183
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
184
|
+
response.status,
|
|
185
|
+
response.statusText
|
|
186
|
+
);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
4
189
|
static async deleteClusterPlanType(params) {
|
|
5
190
|
const serviceContext = {
|
|
6
191
|
method: {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/services/accounts/salesplan.service.ts"],
|
|
4
|
-
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { HttpError } from '../../utils/errors.js'\n\nexport class SalesPlanService {\n public static async deleteClusterPlanType(\n params: { uuid: string; force?: boolean } & RequestBaseParams,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `SalesPlanService.deleteClusterPlanType`,\n url: `api/salesplans/clusterPlanType/${params.uuid}`,\n normalizedUrl: `api/salesplans/clusterPlanType/:uuid`,\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n body: params.force ? { force: params.force } : undefined,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.status === 204\n }\n}\n"],
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["/*\n * Copyright Camunda Services GmbH and/or licensed to Camunda Services GmbH\n * under one or more contributor license agreements. Licensed under a commercial license.\n * You may not use this file except in compliance with the commercial license.\n */\n\nimport {\n type Limits,\n type SalesPlanDto,\n SalesPlanType,\n} from '@camunda/ccma-shared-types'\nimport type {\n RequestBaseParams,\n RequestBaseServiceContext,\n} from '../../types/general.types.js'\nimport { request } from '../../utils/api.js'\nimport { HttpError } from '../../utils/errors.js'\n\nexport type GetSalesPlansRequest = RequestBaseParams\n\nexport interface CreateSalesPlanRequest extends RequestBaseParams {\n params: { name: string; type: SalesPlanType; version: number }\n}\n\nexport interface UpdateSalesPlanRequest extends RequestBaseParams {\n params: {\n salesPlanUuid: string\n name: string\n version: number\n force: boolean\n clusterPlanConfigurationMap: Record<string, unknown>\n }\n}\n\nexport interface UpdateSalesPlanMetadataRequest extends RequestBaseParams {\n params: {\n salesPlanUuid: string\n metadata: { limits?: Limits; description?: string }\n name?: string\n }\n}\n\nexport interface UpdateSalesPlanReservationsRequest extends RequestBaseParams {\n params: {\n orgId: string\n clusterPlanTypesToReserved: Record<string, number>\n }\n}\n\nexport interface DeleteSalesPlanRequest extends RequestBaseParams {\n params: { uuid: string }\n}\n\nexport class SalesPlanService {\n public static async getAll(\n params: GetSalesPlansRequest,\n ): Promise<SalesPlanDto[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'SalesPlanService.getAll',\n url: 'api/salesplans',\n normalizedUrl: 'api/salesplans',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request<SalesPlanDto[]>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'json',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body ?? []\n }\n\n public static async create(\n params: CreateSalesPlanRequest,\n ): Promise<SalesPlanDto> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'SalesPlanService.create',\n url: 'api/salesplans',\n normalizedUrl: 'api/salesplans',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request<SalesPlanDto>({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n name: params.params.name,\n type: params.params.type,\n version: params.params.version,\n internal: params.params.type === SalesPlanType.INTERNAL,\n clusterPlanConfigurationMap: {},\n },\n responseType: 'json',\n })\n if (!response.ok || !response.body) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.body\n }\n\n public static async update(params: UpdateSalesPlanRequest): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'SalesPlanService.update',\n url: `api/salesplans/${encodeURIComponent(params.params.salesPlanUuid)}`,\n normalizedUrl: 'api/salesplans/:salesPlanUuid',\n type: 'put',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n clusterPlanConfigurationMap: params.params.clusterPlanConfigurationMap,\n force: params.params.force,\n name: params.params.name,\n version: params.params.version,\n },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async updateMetadata(\n params: UpdateSalesPlanMetadataRequest,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'SalesPlanService.updateMetadata',\n url: `api/salesplans/${encodeURIComponent(params.params.salesPlanUuid)}/metadata`,\n normalizedUrl: 'api/salesplans/:salesPlanUuid/metadata',\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.params.name\n ? { metadata: params.params.metadata, name: params.params.name }\n : { metadata: params.params.metadata },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async updateReservations(\n params: UpdateSalesPlanReservationsRequest,\n ): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'SalesPlanService.updateReservations',\n url: `api/salesplans/reserved?orgId=${encodeURIComponent(params.params.orgId)}`,\n normalizedUrl: 'api/salesplans/reserved',\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n clusterPlanTypesToReserved: params.params.clusterPlanTypesToReserved,\n changedBy: 'admin',\n },\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async delete(params: DeleteSalesPlanRequest): Promise<void> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'SalesPlanService.delete',\n url: `api/salesplans/${encodeURIComponent(params.params.uuid)}`,\n normalizedUrl: 'api/salesplans/:uuid',\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: { name: 'accounts', type: 'internal' },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n }\n\n public static async deleteClusterPlanType(\n params: { uuid: string; force?: boolean } & RequestBaseParams,\n ) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `SalesPlanService.deleteClusterPlanType`,\n url: `api/salesplans/clusterPlanType/${params.uuid}`,\n normalizedUrl: `api/salesplans/clusterPlanType/:uuid`,\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request({\n config: params.config,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n responseType: 'none',\n body: params.force ? { force: params.force } : undefined,\n })\n if (!response.ok) {\n throw new HttpError(\n `${serviceContext.method.name}: ${response.status} ${response.statusText}`,\n response.status,\n response.statusText,\n )\n }\n return response.status === 204\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|