@camunda/ccma-api 0.0.2 → 0.0.3
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 +95 -0
- package/dist/index.js +151 -0
- package/dist/index.js.map +7 -0
- package/dist/services/accounts/accounts.data-export.service.d.ts +13 -0
- package/dist/services/accounts/accounts.data-export.service.js +41 -0
- package/dist/services/accounts/accounts.data-export.service.js.map +7 -0
- package/dist/services/accounts/accounts.valuemetrics.service.d.ts +8 -0
- package/dist/services/accounts/accounts.valuemetrics.service.js +1 -0
- package/dist/services/accounts/accounts.valuemetrics.service.js.map +7 -0
- package/dist/services/accounts/bot.service.d.ts +21 -0
- package/dist/services/accounts/bot.service.js +74 -0
- package/dist/services/accounts/bot.service.js.map +7 -0
- package/dist/services/accounts/challenge.service.d.ts +296 -0
- package/dist/services/accounts/challenge.service.js +475 -0
- package/dist/services/accounts/challenge.service.js.map +7 -0
- package/dist/services/accounts/connections.service.d.ts +27 -0
- package/dist/services/accounts/connections.service.js +41 -0
- package/dist/services/accounts/connections.service.js.map +7 -0
- package/dist/services/accounts/dashboards.service.d.ts +8 -0
- package/dist/services/accounts/dashboards.service.js +42 -0
- package/dist/services/accounts/dashboards.service.js.map +7 -0
- package/dist/services/accounts/early-access-features.service.d.ts +34 -0
- package/dist/services/accounts/early-access-features.service.js +67 -0
- package/dist/services/accounts/early-access-features.service.js.map +7 -0
- package/dist/services/accounts/genericCache.service.d.ts +13 -0
- package/dist/services/accounts/genericCache.service.js +80 -0
- package/dist/services/accounts/genericCache.service.js.map +7 -0
- package/dist/services/accounts/hdp.service.d.ts +52 -0
- package/dist/services/accounts/hdp.service.js +180 -0
- package/dist/services/accounts/hdp.service.js.map +7 -0
- package/dist/services/accounts/offboarding.service.d.ts +18 -0
- package/dist/services/accounts/offboarding.service.js +48 -0
- package/dist/services/accounts/offboarding.service.js.map +7 -0
- package/dist/services/accounts/organization-members.service.d.ts +68 -0
- package/dist/services/accounts/organization-members.service.js +216 -0
- package/dist/services/accounts/organization-members.service.js.map +7 -0
- package/dist/services/accounts/orgs.service.d.ts +273 -0
- package/dist/services/accounts/orgs.service.js +978 -0
- package/dist/services/accounts/orgs.service.js.map +7 -0
- package/dist/services/accounts/salesplan.service.d.ts +7 -0
- package/dist/services/accounts/salesplan.service.js +40 -0
- package/dist/services/accounts/salesplan.service.js.map +7 -0
- package/dist/services/accounts/spam-detection.service.d.ts +8 -0
- package/dist/services/accounts/spam-detection.service.js +72 -0
- package/dist/services/accounts/spam-detection.service.js.map +7 -0
- package/dist/services/accounts/stats.service.d.ts +7 -0
- package/dist/services/accounts/stats.service.js +40 -0
- package/dist/services/accounts/stats.service.js.map +7 -0
- package/dist/services/accounts/usage-alerts.service.d.ts +34 -0
- package/dist/services/accounts/usage-alerts.service.js +112 -0
- package/dist/services/accounts/usage-alerts.service.js.map +7 -0
- package/dist/services/accounts/users.service.d.ts +101 -0
- package/dist/services/accounts/users.service.js +444 -0
- package/dist/services/accounts/users.service.js.map +7 -0
- package/dist/services/alerts/alerts.service.d.ts +59 -0
- package/dist/services/alerts/alerts.service.js +234 -0
- package/dist/services/alerts/alerts.service.js.map +7 -0
- package/dist/services/analytic-bridge/analytic-bridge.service.d.ts +23 -0
- package/dist/services/analytic-bridge/analytic-bridge.service.js +86 -0
- package/dist/services/analytic-bridge/analytic-bridge.service.js.map +7 -0
- package/dist/services/audit-logger/audit-logger.service.d.ts +27 -0
- package/dist/services/audit-logger/audit-logger.service.js +108 -0
- package/dist/services/audit-logger/audit-logger.service.js.map +7 -0
- package/dist/services/auth0/auth0.service.d.ts +15 -0
- package/dist/services/auth0/auth0.service.js +40 -0
- package/dist/services/auth0/auth0.service.js.map +7 -0
- package/dist/services/comm-bridge/comm-bridge.service.d.ts +33 -0
- package/dist/services/comm-bridge/comm-bridge.service.js +40 -0
- package/dist/services/comm-bridge/comm-bridge.service.js.map +7 -0
- package/dist/services/console/console.admin.service.d.ts +328 -0
- package/dist/services/console/console.admin.service.js +1526 -0
- package/dist/services/console/console.admin.service.js.map +7 -0
- package/dist/services/console/console.alerts.service.d.ts +69 -0
- package/dist/services/console/console.alerts.service.js +160 -0
- package/dist/services/console/console.alerts.service.js.map +7 -0
- package/dist/services/console/console.api-clients.service.d.ts +48 -0
- package/dist/services/console/console.api-clients.service.js +123 -0
- package/dist/services/console/console.api-clients.service.js.map +7 -0
- package/dist/services/console/console.backup-schedule.service.d.ts +21 -0
- package/dist/services/console/console.backup-schedule.service.js +67 -0
- package/dist/services/console/console.backup-schedule.service.js.map +7 -0
- package/dist/services/console/console.byok-scripts.service.d.ts +12 -0
- package/dist/services/console/console.byok-scripts.service.js +92 -0
- package/dist/services/console/console.byok-scripts.service.js.map +7 -0
- package/dist/services/console/console.byom-monitoring.service.d.ts +58 -0
- package/dist/services/console/console.byom-monitoring.service.js +177 -0
- package/dist/services/console/console.byom-monitoring.service.js.map +7 -0
- package/dist/services/console/console.cluster-clients.service.d.ts +55 -0
- package/dist/services/console/console.cluster-clients.service.js +123 -0
- package/dist/services/console/console.cluster-clients.service.js.map +7 -0
- package/dist/services/console/console.cluster-parameters.service.d.ts +64 -0
- package/dist/services/console/console.cluster-parameters.service.js +39 -0
- package/dist/services/console/console.cluster-parameters.service.js.map +7 -0
- package/dist/services/console/console.cluster.service.d.ts +114 -0
- package/dist/services/console/console.cluster.service.js +271 -0
- package/dist/services/console/console.cluster.service.js.map +7 -0
- package/dist/services/console/console.clusterBulkOperation.service.d.ts +20 -0
- package/dist/services/console/console.clusterBulkOperation.service.js +199 -0
- package/dist/services/console/console.clusterBulkOperation.service.js.map +7 -0
- package/dist/services/console/console.clusterplan.modification.service.d.ts +33 -0
- package/dist/services/console/console.clusterplan.modification.service.js +231 -0
- package/dist/services/console/console.clusterplan.modification.service.js.map +7 -0
- package/dist/services/console/console.clusterplan.service.d.ts +21 -0
- package/dist/services/console/console.clusterplan.service.js +64 -0
- package/dist/services/console/console.clusterplan.service.js.map +7 -0
- package/dist/services/console/console.connector-secrets.service.d.ts +30 -0
- package/dist/services/console/console.connector-secrets.service.js +125 -0
- package/dist/services/console/console.connector-secrets.service.js.map +7 -0
- package/dist/services/console/console.custommetrics.service.d.ts +10 -0
- package/dist/services/console/console.custommetrics.service.js +43 -0
- package/dist/services/console/console.custommetrics.service.js.map +7 -0
- package/dist/services/console/console.hotbackups.service.d.ts +34 -0
- package/dist/services/console/console.hotbackups.service.js +120 -0
- package/dist/services/console/console.hotbackups.service.js.map +7 -0
- package/dist/services/console/console.ip-whitelist.service.d.ts +15 -0
- package/dist/services/console/console.ip-whitelist.service.js +36 -0
- package/dist/services/console/console.ip-whitelist.service.js.map +7 -0
- package/dist/services/console/console.jobs.saas.service.d.ts +70 -0
- package/dist/services/console/console.jobs.saas.service.js +139 -0
- package/dist/services/console/console.jobs.saas.service.js.map +7 -0
- package/dist/services/console/console.m2m.service.d.ts +23 -0
- package/dist/services/console/console.m2m.service.js +94 -0
- package/dist/services/console/console.m2m.service.js.map +7 -0
- package/dist/services/console/console.secure-connectivity.service.d.ts +41 -0
- package/dist/services/console/console.secure-connectivity.service.js +129 -0
- package/dist/services/console/console.secure-connectivity.service.js.map +7 -0
- package/dist/services/console/console.valuemetrics.service.d.ts +17 -0
- package/dist/services/console/console.valuemetrics.service.js +110 -0
- package/dist/services/console/console.valuemetrics.service.js.map +7 -0
- package/dist/services/console/generation.service.d.ts +29 -0
- package/dist/services/console/generation.service.js +166 -0
- package/dist/services/console/generation.service.js.map +7 -0
- package/dist/services/github/github.service.d.ts +73 -0
- package/dist/services/github/github.service.js +272 -0
- package/dist/services/github/github.service.js.map +7 -0
- package/dist/services/hibob/hibob.service.d.ts +74 -0
- package/dist/services/hibob/hibob.service.js +125 -0
- package/dist/services/hibob/hibob.service.js.map +7 -0
- package/dist/services/hubspot/hubspot.service.d.ts +50 -0
- package/dist/services/hubspot/hubspot.service.js +119 -0
- package/dist/services/hubspot/hubspot.service.js.map +7 -0
- package/dist/services/litellm/litellm.service.d.ts +290 -0
- package/dist/services/litellm/litellm.service.js +392 -0
- package/dist/services/litellm/litellm.service.js.map +7 -0
- package/dist/services/login/login.service.d.ts +15 -0
- package/dist/services/login/login.service.js +66 -0
- package/dist/services/login/login.service.js.map +7 -0
- package/dist/services/mixpanel/mixpanel.service.d.ts +16 -0
- package/dist/services/mixpanel/mixpanel.service.js +86 -0
- package/dist/services/mixpanel/mixpanel.service.js.map +7 -0
- package/dist/services/notifications/notifications.service.d.ts +7 -0
- package/dist/services/notifications/notifications.service.js +38 -0
- package/dist/services/notifications/notifications.service.js.map +7 -0
- package/dist/services/slack/slack-blockkit.service.d.ts +28 -0
- package/dist/services/slack/slack-blockkit.service.js +45 -0
- package/dist/services/slack/slack-blockkit.service.js.map +7 -0
- package/dist/services/slack/slack.service.d.ts +31 -0
- package/dist/services/slack/slack.service.js +118 -0
- package/dist/services/slack/slack.service.js.map +7 -0
- package/dist/services/telemetry/telemetry.service.d.ts +16 -0
- package/dist/services/telemetry/telemetry.service.js +85 -0
- package/dist/services/telemetry/telemetry.service.js.map +7 -0
- package/dist/services/token-issuer/token-issuer.jwks.service.d.ts +13 -0
- package/dist/services/token-issuer/token-issuer.jwks.service.js +76 -0
- package/dist/services/token-issuer/token-issuer.jwks.service.js.map +7 -0
- package/dist/services/wordpress/wordpress.service.d.ts +15 -0
- package/dist/services/wordpress/wordpress.service.js +111 -0
- package/dist/services/wordpress/wordpress.service.js.map +7 -0
- package/dist/types/general.types.d.ts +61 -0
- package/dist/types/general.types.js +1 -0
- package/dist/types/general.types.js.map +7 -0
- package/dist/utils/api.d.ts +31 -0
- package/dist/utils/api.js +400 -0
- package/dist/utils/api.js.map +7 -0
- package/dist/utils/cache.d.ts +7 -0
- package/dist/utils/cache.js +25 -0
- package/dist/utils/cache.js.map +7 -0
- package/dist/utils/ccma-metrics.d.ts +18 -0
- package/dist/utils/ccma-metrics.js +37 -0
- package/dist/utils/ccma-metrics.js.map +7 -0
- package/dist/utils/environments.d.ts +11 -0
- package/dist/utils/environments.js +148 -0
- package/dist/utils/environments.js.map +7 -0
- package/dist/utils/errors.d.ts +5 -0
- package/dist/utils/errors.js +11 -0
- package/dist/utils/errors.js.map +7 -0
- package/dist/utils/frontendCache.d.ts +26 -0
- package/dist/utils/frontendCache.js +121 -0
- package/dist/utils/frontendCache.js.map +7 -0
- package/dist/utils/token-issuer.utils.d.ts +8 -0
- package/dist/utils/token-issuer.utils.js +19 -0
- package/dist/utils/token-issuer.utils.js.map +7 -0
- package/package.json +2 -2
|
@@ -0,0 +1,475 @@
|
|
|
1
|
+
import { request } from "../../utils/api.js";
|
|
2
|
+
import { HttpError } from "../../utils/errors.js";
|
|
3
|
+
class ChallengeService {
|
|
4
|
+
/**
|
|
5
|
+
* Get game information and rules
|
|
6
|
+
*/
|
|
7
|
+
static async getGameInfo(params) {
|
|
8
|
+
const serviceContext = {
|
|
9
|
+
method: {
|
|
10
|
+
name: "ChallengeService.getGameInfo",
|
|
11
|
+
url: "challenge/game",
|
|
12
|
+
normalizedUrl: "challenge/game",
|
|
13
|
+
type: "get"
|
|
14
|
+
},
|
|
15
|
+
source: params.config.metrics?.source || "unset",
|
|
16
|
+
target: {
|
|
17
|
+
name: "accounts",
|
|
18
|
+
type: "internal"
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
const response = await request({
|
|
22
|
+
...params,
|
|
23
|
+
base: { id: "accounts" },
|
|
24
|
+
url: serviceContext.method.url,
|
|
25
|
+
method: serviceContext.method.type,
|
|
26
|
+
metricsDetails: serviceContext
|
|
27
|
+
});
|
|
28
|
+
if (!response.ok) {
|
|
29
|
+
throw new HttpError(
|
|
30
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
31
|
+
response.status,
|
|
32
|
+
response.statusText
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
return response.body;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get available organizational groups (departments, divisions, subdivisions)
|
|
39
|
+
*/
|
|
40
|
+
static async getOrganizationalGroups(params) {
|
|
41
|
+
const serviceContext = {
|
|
42
|
+
method: {
|
|
43
|
+
name: "ChallengeService.getOrganizationalGroups",
|
|
44
|
+
url: "challenge/groups",
|
|
45
|
+
normalizedUrl: "challenge/groups",
|
|
46
|
+
type: "get"
|
|
47
|
+
},
|
|
48
|
+
source: params.config.metrics?.source || "unset",
|
|
49
|
+
target: {
|
|
50
|
+
name: "accounts",
|
|
51
|
+
type: "internal"
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
const response = await request({
|
|
55
|
+
...params,
|
|
56
|
+
base: { id: "accounts" },
|
|
57
|
+
url: serviceContext.method.url,
|
|
58
|
+
method: serviceContext.method.type,
|
|
59
|
+
metricsDetails: serviceContext
|
|
60
|
+
});
|
|
61
|
+
if (!response.ok) {
|
|
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
|
+
/**
|
|
71
|
+
* Initiate a new match
|
|
72
|
+
*/
|
|
73
|
+
static async initiateMatch(params) {
|
|
74
|
+
const serviceContext = {
|
|
75
|
+
method: {
|
|
76
|
+
name: "ChallengeService.initiateMatch",
|
|
77
|
+
url: "challenge/initiate",
|
|
78
|
+
normalizedUrl: "challenge/initiate",
|
|
79
|
+
type: "post"
|
|
80
|
+
},
|
|
81
|
+
source: params.config.metrics?.source || "unset",
|
|
82
|
+
target: {
|
|
83
|
+
name: "accounts",
|
|
84
|
+
type: "internal"
|
|
85
|
+
}
|
|
86
|
+
};
|
|
87
|
+
const response = await request({
|
|
88
|
+
...params,
|
|
89
|
+
base: { id: "accounts" },
|
|
90
|
+
url: serviceContext.method.url,
|
|
91
|
+
method: serviceContext.method.type,
|
|
92
|
+
metricsDetails: serviceContext,
|
|
93
|
+
body: params.body,
|
|
94
|
+
type: "json"
|
|
95
|
+
});
|
|
96
|
+
if (!response.ok) {
|
|
97
|
+
throw new HttpError(
|
|
98
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
99
|
+
response.status,
|
|
100
|
+
response.statusText
|
|
101
|
+
);
|
|
102
|
+
}
|
|
103
|
+
return response.body;
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Join an existing match
|
|
107
|
+
*/
|
|
108
|
+
static async joinMatch(params) {
|
|
109
|
+
const serviceContext = {
|
|
110
|
+
method: {
|
|
111
|
+
name: "ChallengeService.joinMatch",
|
|
112
|
+
url: `challenge/match/${params.params.matchId}/join`,
|
|
113
|
+
normalizedUrl: "challenge/match/:matchId/join",
|
|
114
|
+
type: "post"
|
|
115
|
+
},
|
|
116
|
+
source: params.config.metrics?.source || "unset",
|
|
117
|
+
target: {
|
|
118
|
+
name: "accounts",
|
|
119
|
+
type: "internal"
|
|
120
|
+
}
|
|
121
|
+
};
|
|
122
|
+
const response = await request({
|
|
123
|
+
...params,
|
|
124
|
+
base: { id: "accounts" },
|
|
125
|
+
url: serviceContext.method.url,
|
|
126
|
+
method: serviceContext.method.type,
|
|
127
|
+
metricsDetails: serviceContext
|
|
128
|
+
});
|
|
129
|
+
if (!response.ok) {
|
|
130
|
+
throw new HttpError(
|
|
131
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
132
|
+
response.status,
|
|
133
|
+
response.statusText
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
return response.body;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Start the match (both players must call this)
|
|
140
|
+
*/
|
|
141
|
+
static async startMatch(params) {
|
|
142
|
+
const serviceContext = {
|
|
143
|
+
method: {
|
|
144
|
+
name: "ChallengeService.startMatch",
|
|
145
|
+
url: `challenge/match/${params.params.matchId}/start`,
|
|
146
|
+
normalizedUrl: "challenge/match/:matchId/start",
|
|
147
|
+
type: "post"
|
|
148
|
+
},
|
|
149
|
+
source: params.config.metrics?.source || "unset",
|
|
150
|
+
target: {
|
|
151
|
+
name: "accounts",
|
|
152
|
+
type: "internal"
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
const response = await request({
|
|
156
|
+
...params,
|
|
157
|
+
base: { id: "accounts" },
|
|
158
|
+
url: serviceContext.method.url,
|
|
159
|
+
method: serviceContext.method.type,
|
|
160
|
+
metricsDetails: serviceContext
|
|
161
|
+
});
|
|
162
|
+
if (!response.ok) {
|
|
163
|
+
throw new HttpError(
|
|
164
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
165
|
+
response.status,
|
|
166
|
+
response.statusText
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
return response.body;
|
|
170
|
+
}
|
|
171
|
+
/**
|
|
172
|
+
* Get match state (full details for players, limited for others)
|
|
173
|
+
*/
|
|
174
|
+
static async getMatchState(params) {
|
|
175
|
+
const serviceContext = {
|
|
176
|
+
method: {
|
|
177
|
+
name: "ChallengeService.getMatchState",
|
|
178
|
+
url: `challenge/match/${params.params.matchId}`,
|
|
179
|
+
normalizedUrl: "challenge/match/:matchId",
|
|
180
|
+
type: "get"
|
|
181
|
+
},
|
|
182
|
+
source: params.config.metrics?.source || "unset",
|
|
183
|
+
target: {
|
|
184
|
+
name: "accounts",
|
|
185
|
+
type: "internal"
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
const response = await request({
|
|
189
|
+
...params,
|
|
190
|
+
base: { id: "accounts" },
|
|
191
|
+
url: serviceContext.method.url,
|
|
192
|
+
method: serviceContext.method.type,
|
|
193
|
+
metricsDetails: serviceContext
|
|
194
|
+
});
|
|
195
|
+
if (!response.ok) {
|
|
196
|
+
throw new HttpError(
|
|
197
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
198
|
+
response.status,
|
|
199
|
+
response.statusText
|
|
200
|
+
);
|
|
201
|
+
}
|
|
202
|
+
return response.body;
|
|
203
|
+
}
|
|
204
|
+
/**
|
|
205
|
+
* Submit an answer to a question
|
|
206
|
+
*/
|
|
207
|
+
static async submitAnswer(params) {
|
|
208
|
+
const serviceContext = {
|
|
209
|
+
method: {
|
|
210
|
+
name: "ChallengeService.submitAnswer",
|
|
211
|
+
url: `challenge/match/${params.params.matchId}/answer`,
|
|
212
|
+
normalizedUrl: "challenge/match/:matchId/answer",
|
|
213
|
+
type: "post"
|
|
214
|
+
},
|
|
215
|
+
source: params.config.metrics?.source || "unset",
|
|
216
|
+
target: {
|
|
217
|
+
name: "accounts",
|
|
218
|
+
type: "internal"
|
|
219
|
+
}
|
|
220
|
+
};
|
|
221
|
+
const response = await request({
|
|
222
|
+
...params,
|
|
223
|
+
base: { id: "accounts" },
|
|
224
|
+
url: serviceContext.method.url,
|
|
225
|
+
method: serviceContext.method.type,
|
|
226
|
+
metricsDetails: serviceContext,
|
|
227
|
+
body: params.body,
|
|
228
|
+
type: "json"
|
|
229
|
+
});
|
|
230
|
+
if (!response.ok) {
|
|
231
|
+
throw new HttpError(
|
|
232
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
233
|
+
response.status,
|
|
234
|
+
response.statusText
|
|
235
|
+
);
|
|
236
|
+
}
|
|
237
|
+
return response.body;
|
|
238
|
+
}
|
|
239
|
+
/**
|
|
240
|
+
* Get all running matches
|
|
241
|
+
*/
|
|
242
|
+
static async getRunningMatches(params) {
|
|
243
|
+
const serviceContext = {
|
|
244
|
+
method: {
|
|
245
|
+
name: "ChallengeService.getRunningMatches",
|
|
246
|
+
url: "challenge",
|
|
247
|
+
normalizedUrl: "challenge",
|
|
248
|
+
type: "get"
|
|
249
|
+
},
|
|
250
|
+
source: params.config.metrics?.source || "unset",
|
|
251
|
+
target: {
|
|
252
|
+
name: "accounts",
|
|
253
|
+
type: "internal"
|
|
254
|
+
}
|
|
255
|
+
};
|
|
256
|
+
const response = await request({
|
|
257
|
+
...params,
|
|
258
|
+
base: { id: "accounts" },
|
|
259
|
+
url: serviceContext.method.url,
|
|
260
|
+
method: serviceContext.method.type,
|
|
261
|
+
metricsDetails: serviceContext
|
|
262
|
+
});
|
|
263
|
+
if (!response.ok) {
|
|
264
|
+
throw new HttpError(
|
|
265
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
266
|
+
response.status,
|
|
267
|
+
response.statusText
|
|
268
|
+
);
|
|
269
|
+
}
|
|
270
|
+
return response.body;
|
|
271
|
+
}
|
|
272
|
+
/**
|
|
273
|
+
* Get highscores/leaderboard
|
|
274
|
+
*/
|
|
275
|
+
static async getHighscores(params) {
|
|
276
|
+
const timeframe = params.params?.timeframe || "alltime";
|
|
277
|
+
const serviceContext = {
|
|
278
|
+
method: {
|
|
279
|
+
name: "ChallengeService.getHighscores",
|
|
280
|
+
url: `challenge/highscores?timeframe=${timeframe}`,
|
|
281
|
+
normalizedUrl: "challenge/highscores",
|
|
282
|
+
type: "get"
|
|
283
|
+
},
|
|
284
|
+
source: params.config.metrics?.source || "unset",
|
|
285
|
+
target: {
|
|
286
|
+
name: "accounts",
|
|
287
|
+
type: "internal"
|
|
288
|
+
}
|
|
289
|
+
};
|
|
290
|
+
const response = await request({
|
|
291
|
+
...params,
|
|
292
|
+
base: { id: "accounts" },
|
|
293
|
+
url: serviceContext.method.url,
|
|
294
|
+
method: serviceContext.method.type,
|
|
295
|
+
metricsDetails: serviceContext
|
|
296
|
+
});
|
|
297
|
+
if (!response.ok) {
|
|
298
|
+
throw new HttpError(
|
|
299
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
300
|
+
response.status,
|
|
301
|
+
response.statusText
|
|
302
|
+
);
|
|
303
|
+
}
|
|
304
|
+
return response.body;
|
|
305
|
+
}
|
|
306
|
+
/**
|
|
307
|
+
* Get active (watchable) matches
|
|
308
|
+
*/
|
|
309
|
+
static async getActiveMatches(params) {
|
|
310
|
+
const serviceContext = {
|
|
311
|
+
method: {
|
|
312
|
+
name: "ChallengeService.getActiveMatches",
|
|
313
|
+
url: "challenge/active",
|
|
314
|
+
normalizedUrl: "challenge/active",
|
|
315
|
+
type: "get"
|
|
316
|
+
},
|
|
317
|
+
source: params.config.metrics?.source || "unset",
|
|
318
|
+
target: {
|
|
319
|
+
name: "accounts",
|
|
320
|
+
type: "internal"
|
|
321
|
+
}
|
|
322
|
+
};
|
|
323
|
+
const response = await request({
|
|
324
|
+
...params,
|
|
325
|
+
base: { id: "accounts" },
|
|
326
|
+
url: serviceContext.method.url,
|
|
327
|
+
method: serviceContext.method.type,
|
|
328
|
+
metricsDetails: serviceContext
|
|
329
|
+
});
|
|
330
|
+
if (!response.ok) {
|
|
331
|
+
throw new HttpError(
|
|
332
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
333
|
+
response.status,
|
|
334
|
+
response.statusText
|
|
335
|
+
);
|
|
336
|
+
}
|
|
337
|
+
return response.body;
|
|
338
|
+
}
|
|
339
|
+
/**
|
|
340
|
+
* Get player statistics
|
|
341
|
+
*/
|
|
342
|
+
static async getPlayerStats(params) {
|
|
343
|
+
const serviceContext = {
|
|
344
|
+
method: {
|
|
345
|
+
name: "ChallengeService.getPlayerStats",
|
|
346
|
+
url: "challenge/stats",
|
|
347
|
+
normalizedUrl: "challenge/stats",
|
|
348
|
+
type: "get"
|
|
349
|
+
},
|
|
350
|
+
source: params.config.metrics?.source || "unset",
|
|
351
|
+
target: {
|
|
352
|
+
name: "accounts",
|
|
353
|
+
type: "internal"
|
|
354
|
+
}
|
|
355
|
+
};
|
|
356
|
+
const response = await request({
|
|
357
|
+
...params,
|
|
358
|
+
base: { id: "accounts" },
|
|
359
|
+
url: serviceContext.method.url,
|
|
360
|
+
method: serviceContext.method.type,
|
|
361
|
+
metricsDetails: serviceContext
|
|
362
|
+
});
|
|
363
|
+
if (!response.ok) {
|
|
364
|
+
throw new HttpError(
|
|
365
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
366
|
+
response.status,
|
|
367
|
+
response.statusText
|
|
368
|
+
);
|
|
369
|
+
}
|
|
370
|
+
return response.body;
|
|
371
|
+
}
|
|
372
|
+
/**
|
|
373
|
+
* Get waiting matches (matches looking for opponents)
|
|
374
|
+
*/
|
|
375
|
+
static async getWaitingMatches(params) {
|
|
376
|
+
const serviceContext = {
|
|
377
|
+
method: {
|
|
378
|
+
name: "ChallengeService.getWaitingMatches",
|
|
379
|
+
url: "challenge/waiting",
|
|
380
|
+
normalizedUrl: "challenge/waiting",
|
|
381
|
+
type: "get"
|
|
382
|
+
},
|
|
383
|
+
source: params.config.metrics?.source || "unset",
|
|
384
|
+
target: {
|
|
385
|
+
name: "accounts",
|
|
386
|
+
type: "internal"
|
|
387
|
+
}
|
|
388
|
+
};
|
|
389
|
+
const response = await request({
|
|
390
|
+
...params,
|
|
391
|
+
base: { id: "accounts" },
|
|
392
|
+
url: serviceContext.method.url,
|
|
393
|
+
method: serviceContext.method.type,
|
|
394
|
+
metricsDetails: serviceContext
|
|
395
|
+
});
|
|
396
|
+
if (!response.ok) {
|
|
397
|
+
throw new HttpError(
|
|
398
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
399
|
+
response.status,
|
|
400
|
+
response.statusText
|
|
401
|
+
);
|
|
402
|
+
}
|
|
403
|
+
return response.body;
|
|
404
|
+
}
|
|
405
|
+
/**
|
|
406
|
+
* Join a random waiting match
|
|
407
|
+
*/
|
|
408
|
+
static async joinRandomMatch(params) {
|
|
409
|
+
const serviceContext = {
|
|
410
|
+
method: {
|
|
411
|
+
name: "ChallengeService.joinRandomMatch",
|
|
412
|
+
url: "challenge/join-random",
|
|
413
|
+
normalizedUrl: "challenge/join-random",
|
|
414
|
+
type: "post"
|
|
415
|
+
},
|
|
416
|
+
source: params.config.metrics?.source || "unset",
|
|
417
|
+
target: {
|
|
418
|
+
name: "accounts",
|
|
419
|
+
type: "internal"
|
|
420
|
+
}
|
|
421
|
+
};
|
|
422
|
+
const response = await request({
|
|
423
|
+
...params,
|
|
424
|
+
base: { id: "accounts" },
|
|
425
|
+
url: serviceContext.method.url,
|
|
426
|
+
method: serviceContext.method.type,
|
|
427
|
+
metricsDetails: serviceContext
|
|
428
|
+
});
|
|
429
|
+
if (!response.ok) {
|
|
430
|
+
throw new HttpError(
|
|
431
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
432
|
+
response.status,
|
|
433
|
+
response.statusText
|
|
434
|
+
);
|
|
435
|
+
}
|
|
436
|
+
return response.body;
|
|
437
|
+
}
|
|
438
|
+
/**
|
|
439
|
+
* Cancel/abandon a match (only creator can cancel, and only in waiting state)
|
|
440
|
+
*/
|
|
441
|
+
static async cancelMatch(params) {
|
|
442
|
+
const serviceContext = {
|
|
443
|
+
method: {
|
|
444
|
+
name: "ChallengeService.cancelMatch",
|
|
445
|
+
url: `challenge/match/${params.params.matchId}`,
|
|
446
|
+
normalizedUrl: "challenge/match/:matchId",
|
|
447
|
+
type: "delete"
|
|
448
|
+
},
|
|
449
|
+
source: params.config.metrics?.source || "unset",
|
|
450
|
+
target: {
|
|
451
|
+
name: "accounts",
|
|
452
|
+
type: "internal"
|
|
453
|
+
}
|
|
454
|
+
};
|
|
455
|
+
const response = await request({
|
|
456
|
+
...params,
|
|
457
|
+
base: { id: "accounts" },
|
|
458
|
+
url: serviceContext.method.url,
|
|
459
|
+
method: serviceContext.method.type,
|
|
460
|
+
metricsDetails: serviceContext
|
|
461
|
+
});
|
|
462
|
+
if (!response.ok) {
|
|
463
|
+
throw new HttpError(
|
|
464
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
465
|
+
response.status,
|
|
466
|
+
response.statusText
|
|
467
|
+
);
|
|
468
|
+
}
|
|
469
|
+
return response.body;
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
export {
|
|
473
|
+
ChallengeService
|
|
474
|
+
};
|
|
475
|
+
//# sourceMappingURL=challenge.service.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/services/accounts/challenge.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 * Challenge game types\n */\n\nexport interface SlackProfile {\n displayName: string\n imageUrl: string\n timezone: string\n timezoneLabel: string\n}\n\nexport interface QuestionChoice {\n value: string\n isCorrect: boolean\n avatar?: string // Avatar URL for reverse name questions\n}\n\nexport interface Question {\n type:\n | 'name'\n | 'avatar'\n | 'team'\n | 'timezone'\n | 'avatarTimezone'\n | 'notInTimezone'\n // Product feature question types\n | 'creationYear'\n | 'duration'\n | 'version'\n | 'pmDri'\n | 'engineeringDri'\n | 'designDri'\n | 'theme'\n employeeId: string\n question: string\n choices: QuestionChoice[]\n correctAnswer: string\n slackProfile?: SlackProfile\n employee?: {\n name: string\n avatar: string\n }\n}\n\nexport interface PlayerAnswer {\n questionIndex: number\n answer: string\n isCorrect: boolean\n timestamp: number\n}\n\nexport interface Player {\n userId: string\n email: string\n answers: PlayerAnswer[]\n score: number\n completed: boolean\n slackProfile?: SlackProfile\n}\n\nexport interface Match {\n id: string\n type:\n | 'department'\n | 'division'\n | 'subdivision'\n | 'company'\n | 'product-features'\n value: string\n creator: Player\n opponent?: Player\n questions: Question[]\n status: 'waiting' | 'ready' | 'started' | 'completed'\n startTime?: number\n endTime?: number\n createdAt: number\n}\n\nexport interface HighscoreEntry {\n userId: string\n email: string\n wins: number\n totalGames: number\n averageScore: number\n}\n\nexport interface PlayerStats {\n email: string\n totalMatches: number\n wins: number\n losses: number\n totalCorrectAnswers: number\n totalQuestions: number\n totalPlayTimeSeconds: number\n averageScore: number\n}\n\nexport interface GameInfo {\n name: string\n objective: string\n rules: string[]\n howToPlay: string[]\n}\n\n/**\n * Request/Response interfaces\n */\n\nexport interface GetGameInfoParams extends RequestBaseParams {}\n\nexport interface GetOrganizationalGroupsParams extends RequestBaseParams {}\n\nexport interface GetOrganizationalGroupsResponse {\n departments: string[]\n divisions: string[]\n subdivisions: string[]\n company: string[]\n 'product-features': string[]\n}\n\nexport interface InitiateMatchParams extends RequestBaseParams {\n body: {\n type:\n | 'department'\n | 'division'\n | 'subdivision'\n | 'company'\n | 'product-features'\n value: string\n isSolo?: boolean\n }\n}\n\nexport interface InitiateMatchResponse {\n matchId: string\n type: string\n value: string\n status: string\n questionCount: number\n createdAt: number\n isSolo?: boolean\n countdownMessages?: string[]\n}\n\nexport interface JoinMatchParams extends RequestBaseParams {\n params: {\n matchId: string\n }\n}\n\nexport interface JoinMatchResponse {\n matchId: string\n status: string\n creator: {\n userId: string\n email: string\n }\n opponent: {\n userId: string\n email: string\n } | null\n}\n\nexport interface StartMatchParams extends RequestBaseParams {\n params: {\n matchId: string\n }\n}\n\nexport interface StartMatchResponse {\n matchId: string\n status: string\n startTime?: number\n message: string\n}\n\nexport interface GetMatchStateParams extends RequestBaseParams {\n params: {\n matchId: string\n }\n}\n\nexport interface SubmitAnswerParams extends RequestBaseParams {\n params: {\n matchId: string\n }\n body: {\n questionIndex: number\n answer: string\n }\n}\n\nexport interface SubmitAnswerResponse {\n correct: boolean\n score: number\n}\n\nexport interface GetRunningMatchesParams extends RequestBaseParams {}\n\nexport interface GetRunningMatchesResponse {\n count: number\n matches: Array<{\n matchId: string\n type: string\n value: string\n status: string\n creator: {\n userId: string\n email: string\n }\n opponent: {\n userId: string\n email: string\n } | null\n createdAt: number\n }>\n}\n\nexport interface GetHighscoresParams extends RequestBaseParams {\n params?: {\n timeframe?: 'today' | 'alltime'\n }\n}\n\nexport interface GetHighscoresResponse {\n count: number\n timeframe: 'today' | 'alltime'\n highscores: HighscoreEntry[]\n}\n\nexport interface GetActiveMatchesParams extends RequestBaseParams {}\n\nexport interface GetActiveMatchesResponse {\n count: number\n matches: Array<{\n matchId: string\n type: string\n value: string\n creator: {\n userId: string\n email: string\n }\n opponent: {\n userId: string\n email: string\n }\n startTime: number\n }>\n}\n\nexport interface GetPlayerStatsParams extends RequestBaseParams {}\n\nexport interface GetWaitingMatchesParams extends RequestBaseParams {}\n\nexport interface CancelMatchParams extends RequestBaseParams {\n params: {\n matchId: string\n }\n}\n\nexport interface CancelMatchResponse {\n success: boolean\n message: string\n}\n\nexport interface WaitingMatchEntry {\n matchId: string\n type: string\n value: string\n creator: {\n userId: string\n email: string\n slackProfile?: SlackProfile\n }\n createdAt: number\n}\n\nexport interface GetWaitingMatchesResponse {\n count: number\n matches: WaitingMatchEntry[]\n}\n\nexport interface JoinRandomMatchParams extends RequestBaseParams {}\n\n/**\n * Challenge Game Service\n *\n * Provides methods to interact with the employee challenge game API.\n * Only available when NODE_ENV=dev.\n */\nexport class ChallengeService {\n /**\n * Get game information and rules\n */\n public static async getGameInfo(\n params: GetGameInfoParams,\n ): Promise<GameInfo> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.getGameInfo',\n url: 'challenge/game',\n normalizedUrl: 'challenge/game',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<GameInfo>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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\n return response.body!\n }\n\n /**\n * Get available organizational groups (departments, divisions, subdivisions)\n */\n public static async getOrganizationalGroups(\n params: GetOrganizationalGroupsParams,\n ): Promise<GetOrganizationalGroupsResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.getOrganizationalGroups',\n url: 'challenge/groups',\n normalizedUrl: 'challenge/groups',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<GetOrganizationalGroupsResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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\n return response.body!\n }\n\n /**\n * Initiate a new match\n */\n public static async initiateMatch(\n params: InitiateMatchParams,\n ): Promise<InitiateMatchResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.initiateMatch',\n url: 'challenge/initiate',\n normalizedUrl: 'challenge/initiate',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<InitiateMatchResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.body,\n type: 'json',\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\n return response.body!\n }\n\n /**\n * Join an existing match\n */\n public static async joinMatch(\n params: JoinMatchParams,\n ): Promise<JoinMatchResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.joinMatch',\n url: `challenge/match/${params.params.matchId}/join`,\n normalizedUrl: 'challenge/match/:matchId/join',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<JoinMatchResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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\n return response.body!\n }\n\n /**\n * Start the match (both players must call this)\n */\n public static async startMatch(\n params: StartMatchParams,\n ): Promise<StartMatchResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.startMatch',\n url: `challenge/match/${params.params.matchId}/start`,\n normalizedUrl: 'challenge/match/:matchId/start',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<StartMatchResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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\n return response.body!\n }\n\n /**\n * Get match state (full details for players, limited for others)\n */\n public static async getMatchState(\n params: GetMatchStateParams,\n ): Promise<Match> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.getMatchState',\n url: `challenge/match/${params.params.matchId}`,\n normalizedUrl: 'challenge/match/:matchId',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<Match>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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\n return response.body!\n }\n\n /**\n * Submit an answer to a question\n */\n public static async submitAnswer(\n params: SubmitAnswerParams,\n ): Promise<SubmitAnswerResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.submitAnswer',\n url: `challenge/match/${params.params.matchId}/answer`,\n normalizedUrl: 'challenge/match/:matchId/answer',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<SubmitAnswerResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n body: params.body,\n type: 'json',\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\n return response.body!\n }\n\n /**\n * Get all running matches\n */\n public static async getRunningMatches(\n params: GetRunningMatchesParams,\n ): Promise<GetRunningMatchesResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.getRunningMatches',\n url: 'challenge',\n normalizedUrl: 'challenge',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<GetRunningMatchesResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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\n return response.body!\n }\n\n /**\n * Get highscores/leaderboard\n */\n public static async getHighscores(\n params: GetHighscoresParams,\n ): Promise<GetHighscoresResponse> {\n const timeframe = params.params?.timeframe || 'alltime'\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.getHighscores',\n url: `challenge/highscores?timeframe=${timeframe}`,\n normalizedUrl: 'challenge/highscores',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<GetHighscoresResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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\n return response.body!\n }\n\n /**\n * Get active (watchable) matches\n */\n public static async getActiveMatches(\n params: GetActiveMatchesParams,\n ): Promise<GetActiveMatchesResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.getActiveMatches',\n url: 'challenge/active',\n normalizedUrl: 'challenge/active',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<GetActiveMatchesResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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\n return response.body!\n }\n\n /**\n * Get player statistics\n */\n public static async getPlayerStats(\n params: GetPlayerStatsParams,\n ): Promise<PlayerStats> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.getPlayerStats',\n url: 'challenge/stats',\n normalizedUrl: 'challenge/stats',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<PlayerStats>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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\n return response.body!\n }\n\n /**\n * Get waiting matches (matches looking for opponents)\n */\n public static async getWaitingMatches(\n params: GetWaitingMatchesParams,\n ): Promise<GetWaitingMatchesResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.getWaitingMatches',\n url: 'challenge/waiting',\n normalizedUrl: 'challenge/waiting',\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<GetWaitingMatchesResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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\n return response.body!\n }\n\n /**\n * Join a random waiting match\n */\n public static async joinRandomMatch(\n params: JoinRandomMatchParams,\n ): Promise<JoinMatchResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.joinRandomMatch',\n url: 'challenge/join-random',\n normalizedUrl: 'challenge/join-random',\n type: 'post',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<JoinMatchResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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\n return response.body!\n }\n\n /**\n * Cancel/abandon a match (only creator can cancel, and only in waiting state)\n */\n public static async cancelMatch(\n params: CancelMatchParams,\n ): Promise<CancelMatchResponse> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: 'ChallengeService.cancelMatch',\n url: `challenge/match/${params.params.matchId}`,\n normalizedUrl: 'challenge/match/:matchId',\n type: 'delete',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<CancelMatchResponse>({\n ...params,\n base: { id: 'accounts' },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\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\n return response.body!\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { RequestBaseParams } from '../../types/general.types.js';
|
|
2
|
+
export interface Connection {
|
|
3
|
+
id: string;
|
|
4
|
+
name: string;
|
|
5
|
+
strategy: string;
|
|
6
|
+
domain?: string;
|
|
7
|
+
domainAliases?: string[];
|
|
8
|
+
signingCert?: string;
|
|
9
|
+
expires?: string;
|
|
10
|
+
requestTemplate?: string;
|
|
11
|
+
idpinitiated?: {
|
|
12
|
+
enabled: boolean;
|
|
13
|
+
client_id: string;
|
|
14
|
+
};
|
|
15
|
+
metadata?: Record<string, string>;
|
|
16
|
+
}
|
|
17
|
+
export interface GetConnectionsParams extends RequestBaseParams {
|
|
18
|
+
params: {
|
|
19
|
+
strategy: 'waad' | 'samlp' | 'all';
|
|
20
|
+
};
|
|
21
|
+
headers?: {
|
|
22
|
+
'x-camunda-email'?: string;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export declare class ConnectionsService {
|
|
26
|
+
static getConnections(params: GetConnectionsParams): Promise<Connection[]>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { request } from "../../utils/api.js";
|
|
2
|
+
import { HttpError } from "../../utils/errors.js";
|
|
3
|
+
class ConnectionsService {
|
|
4
|
+
static async getConnections(params) {
|
|
5
|
+
const serviceContext = {
|
|
6
|
+
method: {
|
|
7
|
+
name: `ConnectionsService.getConnections`,
|
|
8
|
+
url: `api/connections/${params.params.strategy}`,
|
|
9
|
+
normalizedUrl: `api/connections/:strategy`,
|
|
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
|
+
headers: params.headers
|
|
27
|
+
});
|
|
28
|
+
if (!response.ok) {
|
|
29
|
+
throw new HttpError(
|
|
30
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
31
|
+
response.status,
|
|
32
|
+
response.statusText
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
return response.body ?? [];
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
export {
|
|
39
|
+
ConnectionsService
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=connections.service.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/services/accounts/connections.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 interface Connection {\n id: string\n name: string\n strategy: string\n domain?: string\n domainAliases?: string[]\n signingCert?: string\n expires?: string\n requestTemplate?: string\n idpinitiated?: {\n enabled: boolean\n client_id: string\n }\n metadata?: Record<string, string>\n}\n\nexport interface GetConnectionsParams extends RequestBaseParams {\n params: {\n strategy: 'waad' | 'samlp' | 'all'\n }\n headers?: {\n 'x-camunda-email'?: string\n }\n}\n\nexport class ConnectionsService {\n public static async getConnections(\n params: GetConnectionsParams,\n ): Promise<Connection[]> {\n const serviceContext: RequestBaseServiceContext = {\n method: {\n name: `ConnectionsService.getConnections`,\n url: `api/connections/${params.params.strategy}`,\n normalizedUrl: `api/connections/:strategy`,\n type: 'get',\n },\n source: params.config.metrics?.source || 'unset',\n target: {\n name: 'accounts',\n type: 'internal',\n },\n }\n\n const response = await request<Connection[]>({\n ...params,\n base: {\n id: 'accounts',\n },\n url: serviceContext.method.url,\n method: serviceContext.method.type,\n metricsDetails: serviceContext,\n headers: params.headers,\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\n return response.body ?? []\n }\n}\n"],
|
|
5
|
+
"mappings": "AAUA,SAAS,eAAe;AACxB,SAAS,iBAAiB;AA2BnB,MAAM,mBAAmB;AAAA,EAC9B,aAAoB,eAClB,QACuB;AACvB,UAAM,iBAA4C;AAAA,MAChD,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,KAAK,mBAAmB,OAAO,OAAO,QAAQ;AAAA,QAC9C,eAAe;AAAA,QACf,MAAM;AAAA,MACR;AAAA,MACA,QAAQ,OAAO,OAAO,SAAS,UAAU;AAAA,MACzC,QAAQ;AAAA,QACN,MAAM;AAAA,QACN,MAAM;AAAA,MACR;AAAA,IACF;AAEA,UAAM,WAAW,MAAM,QAAsB;AAAA,MAC3C,GAAG;AAAA,MACH,MAAM;AAAA,QACJ,IAAI;AAAA,MACN;AAAA,MACA,KAAK,eAAe,OAAO;AAAA,MAC3B,QAAQ,eAAe,OAAO;AAAA,MAC9B,gBAAgB;AAAA,MAChB,SAAS,OAAO;AAAA,IAClB,CAAC;AAED,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;AAEA,WAAO,SAAS,QAAQ,CAAC;AAAA,EAC3B;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { EngineeringOperationsDashboardResponse } from '@camunda/ccma-shared-types';
|
|
2
|
+
import type { RequestBaseParams } from '../../types/general.types.js';
|
|
3
|
+
export interface GetEngineeringOperationsDashboardRequest extends RequestBaseParams {
|
|
4
|
+
refreshConfig?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare class DashboardsService {
|
|
7
|
+
static getEngineeringOperationsDashboard(params: GetEngineeringOperationsDashboardRequest): Promise<EngineeringOperationsDashboardResponse>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { request } from "../../utils/api.js";
|
|
2
|
+
import { HttpError } from "../../utils/errors.js";
|
|
3
|
+
class DashboardsService {
|
|
4
|
+
static async getEngineeringOperationsDashboard(params) {
|
|
5
|
+
let queryParams = "";
|
|
6
|
+
if (params.refreshConfig) {
|
|
7
|
+
queryParams = "?refresh=true";
|
|
8
|
+
}
|
|
9
|
+
const serviceContext = {
|
|
10
|
+
method: {
|
|
11
|
+
name: `DashboardsService.getEngineeringOperationsDashboard`,
|
|
12
|
+
url: `api/dashboards/engineering-operations${queryParams}`,
|
|
13
|
+
normalizedUrl: `api/dashboards/engineering-operations`,
|
|
14
|
+
type: "get"
|
|
15
|
+
},
|
|
16
|
+
source: params.config.metrics?.source || "unset",
|
|
17
|
+
target: {
|
|
18
|
+
name: "accounts",
|
|
19
|
+
type: "internal"
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const response = await request({
|
|
23
|
+
...params,
|
|
24
|
+
base: { id: "accounts" },
|
|
25
|
+
url: serviceContext.method.url,
|
|
26
|
+
method: serviceContext.method.type,
|
|
27
|
+
metricsDetails: serviceContext
|
|
28
|
+
});
|
|
29
|
+
if (!response.ok) {
|
|
30
|
+
throw new HttpError(
|
|
31
|
+
`${serviceContext.method.name}: ${response.status} ${response.statusText}`,
|
|
32
|
+
response.status,
|
|
33
|
+
response.statusText
|
|
34
|
+
);
|
|
35
|
+
}
|
|
36
|
+
return response.body;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
export {
|
|
40
|
+
DashboardsService
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=dashboards.service.js.map
|