@camunda/ccma-api 0.0.1

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.
Files changed (199) hide show
  1. package/dist/index.d.ts +97 -0
  2. package/dist/index.js +153 -0
  3. package/dist/index.js.map +7 -0
  4. package/dist/services/accounts/accounts.data-export.service.d.ts +13 -0
  5. package/dist/services/accounts/accounts.data-export.service.js +41 -0
  6. package/dist/services/accounts/accounts.data-export.service.js.map +7 -0
  7. package/dist/services/accounts/accounts.valuemetrics.service.d.ts +8 -0
  8. package/dist/services/accounts/accounts.valuemetrics.service.js +1 -0
  9. package/dist/services/accounts/accounts.valuemetrics.service.js.map +7 -0
  10. package/dist/services/accounts/bot.service.d.ts +21 -0
  11. package/dist/services/accounts/bot.service.js +74 -0
  12. package/dist/services/accounts/bot.service.js.map +7 -0
  13. package/dist/services/accounts/challenge.service.d.ts +296 -0
  14. package/dist/services/accounts/challenge.service.js +475 -0
  15. package/dist/services/accounts/challenge.service.js.map +7 -0
  16. package/dist/services/accounts/connections.service.d.ts +27 -0
  17. package/dist/services/accounts/connections.service.js +41 -0
  18. package/dist/services/accounts/connections.service.js.map +7 -0
  19. package/dist/services/accounts/dashboards.service.d.ts +8 -0
  20. package/dist/services/accounts/dashboards.service.js +42 -0
  21. package/dist/services/accounts/dashboards.service.js.map +7 -0
  22. package/dist/services/accounts/early-access-features.service.d.ts +34 -0
  23. package/dist/services/accounts/early-access-features.service.js +67 -0
  24. package/dist/services/accounts/early-access-features.service.js.map +7 -0
  25. package/dist/services/accounts/genericCache.service.d.ts +13 -0
  26. package/dist/services/accounts/genericCache.service.js +80 -0
  27. package/dist/services/accounts/genericCache.service.js.map +7 -0
  28. package/dist/services/accounts/hdp.service.d.ts +52 -0
  29. package/dist/services/accounts/hdp.service.js +180 -0
  30. package/dist/services/accounts/hdp.service.js.map +7 -0
  31. package/dist/services/accounts/offboarding.service.d.ts +18 -0
  32. package/dist/services/accounts/offboarding.service.js +48 -0
  33. package/dist/services/accounts/offboarding.service.js.map +7 -0
  34. package/dist/services/accounts/organization-members.service.d.ts +68 -0
  35. package/dist/services/accounts/organization-members.service.js +216 -0
  36. package/dist/services/accounts/organization-members.service.js.map +7 -0
  37. package/dist/services/accounts/orgs.service.d.ts +273 -0
  38. package/dist/services/accounts/orgs.service.js +978 -0
  39. package/dist/services/accounts/orgs.service.js.map +7 -0
  40. package/dist/services/accounts/salesplan.service.d.ts +7 -0
  41. package/dist/services/accounts/salesplan.service.js +40 -0
  42. package/dist/services/accounts/salesplan.service.js.map +7 -0
  43. package/dist/services/accounts/spam-detection.service.d.ts +8 -0
  44. package/dist/services/accounts/spam-detection.service.js +72 -0
  45. package/dist/services/accounts/spam-detection.service.js.map +7 -0
  46. package/dist/services/accounts/stats.service.d.ts +7 -0
  47. package/dist/services/accounts/stats.service.js +40 -0
  48. package/dist/services/accounts/stats.service.js.map +7 -0
  49. package/dist/services/accounts/teams.service.d.ts +85 -0
  50. package/dist/services/accounts/teams.service.js +516 -0
  51. package/dist/services/accounts/teams.service.js.map +7 -0
  52. package/dist/services/accounts/usage-alerts.service.d.ts +34 -0
  53. package/dist/services/accounts/usage-alerts.service.js +112 -0
  54. package/dist/services/accounts/usage-alerts.service.js.map +7 -0
  55. package/dist/services/accounts/users.service.d.ts +101 -0
  56. package/dist/services/accounts/users.service.js +444 -0
  57. package/dist/services/accounts/users.service.js.map +7 -0
  58. package/dist/services/alerts/alerts.service.d.ts +59 -0
  59. package/dist/services/alerts/alerts.service.js +234 -0
  60. package/dist/services/alerts/alerts.service.js.map +7 -0
  61. package/dist/services/analytic-bridge/analytic-bridge.service.d.ts +23 -0
  62. package/dist/services/analytic-bridge/analytic-bridge.service.js +86 -0
  63. package/dist/services/analytic-bridge/analytic-bridge.service.js.map +7 -0
  64. package/dist/services/audit-logger/audit-logger.service.d.ts +27 -0
  65. package/dist/services/audit-logger/audit-logger.service.js +108 -0
  66. package/dist/services/audit-logger/audit-logger.service.js.map +7 -0
  67. package/dist/services/auth0/auth0.service.d.ts +15 -0
  68. package/dist/services/auth0/auth0.service.js +40 -0
  69. package/dist/services/auth0/auth0.service.js.map +7 -0
  70. package/dist/services/comm-bridge/comm-bridge.service.d.ts +33 -0
  71. package/dist/services/comm-bridge/comm-bridge.service.js +40 -0
  72. package/dist/services/comm-bridge/comm-bridge.service.js.map +7 -0
  73. package/dist/services/console/console.admin.service.d.ts +328 -0
  74. package/dist/services/console/console.admin.service.js +1526 -0
  75. package/dist/services/console/console.admin.service.js.map +7 -0
  76. package/dist/services/console/console.alerts.service.d.ts +69 -0
  77. package/dist/services/console/console.alerts.service.js +160 -0
  78. package/dist/services/console/console.alerts.service.js.map +7 -0
  79. package/dist/services/console/console.api-clients.service.d.ts +48 -0
  80. package/dist/services/console/console.api-clients.service.js +123 -0
  81. package/dist/services/console/console.api-clients.service.js.map +7 -0
  82. package/dist/services/console/console.backup-schedule.service.d.ts +21 -0
  83. package/dist/services/console/console.backup-schedule.service.js +67 -0
  84. package/dist/services/console/console.backup-schedule.service.js.map +7 -0
  85. package/dist/services/console/console.byok-scripts.service.d.ts +12 -0
  86. package/dist/services/console/console.byok-scripts.service.js +92 -0
  87. package/dist/services/console/console.byok-scripts.service.js.map +7 -0
  88. package/dist/services/console/console.byom-monitoring.service.d.ts +58 -0
  89. package/dist/services/console/console.byom-monitoring.service.js +177 -0
  90. package/dist/services/console/console.byom-monitoring.service.js.map +7 -0
  91. package/dist/services/console/console.cluster-clients.service.d.ts +55 -0
  92. package/dist/services/console/console.cluster-clients.service.js +123 -0
  93. package/dist/services/console/console.cluster-clients.service.js.map +7 -0
  94. package/dist/services/console/console.cluster-parameters.service.d.ts +64 -0
  95. package/dist/services/console/console.cluster-parameters.service.js +39 -0
  96. package/dist/services/console/console.cluster-parameters.service.js.map +7 -0
  97. package/dist/services/console/console.cluster.service.d.ts +114 -0
  98. package/dist/services/console/console.cluster.service.js +271 -0
  99. package/dist/services/console/console.cluster.service.js.map +7 -0
  100. package/dist/services/console/console.clusterBulkOperation.service.d.ts +20 -0
  101. package/dist/services/console/console.clusterBulkOperation.service.js +199 -0
  102. package/dist/services/console/console.clusterBulkOperation.service.js.map +7 -0
  103. package/dist/services/console/console.clusterplan.modification.service.d.ts +33 -0
  104. package/dist/services/console/console.clusterplan.modification.service.js +231 -0
  105. package/dist/services/console/console.clusterplan.modification.service.js.map +7 -0
  106. package/dist/services/console/console.clusterplan.service.d.ts +21 -0
  107. package/dist/services/console/console.clusterplan.service.js +64 -0
  108. package/dist/services/console/console.clusterplan.service.js.map +7 -0
  109. package/dist/services/console/console.connector-secrets.service.d.ts +30 -0
  110. package/dist/services/console/console.connector-secrets.service.js +125 -0
  111. package/dist/services/console/console.connector-secrets.service.js.map +7 -0
  112. package/dist/services/console/console.custommetrics.service.d.ts +10 -0
  113. package/dist/services/console/console.custommetrics.service.js +43 -0
  114. package/dist/services/console/console.custommetrics.service.js.map +7 -0
  115. package/dist/services/console/console.hotbackups.service.d.ts +34 -0
  116. package/dist/services/console/console.hotbackups.service.js +120 -0
  117. package/dist/services/console/console.hotbackups.service.js.map +7 -0
  118. package/dist/services/console/console.ip-whitelist.service.d.ts +15 -0
  119. package/dist/services/console/console.ip-whitelist.service.js +36 -0
  120. package/dist/services/console/console.ip-whitelist.service.js.map +7 -0
  121. package/dist/services/console/console.jobs.saas.service.d.ts +70 -0
  122. package/dist/services/console/console.jobs.saas.service.js +139 -0
  123. package/dist/services/console/console.jobs.saas.service.js.map +7 -0
  124. package/dist/services/console/console.jobs.sm.service.d.ts +57 -0
  125. package/dist/services/console/console.jobs.sm.service.js +208 -0
  126. package/dist/services/console/console.jobs.sm.service.js.map +7 -0
  127. package/dist/services/console/console.m2m.service.d.ts +23 -0
  128. package/dist/services/console/console.m2m.service.js +94 -0
  129. package/dist/services/console/console.m2m.service.js.map +7 -0
  130. package/dist/services/console/console.secure-connectivity.service.d.ts +41 -0
  131. package/dist/services/console/console.secure-connectivity.service.js +129 -0
  132. package/dist/services/console/console.secure-connectivity.service.js.map +7 -0
  133. package/dist/services/console/console.valuemetrics.service.d.ts +17 -0
  134. package/dist/services/console/console.valuemetrics.service.js +110 -0
  135. package/dist/services/console/console.valuemetrics.service.js.map +7 -0
  136. package/dist/services/console/generation.service.d.ts +21 -0
  137. package/dist/services/console/generation.service.js +106 -0
  138. package/dist/services/console/generation.service.js.map +7 -0
  139. package/dist/services/github/github.service.d.ts +73 -0
  140. package/dist/services/github/github.service.js +272 -0
  141. package/dist/services/github/github.service.js.map +7 -0
  142. package/dist/services/hibob/hibob.service.d.ts +74 -0
  143. package/dist/services/hibob/hibob.service.js +125 -0
  144. package/dist/services/hibob/hibob.service.js.map +7 -0
  145. package/dist/services/hubspot/hubspot.service.d.ts +50 -0
  146. package/dist/services/hubspot/hubspot.service.js +119 -0
  147. package/dist/services/hubspot/hubspot.service.js.map +7 -0
  148. package/dist/services/litellm/litellm.service.d.ts +290 -0
  149. package/dist/services/litellm/litellm.service.js +392 -0
  150. package/dist/services/litellm/litellm.service.js.map +7 -0
  151. package/dist/services/login/login.service.d.ts +15 -0
  152. package/dist/services/login/login.service.js +66 -0
  153. package/dist/services/login/login.service.js.map +7 -0
  154. package/dist/services/mixpanel/mixpanel.service.d.ts +16 -0
  155. package/dist/services/mixpanel/mixpanel.service.js +86 -0
  156. package/dist/services/mixpanel/mixpanel.service.js.map +7 -0
  157. package/dist/services/notifications/notifications.service.d.ts +7 -0
  158. package/dist/services/notifications/notifications.service.js +38 -0
  159. package/dist/services/notifications/notifications.service.js.map +7 -0
  160. package/dist/services/slack/slack-blockkit.service.d.ts +28 -0
  161. package/dist/services/slack/slack-blockkit.service.js +45 -0
  162. package/dist/services/slack/slack-blockkit.service.js.map +7 -0
  163. package/dist/services/slack/slack.service.d.ts +31 -0
  164. package/dist/services/slack/slack.service.js +118 -0
  165. package/dist/services/slack/slack.service.js.map +7 -0
  166. package/dist/services/telemetry/telemetry.service.d.ts +16 -0
  167. package/dist/services/telemetry/telemetry.service.js +85 -0
  168. package/dist/services/telemetry/telemetry.service.js.map +7 -0
  169. package/dist/services/token-issuer/token-issuer.jwks.service.d.ts +13 -0
  170. package/dist/services/token-issuer/token-issuer.jwks.service.js +76 -0
  171. package/dist/services/token-issuer/token-issuer.jwks.service.js.map +7 -0
  172. package/dist/services/wordpress/wordpress.service.d.ts +15 -0
  173. package/dist/services/wordpress/wordpress.service.js +111 -0
  174. package/dist/services/wordpress/wordpress.service.js.map +7 -0
  175. package/dist/types/general.types.d.ts +61 -0
  176. package/dist/types/general.types.js +1 -0
  177. package/dist/types/general.types.js.map +7 -0
  178. package/dist/utils/api.d.ts +31 -0
  179. package/dist/utils/api.js +400 -0
  180. package/dist/utils/api.js.map +7 -0
  181. package/dist/utils/cache.d.ts +7 -0
  182. package/dist/utils/cache.js +25 -0
  183. package/dist/utils/cache.js.map +7 -0
  184. package/dist/utils/ccma-metrics.d.ts +18 -0
  185. package/dist/utils/ccma-metrics.js +37 -0
  186. package/dist/utils/ccma-metrics.js.map +7 -0
  187. package/dist/utils/environments.d.ts +11 -0
  188. package/dist/utils/environments.js +148 -0
  189. package/dist/utils/environments.js.map +7 -0
  190. package/dist/utils/errors.d.ts +5 -0
  191. package/dist/utils/errors.js +11 -0
  192. package/dist/utils/errors.js.map +7 -0
  193. package/dist/utils/frontendCache.d.ts +26 -0
  194. package/dist/utils/frontendCache.js +121 -0
  195. package/dist/utils/frontendCache.js.map +7 -0
  196. package/dist/utils/token-issuer.utils.d.ts +8 -0
  197. package/dist/utils/token-issuer.utils.js +19 -0
  198. package/dist/utils/token-issuer.utils.js.map +7 -0
  199. package/package.json +57 -0
@@ -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