@progus/connector 0.6.4 → 0.6.5
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.cjs +70 -4
- package/dist/index.js +70 -4
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -368,6 +368,42 @@ var ACTIVE_SUBSCRIPTIONS_QUERY = `
|
|
|
368
368
|
amount
|
|
369
369
|
}
|
|
370
370
|
}
|
|
371
|
+
... on AppUsagePricing {
|
|
372
|
+
cappedAmount {
|
|
373
|
+
amount
|
|
374
|
+
}
|
|
375
|
+
terms
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
`;
|
|
384
|
+
var SUBSCRIPTION_DETAILS_QUERY = `
|
|
385
|
+
query AppSubscriptionDetails($id: ID!) {
|
|
386
|
+
node(id: $id) {
|
|
387
|
+
... on AppSubscription {
|
|
388
|
+
id
|
|
389
|
+
name
|
|
390
|
+
status
|
|
391
|
+
lineItems {
|
|
392
|
+
plan {
|
|
393
|
+
pricingDetails {
|
|
394
|
+
__typename
|
|
395
|
+
... on AppRecurringPricing {
|
|
396
|
+
interval
|
|
397
|
+
price {
|
|
398
|
+
amount
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
... on AppUsagePricing {
|
|
402
|
+
cappedAmount {
|
|
403
|
+
amount
|
|
404
|
+
}
|
|
405
|
+
terms
|
|
406
|
+
}
|
|
371
407
|
}
|
|
372
408
|
}
|
|
373
409
|
}
|
|
@@ -396,6 +432,13 @@ function parsePrice(rawPrice) {
|
|
|
396
432
|
}
|
|
397
433
|
return null;
|
|
398
434
|
}
|
|
435
|
+
function extractPricing(subscription) {
|
|
436
|
+
const pricingDetails = subscription?.lineItems?.[0]?.plan?.pricingDetails;
|
|
437
|
+
const rawPrice = pricingDetails?.price?.amount ?? pricingDetails?.cappedAmount?.amount;
|
|
438
|
+
const subscriptionPrice = parsePrice(rawPrice);
|
|
439
|
+
const subscriptionPeriod = normalizeInterval(pricingDetails?.interval, subscription?.name);
|
|
440
|
+
return { subscriptionPrice, subscriptionPeriod };
|
|
441
|
+
}
|
|
399
442
|
async function fetchActiveSubscriptionEventData(admin, logger = console) {
|
|
400
443
|
const response = await admin.graphql(ACTIVE_SUBSCRIPTIONS_QUERY);
|
|
401
444
|
const result = await response.json();
|
|
@@ -406,10 +449,33 @@ async function fetchActiveSubscriptionEventData(admin, logger = console) {
|
|
|
406
449
|
const active = subscriptions.find((sub) => String(sub.status ?? "").toUpperCase() === "ACTIVE") ?? subscriptions[0];
|
|
407
450
|
const subscriptionId = parseSubscriptionId(active?.id);
|
|
408
451
|
if (!subscriptionId) return null;
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
452
|
+
let { subscriptionPrice, subscriptionPeriod } = extractPricing(active);
|
|
453
|
+
if (!subscriptionPeriod || subscriptionPrice === null) {
|
|
454
|
+
try {
|
|
455
|
+
const detailsResponse = await admin.graphql(SUBSCRIPTION_DETAILS_QUERY, {
|
|
456
|
+
variables: { id: active?.id }
|
|
457
|
+
});
|
|
458
|
+
const detailsJson = await detailsResponse.json();
|
|
459
|
+
if (detailsJson.errors?.length) {
|
|
460
|
+
logger.error?.("Partner subscription details query errors", { errors: detailsJson.errors });
|
|
461
|
+
}
|
|
462
|
+
const details = detailsJson.data?.node;
|
|
463
|
+
({ subscriptionPrice, subscriptionPeriod } = extractPricing(details));
|
|
464
|
+
if (!subscriptionPeriod || subscriptionPrice === null) return null;
|
|
465
|
+
return {
|
|
466
|
+
subscriptionStatus: details?.status ?? active?.status ?? "ACTIVE",
|
|
467
|
+
subscriptionName: details?.name ?? active?.name,
|
|
468
|
+
subscriptionId,
|
|
469
|
+
subscriptionPrice,
|
|
470
|
+
subscriptionPeriod
|
|
471
|
+
};
|
|
472
|
+
} catch (error) {
|
|
473
|
+
logger.error?.("Partner subscription details query failed", {
|
|
474
|
+
error: error instanceof Error ? error.message : String(error)
|
|
475
|
+
});
|
|
476
|
+
return null;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
413
479
|
if (!subscriptionPeriod || subscriptionPrice === null) return null;
|
|
414
480
|
return {
|
|
415
481
|
subscriptionStatus: active?.status ?? "ACTIVE",
|
package/dist/index.js
CHANGED
|
@@ -226,6 +226,42 @@ var ACTIVE_SUBSCRIPTIONS_QUERY = `
|
|
|
226
226
|
amount
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
|
+
... on AppUsagePricing {
|
|
230
|
+
cappedAmount {
|
|
231
|
+
amount
|
|
232
|
+
}
|
|
233
|
+
terms
|
|
234
|
+
}
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
`;
|
|
242
|
+
var SUBSCRIPTION_DETAILS_QUERY = `
|
|
243
|
+
query AppSubscriptionDetails($id: ID!) {
|
|
244
|
+
node(id: $id) {
|
|
245
|
+
... on AppSubscription {
|
|
246
|
+
id
|
|
247
|
+
name
|
|
248
|
+
status
|
|
249
|
+
lineItems {
|
|
250
|
+
plan {
|
|
251
|
+
pricingDetails {
|
|
252
|
+
__typename
|
|
253
|
+
... on AppRecurringPricing {
|
|
254
|
+
interval
|
|
255
|
+
price {
|
|
256
|
+
amount
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
... on AppUsagePricing {
|
|
260
|
+
cappedAmount {
|
|
261
|
+
amount
|
|
262
|
+
}
|
|
263
|
+
terms
|
|
264
|
+
}
|
|
229
265
|
}
|
|
230
266
|
}
|
|
231
267
|
}
|
|
@@ -254,6 +290,13 @@ function parsePrice(rawPrice) {
|
|
|
254
290
|
}
|
|
255
291
|
return null;
|
|
256
292
|
}
|
|
293
|
+
function extractPricing(subscription) {
|
|
294
|
+
const pricingDetails = subscription?.lineItems?.[0]?.plan?.pricingDetails;
|
|
295
|
+
const rawPrice = pricingDetails?.price?.amount ?? pricingDetails?.cappedAmount?.amount;
|
|
296
|
+
const subscriptionPrice = parsePrice(rawPrice);
|
|
297
|
+
const subscriptionPeriod = normalizeInterval(pricingDetails?.interval, subscription?.name);
|
|
298
|
+
return { subscriptionPrice, subscriptionPeriod };
|
|
299
|
+
}
|
|
257
300
|
async function fetchActiveSubscriptionEventData(admin, logger = console) {
|
|
258
301
|
const response = await admin.graphql(ACTIVE_SUBSCRIPTIONS_QUERY);
|
|
259
302
|
const result = await response.json();
|
|
@@ -264,10 +307,33 @@ async function fetchActiveSubscriptionEventData(admin, logger = console) {
|
|
|
264
307
|
const active = subscriptions.find((sub) => String(sub.status ?? "").toUpperCase() === "ACTIVE") ?? subscriptions[0];
|
|
265
308
|
const subscriptionId = parseSubscriptionId(active?.id);
|
|
266
309
|
if (!subscriptionId) return null;
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
310
|
+
let { subscriptionPrice, subscriptionPeriod } = extractPricing(active);
|
|
311
|
+
if (!subscriptionPeriod || subscriptionPrice === null) {
|
|
312
|
+
try {
|
|
313
|
+
const detailsResponse = await admin.graphql(SUBSCRIPTION_DETAILS_QUERY, {
|
|
314
|
+
variables: { id: active?.id }
|
|
315
|
+
});
|
|
316
|
+
const detailsJson = await detailsResponse.json();
|
|
317
|
+
if (detailsJson.errors?.length) {
|
|
318
|
+
logger.error?.("Partner subscription details query errors", { errors: detailsJson.errors });
|
|
319
|
+
}
|
|
320
|
+
const details = detailsJson.data?.node;
|
|
321
|
+
({ subscriptionPrice, subscriptionPeriod } = extractPricing(details));
|
|
322
|
+
if (!subscriptionPeriod || subscriptionPrice === null) return null;
|
|
323
|
+
return {
|
|
324
|
+
subscriptionStatus: details?.status ?? active?.status ?? "ACTIVE",
|
|
325
|
+
subscriptionName: details?.name ?? active?.name,
|
|
326
|
+
subscriptionId,
|
|
327
|
+
subscriptionPrice,
|
|
328
|
+
subscriptionPeriod
|
|
329
|
+
};
|
|
330
|
+
} catch (error) {
|
|
331
|
+
logger.error?.("Partner subscription details query failed", {
|
|
332
|
+
error: error instanceof Error ? error.message : String(error)
|
|
333
|
+
});
|
|
334
|
+
return null;
|
|
335
|
+
}
|
|
336
|
+
}
|
|
271
337
|
if (!subscriptionPeriod || subscriptionPrice === null) return null;
|
|
272
338
|
return {
|
|
273
339
|
subscriptionStatus: active?.status ?? "ACTIVE",
|