@camunda/ccma-api 0.0.1 → 0.0.2
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/package.json +10 -10
- package/dist/index.d.ts +0 -97
- package/dist/index.js +0 -153
- package/dist/index.js.map +0 -7
- package/dist/services/accounts/accounts.data-export.service.d.ts +0 -13
- package/dist/services/accounts/accounts.data-export.service.js +0 -41
- package/dist/services/accounts/accounts.data-export.service.js.map +0 -7
- package/dist/services/accounts/accounts.valuemetrics.service.d.ts +0 -8
- package/dist/services/accounts/accounts.valuemetrics.service.js +0 -1
- package/dist/services/accounts/accounts.valuemetrics.service.js.map +0 -7
- package/dist/services/accounts/bot.service.d.ts +0 -21
- package/dist/services/accounts/bot.service.js +0 -74
- package/dist/services/accounts/bot.service.js.map +0 -7
- package/dist/services/accounts/challenge.service.d.ts +0 -296
- package/dist/services/accounts/challenge.service.js +0 -475
- package/dist/services/accounts/challenge.service.js.map +0 -7
- package/dist/services/accounts/connections.service.d.ts +0 -27
- package/dist/services/accounts/connections.service.js +0 -41
- package/dist/services/accounts/connections.service.js.map +0 -7
- package/dist/services/accounts/dashboards.service.d.ts +0 -8
- package/dist/services/accounts/dashboards.service.js +0 -42
- package/dist/services/accounts/dashboards.service.js.map +0 -7
- package/dist/services/accounts/early-access-features.service.d.ts +0 -34
- package/dist/services/accounts/early-access-features.service.js +0 -67
- package/dist/services/accounts/early-access-features.service.js.map +0 -7
- package/dist/services/accounts/genericCache.service.d.ts +0 -13
- package/dist/services/accounts/genericCache.service.js +0 -80
- package/dist/services/accounts/genericCache.service.js.map +0 -7
- package/dist/services/accounts/hdp.service.d.ts +0 -52
- package/dist/services/accounts/hdp.service.js +0 -180
- package/dist/services/accounts/hdp.service.js.map +0 -7
- package/dist/services/accounts/offboarding.service.d.ts +0 -18
- package/dist/services/accounts/offboarding.service.js +0 -48
- package/dist/services/accounts/offboarding.service.js.map +0 -7
- package/dist/services/accounts/organization-members.service.d.ts +0 -68
- package/dist/services/accounts/organization-members.service.js +0 -216
- package/dist/services/accounts/organization-members.service.js.map +0 -7
- package/dist/services/accounts/orgs.service.d.ts +0 -273
- package/dist/services/accounts/orgs.service.js +0 -978
- package/dist/services/accounts/orgs.service.js.map +0 -7
- package/dist/services/accounts/salesplan.service.d.ts +0 -7
- package/dist/services/accounts/salesplan.service.js +0 -40
- package/dist/services/accounts/salesplan.service.js.map +0 -7
- package/dist/services/accounts/spam-detection.service.d.ts +0 -8
- package/dist/services/accounts/spam-detection.service.js +0 -72
- package/dist/services/accounts/spam-detection.service.js.map +0 -7
- package/dist/services/accounts/stats.service.d.ts +0 -7
- package/dist/services/accounts/stats.service.js +0 -40
- package/dist/services/accounts/stats.service.js.map +0 -7
- package/dist/services/accounts/teams.service.d.ts +0 -85
- package/dist/services/accounts/teams.service.js +0 -516
- package/dist/services/accounts/teams.service.js.map +0 -7
- package/dist/services/accounts/usage-alerts.service.d.ts +0 -34
- package/dist/services/accounts/usage-alerts.service.js +0 -112
- package/dist/services/accounts/usage-alerts.service.js.map +0 -7
- package/dist/services/accounts/users.service.d.ts +0 -101
- package/dist/services/accounts/users.service.js +0 -444
- package/dist/services/accounts/users.service.js.map +0 -7
- package/dist/services/alerts/alerts.service.d.ts +0 -59
- package/dist/services/alerts/alerts.service.js +0 -234
- package/dist/services/alerts/alerts.service.js.map +0 -7
- package/dist/services/analytic-bridge/analytic-bridge.service.d.ts +0 -23
- package/dist/services/analytic-bridge/analytic-bridge.service.js +0 -86
- package/dist/services/analytic-bridge/analytic-bridge.service.js.map +0 -7
- package/dist/services/audit-logger/audit-logger.service.d.ts +0 -27
- package/dist/services/audit-logger/audit-logger.service.js +0 -108
- package/dist/services/audit-logger/audit-logger.service.js.map +0 -7
- package/dist/services/auth0/auth0.service.d.ts +0 -15
- package/dist/services/auth0/auth0.service.js +0 -40
- package/dist/services/auth0/auth0.service.js.map +0 -7
- package/dist/services/comm-bridge/comm-bridge.service.d.ts +0 -33
- package/dist/services/comm-bridge/comm-bridge.service.js +0 -40
- package/dist/services/comm-bridge/comm-bridge.service.js.map +0 -7
- package/dist/services/console/console.admin.service.d.ts +0 -328
- package/dist/services/console/console.admin.service.js +0 -1526
- package/dist/services/console/console.admin.service.js.map +0 -7
- package/dist/services/console/console.alerts.service.d.ts +0 -69
- package/dist/services/console/console.alerts.service.js +0 -160
- package/dist/services/console/console.alerts.service.js.map +0 -7
- package/dist/services/console/console.api-clients.service.d.ts +0 -48
- package/dist/services/console/console.api-clients.service.js +0 -123
- package/dist/services/console/console.api-clients.service.js.map +0 -7
- package/dist/services/console/console.backup-schedule.service.d.ts +0 -21
- package/dist/services/console/console.backup-schedule.service.js +0 -67
- package/dist/services/console/console.backup-schedule.service.js.map +0 -7
- package/dist/services/console/console.byok-scripts.service.d.ts +0 -12
- package/dist/services/console/console.byok-scripts.service.js +0 -92
- package/dist/services/console/console.byok-scripts.service.js.map +0 -7
- package/dist/services/console/console.byom-monitoring.service.d.ts +0 -58
- package/dist/services/console/console.byom-monitoring.service.js +0 -177
- package/dist/services/console/console.byom-monitoring.service.js.map +0 -7
- package/dist/services/console/console.cluster-clients.service.d.ts +0 -55
- package/dist/services/console/console.cluster-clients.service.js +0 -123
- package/dist/services/console/console.cluster-clients.service.js.map +0 -7
- package/dist/services/console/console.cluster-parameters.service.d.ts +0 -64
- package/dist/services/console/console.cluster-parameters.service.js +0 -39
- package/dist/services/console/console.cluster-parameters.service.js.map +0 -7
- package/dist/services/console/console.cluster.service.d.ts +0 -114
- package/dist/services/console/console.cluster.service.js +0 -271
- package/dist/services/console/console.cluster.service.js.map +0 -7
- package/dist/services/console/console.clusterBulkOperation.service.d.ts +0 -20
- package/dist/services/console/console.clusterBulkOperation.service.js +0 -199
- package/dist/services/console/console.clusterBulkOperation.service.js.map +0 -7
- package/dist/services/console/console.clusterplan.modification.service.d.ts +0 -33
- package/dist/services/console/console.clusterplan.modification.service.js +0 -231
- package/dist/services/console/console.clusterplan.modification.service.js.map +0 -7
- package/dist/services/console/console.clusterplan.service.d.ts +0 -21
- package/dist/services/console/console.clusterplan.service.js +0 -64
- package/dist/services/console/console.clusterplan.service.js.map +0 -7
- package/dist/services/console/console.connector-secrets.service.d.ts +0 -30
- package/dist/services/console/console.connector-secrets.service.js +0 -125
- package/dist/services/console/console.connector-secrets.service.js.map +0 -7
- package/dist/services/console/console.custommetrics.service.d.ts +0 -10
- package/dist/services/console/console.custommetrics.service.js +0 -43
- package/dist/services/console/console.custommetrics.service.js.map +0 -7
- package/dist/services/console/console.hotbackups.service.d.ts +0 -34
- package/dist/services/console/console.hotbackups.service.js +0 -120
- package/dist/services/console/console.hotbackups.service.js.map +0 -7
- package/dist/services/console/console.ip-whitelist.service.d.ts +0 -15
- package/dist/services/console/console.ip-whitelist.service.js +0 -36
- package/dist/services/console/console.ip-whitelist.service.js.map +0 -7
- package/dist/services/console/console.jobs.saas.service.d.ts +0 -70
- package/dist/services/console/console.jobs.saas.service.js +0 -139
- package/dist/services/console/console.jobs.saas.service.js.map +0 -7
- package/dist/services/console/console.jobs.sm.service.d.ts +0 -57
- package/dist/services/console/console.jobs.sm.service.js +0 -208
- package/dist/services/console/console.jobs.sm.service.js.map +0 -7
- package/dist/services/console/console.m2m.service.d.ts +0 -23
- package/dist/services/console/console.m2m.service.js +0 -94
- package/dist/services/console/console.m2m.service.js.map +0 -7
- package/dist/services/console/console.secure-connectivity.service.d.ts +0 -41
- package/dist/services/console/console.secure-connectivity.service.js +0 -129
- package/dist/services/console/console.secure-connectivity.service.js.map +0 -7
- package/dist/services/console/console.valuemetrics.service.d.ts +0 -17
- package/dist/services/console/console.valuemetrics.service.js +0 -110
- package/dist/services/console/console.valuemetrics.service.js.map +0 -7
- package/dist/services/console/generation.service.d.ts +0 -21
- package/dist/services/console/generation.service.js +0 -106
- package/dist/services/console/generation.service.js.map +0 -7
- package/dist/services/github/github.service.d.ts +0 -73
- package/dist/services/github/github.service.js +0 -272
- package/dist/services/github/github.service.js.map +0 -7
- package/dist/services/hibob/hibob.service.d.ts +0 -74
- package/dist/services/hibob/hibob.service.js +0 -125
- package/dist/services/hibob/hibob.service.js.map +0 -7
- package/dist/services/hubspot/hubspot.service.d.ts +0 -50
- package/dist/services/hubspot/hubspot.service.js +0 -119
- package/dist/services/hubspot/hubspot.service.js.map +0 -7
- package/dist/services/litellm/litellm.service.d.ts +0 -290
- package/dist/services/litellm/litellm.service.js +0 -392
- package/dist/services/litellm/litellm.service.js.map +0 -7
- package/dist/services/login/login.service.d.ts +0 -15
- package/dist/services/login/login.service.js +0 -66
- package/dist/services/login/login.service.js.map +0 -7
- package/dist/services/mixpanel/mixpanel.service.d.ts +0 -16
- package/dist/services/mixpanel/mixpanel.service.js +0 -86
- package/dist/services/mixpanel/mixpanel.service.js.map +0 -7
- package/dist/services/notifications/notifications.service.d.ts +0 -7
- package/dist/services/notifications/notifications.service.js +0 -38
- package/dist/services/notifications/notifications.service.js.map +0 -7
- package/dist/services/slack/slack-blockkit.service.d.ts +0 -28
- package/dist/services/slack/slack-blockkit.service.js +0 -45
- package/dist/services/slack/slack-blockkit.service.js.map +0 -7
- package/dist/services/slack/slack.service.d.ts +0 -31
- package/dist/services/slack/slack.service.js +0 -118
- package/dist/services/slack/slack.service.js.map +0 -7
- package/dist/services/telemetry/telemetry.service.d.ts +0 -16
- package/dist/services/telemetry/telemetry.service.js +0 -85
- package/dist/services/telemetry/telemetry.service.js.map +0 -7
- package/dist/services/token-issuer/token-issuer.jwks.service.d.ts +0 -13
- package/dist/services/token-issuer/token-issuer.jwks.service.js +0 -76
- package/dist/services/token-issuer/token-issuer.jwks.service.js.map +0 -7
- package/dist/services/wordpress/wordpress.service.d.ts +0 -15
- package/dist/services/wordpress/wordpress.service.js +0 -111
- package/dist/services/wordpress/wordpress.service.js.map +0 -7
- package/dist/types/general.types.d.ts +0 -61
- package/dist/types/general.types.js +0 -1
- package/dist/types/general.types.js.map +0 -7
- package/dist/utils/api.d.ts +0 -31
- package/dist/utils/api.js +0 -400
- package/dist/utils/api.js.map +0 -7
- package/dist/utils/cache.d.ts +0 -7
- package/dist/utils/cache.js +0 -25
- package/dist/utils/cache.js.map +0 -7
- package/dist/utils/ccma-metrics.d.ts +0 -18
- package/dist/utils/ccma-metrics.js +0 -37
- package/dist/utils/ccma-metrics.js.map +0 -7
- package/dist/utils/environments.d.ts +0 -11
- package/dist/utils/environments.js +0 -148
- package/dist/utils/environments.js.map +0 -7
- package/dist/utils/errors.d.ts +0 -5
- package/dist/utils/errors.js +0 -11
- package/dist/utils/errors.js.map +0 -7
- package/dist/utils/frontendCache.d.ts +0 -26
- package/dist/utils/frontendCache.js +0 -121
- package/dist/utils/frontendCache.js.map +0 -7
- package/dist/utils/token-issuer.utils.d.ts +0 -8
- package/dist/utils/token-issuer.utils.js +0 -19
- package/dist/utils/token-issuer.utils.js.map +0 -7
|
@@ -1,112 +0,0 @@
|
|
|
1
|
-
import { request } from "../../utils/api.js";
|
|
2
|
-
import { HttpError } from "../../utils/errors.js";
|
|
3
|
-
class UsageAlertsService {
|
|
4
|
-
static async get(params) {
|
|
5
|
-
const serviceContext = {
|
|
6
|
-
method: {
|
|
7
|
-
name: `UsageAlertsService.get`,
|
|
8
|
-
url: `api/usage-alerts/${params.params.orgId}`,
|
|
9
|
-
normalizedUrl: `api/usage-alerts/:orgId`,
|
|
10
|
-
type: "get"
|
|
11
|
-
},
|
|
12
|
-
source: params.config.metrics?.source || "unset",
|
|
13
|
-
target: {
|
|
14
|
-
name: "accounts",
|
|
15
|
-
type: "internal"
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
const response = await request({
|
|
19
|
-
...params,
|
|
20
|
-
base: {
|
|
21
|
-
id: "accounts"
|
|
22
|
-
},
|
|
23
|
-
url: serviceContext.method.url,
|
|
24
|
-
method: serviceContext.method.type,
|
|
25
|
-
metricsDetails: serviceContext
|
|
26
|
-
});
|
|
27
|
-
if (!response.ok) {
|
|
28
|
-
throw new HttpError(
|
|
29
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
30
|
-
response.status,
|
|
31
|
-
response.statusText
|
|
32
|
-
);
|
|
33
|
-
}
|
|
34
|
-
return response.body;
|
|
35
|
-
}
|
|
36
|
-
static async create(params) {
|
|
37
|
-
const serviceContext = {
|
|
38
|
-
method: {
|
|
39
|
-
name: `UsageAlertsService.create`,
|
|
40
|
-
url: `api/usage-alerts/${params.params.orgId}/${params.params.metric}`,
|
|
41
|
-
normalizedUrl: `api/usage-alerts/:orgId/:metric`,
|
|
42
|
-
type: "post"
|
|
43
|
-
},
|
|
44
|
-
source: params.config.metrics?.source || "unset",
|
|
45
|
-
target: {
|
|
46
|
-
name: "accounts",
|
|
47
|
-
type: "internal"
|
|
48
|
-
}
|
|
49
|
-
};
|
|
50
|
-
const response = await request({
|
|
51
|
-
config: params.config,
|
|
52
|
-
base: {
|
|
53
|
-
id: "accounts"
|
|
54
|
-
},
|
|
55
|
-
url: serviceContext.method.url,
|
|
56
|
-
method: serviceContext.method.type,
|
|
57
|
-
metricsDetails: serviceContext,
|
|
58
|
-
body: {
|
|
59
|
-
threshold: params.params.threshold,
|
|
60
|
-
enabled: params.params.enabled
|
|
61
|
-
}
|
|
62
|
-
});
|
|
63
|
-
if (!response.ok) {
|
|
64
|
-
throw new HttpError(
|
|
65
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
66
|
-
response.status,
|
|
67
|
-
response.statusText
|
|
68
|
-
);
|
|
69
|
-
}
|
|
70
|
-
return response.body;
|
|
71
|
-
}
|
|
72
|
-
static async patch(params) {
|
|
73
|
-
const serviceContext = {
|
|
74
|
-
method: {
|
|
75
|
-
name: `UsageAlertsService.patch`,
|
|
76
|
-
url: `api/usage-alerts/${params.params.orgId}/${params.params.usageAlertId}`,
|
|
77
|
-
normalizedUrl: `api/usage-alerts/:orgId/:usageAlertId`,
|
|
78
|
-
type: "patch"
|
|
79
|
-
},
|
|
80
|
-
source: params.config.metrics?.source || "unset",
|
|
81
|
-
target: {
|
|
82
|
-
name: "accounts",
|
|
83
|
-
type: "internal"
|
|
84
|
-
}
|
|
85
|
-
};
|
|
86
|
-
const response = await request({
|
|
87
|
-
config: params.config,
|
|
88
|
-
base: {
|
|
89
|
-
id: "accounts"
|
|
90
|
-
},
|
|
91
|
-
url: serviceContext.method.url,
|
|
92
|
-
method: serviceContext.method.type,
|
|
93
|
-
metricsDetails: serviceContext,
|
|
94
|
-
body: {
|
|
95
|
-
threshold: params.params.threshold,
|
|
96
|
-
enabled: params.params.enabled
|
|
97
|
-
}
|
|
98
|
-
});
|
|
99
|
-
if (!response.ok) {
|
|
100
|
-
throw new HttpError(
|
|
101
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
102
|
-
response.status,
|
|
103
|
-
response.statusText
|
|
104
|
-
);
|
|
105
|
-
}
|
|
106
|
-
return response.body;
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
export {
|
|
110
|
-
UsageAlertsService
|
|
111
|
-
};
|
|
112
|
-
//# sourceMappingURL=usage-alerts.service.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/services/accounts/usage-alerts.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 UsageAlertDto,\n UsageAlertMetric,\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 interface GetUsageAlertsParams extends RequestBaseParams {\n params: {\n orgId: string\n }\n}\n\nexport interface CreateUsageAlertParams extends RequestBaseParams {\n params: {\n orgId: string\n metric: UsageAlertMetric\n threshold: number\n enabled: boolean\n }\n}\n\nexport interface PatchUsageAlertParams extends RequestBaseParams {\n params: {\n usageAlertId: string\n orgId: string\n threshold: number\n enabled: boolean\n }\n}\n\nexport class UsageAlertsService {\n public static async get(\n params: GetUsageAlertsParams,\n ): Promise<{ usageAlerts: UsageAlertDto[] }> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `UsageAlertsService.get`,\n url: `api/usage-alerts/${params.params.orgId}`,\n normalizedUrl: `api/usage-alerts/:orgId`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<{ usageAlerts: UsageAlertDto[] }>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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(params: CreateUsageAlertParams) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `UsageAlertsService.create`,\n url: `api/usage-alerts/${params.params.orgId}/${params.params.metric}`,\n normalizedUrl: `api/usage-alerts/:orgId/:metric`,\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<{ usageAlert: UsageAlertDto }>({\n config: params.config,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n threshold: params.params.threshold,\n enabled: params.params.enabled,\n },\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 patch(params: PatchUsageAlertParams) {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `UsageAlertsService.patch`,\n url: `api/usage-alerts/${params.params.orgId}/${params.params.usageAlertId}`,\n normalizedUrl: `api/usage-alerts/:orgId/:usageAlertId`,\n type: 'patch',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n const response = await request<{ usageAlert: UsageAlertDto }>({\n config: params.config,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: {\n threshold: params.params.threshold,\n enabled: params.params.enabled,\n },\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": "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",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { type OrganizationRole, type User } from '@camunda/ccma-shared-types';
|
|
2
|
-
import type { RequestBaseParams } from '../../types/general.types.js';
|
|
3
|
-
import type { HibobSearchResponse } from '../hibob/hibob.service.js';
|
|
4
|
-
export interface SearchParams extends RequestBaseParams {
|
|
5
|
-
params: {
|
|
6
|
-
q: {
|
|
7
|
-
organization?: {
|
|
8
|
-
uuid: string;
|
|
9
|
-
member: boolean;
|
|
10
|
-
};
|
|
11
|
-
name?: string;
|
|
12
|
-
userId?: string;
|
|
13
|
-
roleId?: string;
|
|
14
|
-
email?: string;
|
|
15
|
-
signUpStatus?: {
|
|
16
|
-
verified: boolean;
|
|
17
|
-
tokenExpired?: boolean;
|
|
18
|
-
};
|
|
19
|
-
created?: {
|
|
20
|
-
after?: Date;
|
|
21
|
-
before?: Date;
|
|
22
|
-
};
|
|
23
|
-
};
|
|
24
|
-
onBehalfOf?: string;
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
export interface SimpleSearchParams extends RequestBaseParams {
|
|
28
|
-
params: {
|
|
29
|
-
query: string;
|
|
30
|
-
type: 'by-email' | 'by-id' | 'fuzzy' | 'lucene';
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
export interface AddUserToOrganizationRequest extends RequestBaseParams {
|
|
34
|
-
params: {
|
|
35
|
-
userId: string;
|
|
36
|
-
orgId: string;
|
|
37
|
-
orgRoles: OrganizationRole[];
|
|
38
|
-
byEmail?: boolean;
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
export interface RemoveUserFromOrganizationRequest extends RequestBaseParams {
|
|
42
|
-
params: {
|
|
43
|
-
userId: string;
|
|
44
|
-
orgId: string;
|
|
45
|
-
byEmail?: boolean;
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
export interface UpdateUserRoleRequest extends RequestBaseParams {
|
|
49
|
-
params: {
|
|
50
|
-
userId: string;
|
|
51
|
-
roleToAdd?: string;
|
|
52
|
-
roleToRemove?: string;
|
|
53
|
-
};
|
|
54
|
-
headers?: {
|
|
55
|
-
'x-camunda-email'?: string;
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
export declare class UsersService {
|
|
59
|
-
static search(params: SearchParams): Promise<User[]>;
|
|
60
|
-
static simpleSearch(params: SimpleSearchParams): Promise<{
|
|
61
|
-
users: User[];
|
|
62
|
-
}>;
|
|
63
|
-
static getUserInfo(params: {
|
|
64
|
-
userId: string;
|
|
65
|
-
basic?: boolean;
|
|
66
|
-
} & RequestBaseParams): Promise<User | undefined>;
|
|
67
|
-
static addUserToOrganization(params: AddUserToOrganizationRequest): Promise<void>;
|
|
68
|
-
static removeUserFromOrganization(params: RemoveUserFromOrganizationRequest): Promise<void>;
|
|
69
|
-
/**
|
|
70
|
-
* Update a user's role by adding or removing a single role.
|
|
71
|
-
* This uses the PATCH /api/users/:userId/roles endpoint.
|
|
72
|
-
* Supports email-based auth middleware via the x-camunda-email header.
|
|
73
|
-
*/
|
|
74
|
-
static updateUserRole(params: UpdateUserRoleRequest): Promise<void>;
|
|
75
|
-
/**
|
|
76
|
-
* Get all Hibob users (for bulk ghost account checks).
|
|
77
|
-
* This fetches all active Hibob employees in a single request.
|
|
78
|
-
*/
|
|
79
|
-
static getAllHibobUsers(params: RequestBaseParams): Promise<HibobSearchResponse>;
|
|
80
|
-
/**
|
|
81
|
-
* Get Hibob details for a specific user by their Auth0 user ID.
|
|
82
|
-
*/
|
|
83
|
-
static getUserHibobDetails(params: {
|
|
84
|
-
userId: string;
|
|
85
|
-
} & RequestBaseParams): Promise<HibobSearchResponse>;
|
|
86
|
-
private static validateUserId;
|
|
87
|
-
private static validateEmail;
|
|
88
|
-
/**
|
|
89
|
-
* Validates a Lucene query string for Auth0 user search.
|
|
90
|
-
* Auth0 supports Lucene query syntax including:
|
|
91
|
-
* - Field queries: field:value (e.g., email:john@example.com)
|
|
92
|
-
* - Wildcards: field:*value*, field:value*
|
|
93
|
-
* - Boolean operators: AND, OR, NOT
|
|
94
|
-
* - Grouping: (field:value OR field:value)
|
|
95
|
-
* - Range queries: field:[min TO max]
|
|
96
|
-
* - Exact phrase: field:"exact phrase"
|
|
97
|
-
*
|
|
98
|
-
* @see https://auth0.com/docs/manage-users/user-search/user-search-query-syntax
|
|
99
|
-
*/
|
|
100
|
-
private static validateLuceneQuery;
|
|
101
|
-
}
|
|
@@ -1,444 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
MINUTE
|
|
3
|
-
} from "@camunda/ccma-shared-types";
|
|
4
|
-
import { request } from "../../utils/api.js";
|
|
5
|
-
import { Cache } from "../../utils/cache.js";
|
|
6
|
-
import { HttpError } from "../../utils/errors.js";
|
|
7
|
-
const userCache = new Cache(5 * MINUTE);
|
|
8
|
-
const REGEX_EMAIL = (
|
|
9
|
-
// eslint-disable-next-line prefer-named-capture-group, no-useless-escape
|
|
10
|
-
/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/u
|
|
11
|
-
);
|
|
12
|
-
class UsersService {
|
|
13
|
-
static async search(params) {
|
|
14
|
-
const queryParams = new URLSearchParams();
|
|
15
|
-
const urlParts = [];
|
|
16
|
-
if (params.params.q.roleId) {
|
|
17
|
-
const q = {
|
|
18
|
-
roleId: params.params.q.roleId,
|
|
19
|
-
name: params.params.q.name || "",
|
|
20
|
-
email: params.params.q.email || ""
|
|
21
|
-
};
|
|
22
|
-
queryParams.append("q", JSON.stringify(q));
|
|
23
|
-
urlParts.push(...["api", "users", `?${queryParams.toString()}`]);
|
|
24
|
-
} else {
|
|
25
|
-
if (params.params.onBehalfOf) {
|
|
26
|
-
queryParams.append(
|
|
27
|
-
"onBehalfOf",
|
|
28
|
-
encodeURI(JSON.stringify(params.params.onBehalfOf))
|
|
29
|
-
);
|
|
30
|
-
}
|
|
31
|
-
queryParams.append("q", encodeURI(JSON.stringify(params.params.q)));
|
|
32
|
-
urlParts.push(...["api", "users", "search", `?${queryParams.toString()}`]);
|
|
33
|
-
}
|
|
34
|
-
const serviceContext = {
|
|
35
|
-
method: {
|
|
36
|
-
name: `UsersService.search`,
|
|
37
|
-
url: urlParts.join(`/`),
|
|
38
|
-
normalizedUrl: `api/users/search`,
|
|
39
|
-
type: "get"
|
|
40
|
-
},
|
|
41
|
-
source: params.config.metrics?.source || "unset",
|
|
42
|
-
target: {
|
|
43
|
-
name: "accounts",
|
|
44
|
-
type: "internal"
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
if (params.params.q.userId) {
|
|
48
|
-
UsersService.validateUserId(serviceContext, params.params.q.userId);
|
|
49
|
-
}
|
|
50
|
-
const response = await request({
|
|
51
|
-
config: params.config,
|
|
52
|
-
base: {
|
|
53
|
-
id: "accounts"
|
|
54
|
-
},
|
|
55
|
-
url: serviceContext.method.url,
|
|
56
|
-
method: serviceContext.method.type,
|
|
57
|
-
metricsDetails: serviceContext
|
|
58
|
-
});
|
|
59
|
-
if (!response.ok) {
|
|
60
|
-
throw new HttpError(
|
|
61
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
62
|
-
response.status,
|
|
63
|
-
response.statusText
|
|
64
|
-
);
|
|
65
|
-
}
|
|
66
|
-
return response.body;
|
|
67
|
-
}
|
|
68
|
-
static async simpleSearch(params) {
|
|
69
|
-
const serviceContext = {
|
|
70
|
-
method: {
|
|
71
|
-
name: `UsersService.simpleSearch`,
|
|
72
|
-
url: `api/users/search`,
|
|
73
|
-
normalizedUrl: `api/users/search`,
|
|
74
|
-
type: "post"
|
|
75
|
-
},
|
|
76
|
-
source: params.config.metrics?.source || "unset",
|
|
77
|
-
target: {
|
|
78
|
-
name: "accounts",
|
|
79
|
-
type: "internal"
|
|
80
|
-
}
|
|
81
|
-
};
|
|
82
|
-
switch (params.params.type) {
|
|
83
|
-
case "by-email":
|
|
84
|
-
UsersService.validateEmail(serviceContext, params.params.query);
|
|
85
|
-
break;
|
|
86
|
-
case "by-id":
|
|
87
|
-
UsersService.validateUserId(serviceContext, params.params.query);
|
|
88
|
-
break;
|
|
89
|
-
case "lucene":
|
|
90
|
-
UsersService.validateLuceneQuery(serviceContext, params.params.query);
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
const response = await request({
|
|
94
|
-
config: params.config,
|
|
95
|
-
base: {
|
|
96
|
-
id: "accounts"
|
|
97
|
-
},
|
|
98
|
-
url: serviceContext.method.url,
|
|
99
|
-
method: serviceContext.method.type,
|
|
100
|
-
body: {
|
|
101
|
-
query: params.params.query,
|
|
102
|
-
type: params.params.type
|
|
103
|
-
},
|
|
104
|
-
metricsDetails: serviceContext
|
|
105
|
-
});
|
|
106
|
-
if (!response.ok) {
|
|
107
|
-
throw new HttpError(
|
|
108
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
109
|
-
response.status,
|
|
110
|
-
response.statusText
|
|
111
|
-
);
|
|
112
|
-
}
|
|
113
|
-
return response.body;
|
|
114
|
-
}
|
|
115
|
-
static async getUserInfo(params) {
|
|
116
|
-
const cacheKey = params.basic === true ? `basic-${params.userId}` : params.userId;
|
|
117
|
-
if (!params.cacheControl?.ignoreCache) {
|
|
118
|
-
const inCache = userCache.get(cacheKey);
|
|
119
|
-
if (inCache) {
|
|
120
|
-
return inCache;
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
let queryParams = "";
|
|
124
|
-
if (params.basic === true) {
|
|
125
|
-
const searchParams = new URLSearchParams();
|
|
126
|
-
searchParams.append("basic", "true");
|
|
127
|
-
queryParams = `?${searchParams.toString()}`;
|
|
128
|
-
}
|
|
129
|
-
const serviceContext = {
|
|
130
|
-
method: {
|
|
131
|
-
name: `UsersService.getUserInfo`,
|
|
132
|
-
url: `api/users/${params.userId}${queryParams}`,
|
|
133
|
-
normalizedUrl: `api/users/:userId`,
|
|
134
|
-
type: "get"
|
|
135
|
-
},
|
|
136
|
-
source: params.config.metrics?.source || "unset",
|
|
137
|
-
target: {
|
|
138
|
-
name: "accounts",
|
|
139
|
-
type: "internal"
|
|
140
|
-
}
|
|
141
|
-
};
|
|
142
|
-
UsersService.validateUserId(serviceContext, params.userId);
|
|
143
|
-
const response = await request({
|
|
144
|
-
...params,
|
|
145
|
-
base: { id: "accounts" },
|
|
146
|
-
url: serviceContext.method.url,
|
|
147
|
-
method: serviceContext.method.type,
|
|
148
|
-
metricsDetails: serviceContext
|
|
149
|
-
});
|
|
150
|
-
if (!response.ok) {
|
|
151
|
-
throw new HttpError(
|
|
152
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
153
|
-
response.status,
|
|
154
|
-
response.statusText
|
|
155
|
-
);
|
|
156
|
-
}
|
|
157
|
-
userCache.set(cacheKey, response.body);
|
|
158
|
-
return response.body;
|
|
159
|
-
}
|
|
160
|
-
static async addUserToOrganization(params) {
|
|
161
|
-
const serviceContext = {
|
|
162
|
-
method: {
|
|
163
|
-
name: `UsersService.addUserToOrganization`,
|
|
164
|
-
url: `api/users/${params.params.userId}/organization/${params.params.orgId}`,
|
|
165
|
-
normalizedUrl: `api/users/:userId/organization/:orgId`,
|
|
166
|
-
type: "put"
|
|
167
|
-
},
|
|
168
|
-
source: params.config.metrics?.source || "unset",
|
|
169
|
-
target: {
|
|
170
|
-
name: "accounts",
|
|
171
|
-
type: "internal"
|
|
172
|
-
}
|
|
173
|
-
};
|
|
174
|
-
const response = await request({
|
|
175
|
-
config: params.config,
|
|
176
|
-
base: { id: "accounts" },
|
|
177
|
-
url: serviceContext.method.url,
|
|
178
|
-
method: serviceContext.method.type,
|
|
179
|
-
metricsDetails: serviceContext,
|
|
180
|
-
body: {
|
|
181
|
-
orgRoles: params.params.orgRoles,
|
|
182
|
-
byEmail: params.params.byEmail
|
|
183
|
-
},
|
|
184
|
-
responseType: "none"
|
|
185
|
-
});
|
|
186
|
-
if (!response.ok) {
|
|
187
|
-
throw new HttpError(
|
|
188
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
189
|
-
response.status,
|
|
190
|
-
response.statusText
|
|
191
|
-
);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
static async removeUserFromOrganization(params) {
|
|
195
|
-
const serviceContext = {
|
|
196
|
-
method: {
|
|
197
|
-
name: `UsersService.removeUserFromOrganization`,
|
|
198
|
-
url: `api/users/${params.params.userId}/organization/${params.params.orgId}`,
|
|
199
|
-
normalizedUrl: `api/users/:userId/organization/:orgId`,
|
|
200
|
-
type: "delete"
|
|
201
|
-
},
|
|
202
|
-
source: params.config.metrics?.source || "unset",
|
|
203
|
-
target: {
|
|
204
|
-
name: "accounts",
|
|
205
|
-
type: "internal"
|
|
206
|
-
}
|
|
207
|
-
};
|
|
208
|
-
const response = await request({
|
|
209
|
-
config: params.config,
|
|
210
|
-
base: { id: "accounts" },
|
|
211
|
-
url: serviceContext.method.url,
|
|
212
|
-
method: serviceContext.method.type,
|
|
213
|
-
metricsDetails: serviceContext,
|
|
214
|
-
body: {
|
|
215
|
-
byEmail: params.params.byEmail
|
|
216
|
-
},
|
|
217
|
-
responseType: "none"
|
|
218
|
-
});
|
|
219
|
-
if (!response.ok) {
|
|
220
|
-
throw new HttpError(
|
|
221
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
222
|
-
response.status,
|
|
223
|
-
response.statusText
|
|
224
|
-
);
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
/**
|
|
228
|
-
* Update a user's role by adding or removing a single role.
|
|
229
|
-
* This uses the PATCH /api/users/:userId/roles endpoint.
|
|
230
|
-
* Supports email-based auth middleware via the x-camunda-email header.
|
|
231
|
-
*/
|
|
232
|
-
static async updateUserRole(params) {
|
|
233
|
-
const serviceContext = {
|
|
234
|
-
method: {
|
|
235
|
-
name: `UsersService.updateUserRole`,
|
|
236
|
-
url: `api/users/${encodeURIComponent(params.params.userId)}/roles`,
|
|
237
|
-
normalizedUrl: `api/users/:userId/roles`,
|
|
238
|
-
type: "patch"
|
|
239
|
-
},
|
|
240
|
-
source: params.config.metrics?.source || "unset",
|
|
241
|
-
target: {
|
|
242
|
-
name: "accounts",
|
|
243
|
-
type: "internal"
|
|
244
|
-
}
|
|
245
|
-
};
|
|
246
|
-
UsersService.validateUserId(serviceContext, params.params.userId);
|
|
247
|
-
if (!params.params.roleToAdd && !params.params.roleToRemove) {
|
|
248
|
-
throw new HttpError(
|
|
249
|
-
`${serviceContext.method.name}: 400 - Validation Error in API Package - either roleToAdd or roleToRemove must be specified`,
|
|
250
|
-
400,
|
|
251
|
-
`Validation Error in API Package - either roleToAdd or roleToRemove must be specified`
|
|
252
|
-
);
|
|
253
|
-
}
|
|
254
|
-
const body = {};
|
|
255
|
-
if (params.params.roleToAdd) {
|
|
256
|
-
body.roleToAdd = params.params.roleToAdd;
|
|
257
|
-
}
|
|
258
|
-
if (params.params.roleToRemove) {
|
|
259
|
-
body.roleToRemove = params.params.roleToRemove;
|
|
260
|
-
}
|
|
261
|
-
const response = await request({
|
|
262
|
-
config: params.config,
|
|
263
|
-
base: { id: "accounts" },
|
|
264
|
-
url: serviceContext.method.url,
|
|
265
|
-
method: serviceContext.method.type,
|
|
266
|
-
metricsDetails: serviceContext,
|
|
267
|
-
body,
|
|
268
|
-
headers: params.headers,
|
|
269
|
-
responseType: "none"
|
|
270
|
-
});
|
|
271
|
-
if (!response.ok) {
|
|
272
|
-
throw new HttpError(
|
|
273
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
274
|
-
response.status,
|
|
275
|
-
response.statusText
|
|
276
|
-
);
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
/**
|
|
280
|
-
* Get all Hibob users (for bulk ghost account checks).
|
|
281
|
-
* This fetches all active Hibob employees in a single request.
|
|
282
|
-
*/
|
|
283
|
-
static async getAllHibobUsers(params) {
|
|
284
|
-
const serviceContext = {
|
|
285
|
-
method: {
|
|
286
|
-
name: "UsersService.getAllHibobUsers",
|
|
287
|
-
url: "api/users/hibob/all",
|
|
288
|
-
normalizedUrl: "api/users/hibob/all",
|
|
289
|
-
type: "get"
|
|
290
|
-
},
|
|
291
|
-
source: params.config.metrics?.source || "unset",
|
|
292
|
-
target: {
|
|
293
|
-
name: "accounts",
|
|
294
|
-
type: "internal"
|
|
295
|
-
}
|
|
296
|
-
};
|
|
297
|
-
const response = await request({
|
|
298
|
-
...params,
|
|
299
|
-
base: { id: "accounts" },
|
|
300
|
-
url: serviceContext.method.url,
|
|
301
|
-
method: serviceContext.method.type,
|
|
302
|
-
metricsDetails: serviceContext
|
|
303
|
-
});
|
|
304
|
-
if (!response.ok) {
|
|
305
|
-
throw new HttpError(
|
|
306
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
307
|
-
response.status,
|
|
308
|
-
response.statusText
|
|
309
|
-
);
|
|
310
|
-
}
|
|
311
|
-
return response.body;
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* Get Hibob details for a specific user by their Auth0 user ID.
|
|
315
|
-
*/
|
|
316
|
-
static async getUserHibobDetails(params) {
|
|
317
|
-
const serviceContext = {
|
|
318
|
-
method: {
|
|
319
|
-
name: "UsersService.getUserHibobDetails",
|
|
320
|
-
url: `api/users/${encodeURIComponent(params.userId)}/hibob`,
|
|
321
|
-
normalizedUrl: "api/users/:userId/hibob",
|
|
322
|
-
type: "get"
|
|
323
|
-
},
|
|
324
|
-
source: params.config.metrics?.source || "unset",
|
|
325
|
-
target: {
|
|
326
|
-
name: "accounts",
|
|
327
|
-
type: "internal"
|
|
328
|
-
}
|
|
329
|
-
};
|
|
330
|
-
const response = await request({
|
|
331
|
-
...params,
|
|
332
|
-
base: { id: "accounts" },
|
|
333
|
-
url: serviceContext.method.url,
|
|
334
|
-
method: serviceContext.method.type,
|
|
335
|
-
metricsDetails: serviceContext
|
|
336
|
-
});
|
|
337
|
-
if (!response.ok) {
|
|
338
|
-
throw new HttpError(
|
|
339
|
-
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
340
|
-
response.status,
|
|
341
|
-
response.statusText
|
|
342
|
-
);
|
|
343
|
-
}
|
|
344
|
-
return response.body;
|
|
345
|
-
}
|
|
346
|
-
static validateUserId(serviceContext, userId) {
|
|
347
|
-
if (!userId || !userId.includes("|")) {
|
|
348
|
-
throw new HttpError(
|
|
349
|
-
`${serviceContext.method.name}: 400 - Validation Error in API Package - missing pipe '|'`,
|
|
350
|
-
400,
|
|
351
|
-
`Validation Error in API Package - missing pipe '|'`
|
|
352
|
-
);
|
|
353
|
-
}
|
|
354
|
-
}
|
|
355
|
-
static validateEmail(serviceContext, email) {
|
|
356
|
-
if (!email || !REGEX_EMAIL.test(email)) {
|
|
357
|
-
throw new HttpError(
|
|
358
|
-
`${serviceContext.method.name}: 400 - Validation Error in API Package - invalid email format`,
|
|
359
|
-
400,
|
|
360
|
-
`Validation Error in API Package - invalid email format`
|
|
361
|
-
);
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
/**
|
|
365
|
-
* Validates a Lucene query string for Auth0 user search.
|
|
366
|
-
* Auth0 supports Lucene query syntax including:
|
|
367
|
-
* - Field queries: field:value (e.g., email:john@example.com)
|
|
368
|
-
* - Wildcards: field:*value*, field:value*
|
|
369
|
-
* - Boolean operators: AND, OR, NOT
|
|
370
|
-
* - Grouping: (field:value OR field:value)
|
|
371
|
-
* - Range queries: field:[min TO max]
|
|
372
|
-
* - Exact phrase: field:"exact phrase"
|
|
373
|
-
*
|
|
374
|
-
* @see https://auth0.com/docs/manage-users/user-search/user-search-query-syntax
|
|
375
|
-
*/
|
|
376
|
-
static validateLuceneQuery(serviceContext, query) {
|
|
377
|
-
if (!query || query.trim().length === 0) {
|
|
378
|
-
throw new HttpError(
|
|
379
|
-
`${serviceContext.method.name}: 400 - Validation Error in API Package - empty Lucene query`,
|
|
380
|
-
400,
|
|
381
|
-
`Validation Error in API Package - empty Lucene query`
|
|
382
|
-
);
|
|
383
|
-
}
|
|
384
|
-
const trimmedQuery = query.trim();
|
|
385
|
-
let parenCount = 0;
|
|
386
|
-
for (const char of trimmedQuery) {
|
|
387
|
-
if (char === "(") parenCount++;
|
|
388
|
-
if (char === ")") parenCount--;
|
|
389
|
-
if (parenCount < 0) {
|
|
390
|
-
throw new HttpError(
|
|
391
|
-
`${serviceContext.method.name}: 400 - Validation Error in API Package - unbalanced parentheses in Lucene query`,
|
|
392
|
-
400,
|
|
393
|
-
`Validation Error in API Package - unbalanced parentheses in Lucene query`
|
|
394
|
-
);
|
|
395
|
-
}
|
|
396
|
-
}
|
|
397
|
-
if (parenCount !== 0) {
|
|
398
|
-
throw new HttpError(
|
|
399
|
-
`${serviceContext.method.name}: 400 - Validation Error in API Package - unbalanced parentheses in Lucene query`,
|
|
400
|
-
400,
|
|
401
|
-
`Validation Error in API Package - unbalanced parentheses in Lucene query`
|
|
402
|
-
);
|
|
403
|
-
}
|
|
404
|
-
let bracketCount = 0;
|
|
405
|
-
for (const char of trimmedQuery) {
|
|
406
|
-
if (char === "[") bracketCount++;
|
|
407
|
-
if (char === "]") bracketCount--;
|
|
408
|
-
if (bracketCount < 0) {
|
|
409
|
-
throw new HttpError(
|
|
410
|
-
`${serviceContext.method.name}: 400 - Validation Error in API Package - unbalanced brackets in Lucene query`,
|
|
411
|
-
400,
|
|
412
|
-
`Validation Error in API Package - unbalanced brackets in Lucene query`
|
|
413
|
-
);
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
if (bracketCount !== 0) {
|
|
417
|
-
throw new HttpError(
|
|
418
|
-
`${serviceContext.method.name}: 400 - Validation Error in API Package - unbalanced brackets in Lucene query`,
|
|
419
|
-
400,
|
|
420
|
-
`Validation Error in API Package - unbalanced brackets in Lucene query`
|
|
421
|
-
);
|
|
422
|
-
}
|
|
423
|
-
const quoteCount = (trimmedQuery.match(/"/gu) || []).length;
|
|
424
|
-
if (quoteCount % 2 !== 0) {
|
|
425
|
-
throw new HttpError(
|
|
426
|
-
`${serviceContext.method.name}: 400 - Validation Error in API Package - unbalanced quotes in Lucene query`,
|
|
427
|
-
400,
|
|
428
|
-
`Validation Error in API Package - unbalanced quotes in Lucene query`
|
|
429
|
-
);
|
|
430
|
-
}
|
|
431
|
-
const hasFieldValue = /\b\w+:/u.test(trimmedQuery);
|
|
432
|
-
if (!hasFieldValue) {
|
|
433
|
-
throw new HttpError(
|
|
434
|
-
`${serviceContext.method.name}: 400 - Validation Error in API Package - Lucene query must contain field:value syntax (e.g., email:john@example.com)`,
|
|
435
|
-
400,
|
|
436
|
-
`Validation Error in API Package - Lucene query must contain field:value syntax (e.g., email:john@example.com)`
|
|
437
|
-
);
|
|
438
|
-
}
|
|
439
|
-
}
|
|
440
|
-
}
|
|
441
|
-
export {
|
|
442
|
-
UsersService
|
|
443
|
-
};
|
|
444
|
-
//# sourceMappingURL=users.service.js.map
|