@stigg/node-server-sdk 0.25.1 → 0.27.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/customerFragments.d.ts +4 -0
- package/dist/api/customerFragments.js +151 -0
- package/dist/api/generated/types.d.ts +200 -19
- package/dist/api/generated/types.js +13 -1
- package/dist/api/managementApi.d.ts +2 -1
- package/dist/api/managementApi.js +24 -1
- package/dist/client.d.ts +12 -1
- package/dist/client.js +23 -1
- package/dist/models.d.ts +119 -1
- package/dist/models.js +23 -6
- package/dist/services/entitlementsService.d.ts +3 -2
- package/dist/services/entitlementsService.js +34 -20
- package/dist/utils/ModelMapper.d.ts +10 -2
- package/dist/utils/ModelMapper.js +128 -27
- package/package.json +1 -1
|
@@ -9,6 +9,7 @@ const ModelMapper_1 = require("../utils/ModelMapper");
|
|
|
9
9
|
const models_1 = require("../models");
|
|
10
10
|
const entitlementDecisionService_1 = require("./entitlementDecisionService");
|
|
11
11
|
const entitlementCheckReportingService_1 = require("./entitlementCheckReportingService");
|
|
12
|
+
const lodash_1 = require("lodash");
|
|
12
13
|
class EntitlementsService {
|
|
13
14
|
constructor(cacheService, client, batchedGraphqlClient, loggerService) {
|
|
14
15
|
this.cacheService = cacheService;
|
|
@@ -39,32 +40,31 @@ class EntitlementsService {
|
|
|
39
40
|
this.modelMapper = new ModelMapper_1.ModelMapper();
|
|
40
41
|
this.entitlementsApi.subscribeEntitlementsChanges(this.onEntitlementsUpdated, this.onUsageUpdated);
|
|
41
42
|
}
|
|
42
|
-
async refetchEntitlements(customerRefId
|
|
43
|
-
let
|
|
43
|
+
async refetchEntitlements(customerRefId) {
|
|
44
|
+
let cachedEntitlements = null;
|
|
44
45
|
let customerExists = false;
|
|
45
46
|
this.loggerService.log(`Customer with id: ${customerRefId} not found in cache`, { customerRefId });
|
|
46
47
|
const entitlements = await this.entitlementsApi.getEntitlements({
|
|
47
48
|
customerId: customerRefId,
|
|
48
49
|
});
|
|
49
|
-
if (entitlements) {
|
|
50
|
-
|
|
50
|
+
if (!(0, lodash_1.isEmpty)(entitlements)) {
|
|
51
|
+
cachedEntitlements = this.modelMapper.mapCachedEntitlements(entitlements);
|
|
51
52
|
this.cacheService.setCustomer(customerRefId, cachedEntitlements);
|
|
52
|
-
entitlement = cachedEntitlements.get(featureRefId) || null;
|
|
53
53
|
customerExists = true;
|
|
54
54
|
}
|
|
55
|
-
return {
|
|
55
|
+
return { entitlements: cachedEntitlements, customerExists };
|
|
56
56
|
}
|
|
57
57
|
async getBooleanEntitlement(customerRefId, featureRefId, fallbackEntitlement, options) {
|
|
58
|
-
var _a;
|
|
58
|
+
var _a, _b;
|
|
59
59
|
let { entitlement, customerExists } = this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId);
|
|
60
60
|
if (!entitlement) {
|
|
61
|
-
const refetchResult = await this.refetchEntitlements(customerRefId
|
|
62
|
-
entitlement = refetchResult.
|
|
61
|
+
const refetchResult = await this.refetchEntitlements(customerRefId);
|
|
62
|
+
entitlement = ((_a = refetchResult.entitlements) === null || _a === void 0 ? void 0 : _a.get(featureRefId)) || null;
|
|
63
63
|
customerExists = refetchResult.customerExists;
|
|
64
64
|
}
|
|
65
65
|
const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(customerExists, entitlement);
|
|
66
66
|
if ((entitlement === null || entitlement === void 0 ? void 0 : entitlement.calculatedEntitlement.feature) &&
|
|
67
|
-
((
|
|
67
|
+
((_b = entitlement.calculatedEntitlement.feature) === null || _b === void 0 ? void 0 : _b.featureType) !== models_1.FeatureType.Boolean) {
|
|
68
68
|
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, this.modelMapper.mapFallbackBooleanEntitlementResult(fallbackEntitlement, decision));
|
|
69
69
|
return fallbackEntitlement;
|
|
70
70
|
}
|
|
@@ -79,16 +79,16 @@ class EntitlementsService {
|
|
|
79
79
|
return this.modelMapper.mapBooleanEntitlement(entitlement, decision);
|
|
80
80
|
}
|
|
81
81
|
async getNumericEntitlement(customerRefId, featureRefId, fallbackEntitlement, options) {
|
|
82
|
-
var _a;
|
|
82
|
+
var _a, _b;
|
|
83
83
|
let { entitlement, customerExists } = this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId);
|
|
84
84
|
if (!entitlement) {
|
|
85
|
-
const refetchResult = await this.refetchEntitlements(customerRefId
|
|
86
|
-
entitlement = refetchResult.
|
|
85
|
+
const refetchResult = await this.refetchEntitlements(customerRefId);
|
|
86
|
+
entitlement = ((_a = refetchResult.entitlements) === null || _a === void 0 ? void 0 : _a.get(featureRefId)) || null;
|
|
87
87
|
customerExists = refetchResult.customerExists;
|
|
88
88
|
}
|
|
89
89
|
const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(customerExists, entitlement);
|
|
90
90
|
if ((entitlement === null || entitlement === void 0 ? void 0 : entitlement.calculatedEntitlement.feature) &&
|
|
91
|
-
((
|
|
91
|
+
((_b = entitlement.calculatedEntitlement.feature) === null || _b === void 0 ? void 0 : _b.featureType) !== models_1.FeatureType.Numeric) {
|
|
92
92
|
const entitlementResult = this.modelMapper.mapFallbackNumericEntitlementResult(fallbackEntitlement, decision);
|
|
93
93
|
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, entitlementResult);
|
|
94
94
|
return fallbackEntitlement;
|
|
@@ -104,17 +104,17 @@ class EntitlementsService {
|
|
|
104
104
|
return this.modelMapper.mapNumericEntitlement(entitlement, decision);
|
|
105
105
|
}
|
|
106
106
|
async getMeteredEntitlement(customerRefId, featureRefId, fallbackEntitlement, options) {
|
|
107
|
-
var _a, _b;
|
|
107
|
+
var _a, _b, _c;
|
|
108
108
|
let { entitlement, customerExists } = this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId);
|
|
109
109
|
if (!entitlement) {
|
|
110
|
-
const refetchResult = await this.refetchEntitlements(customerRefId
|
|
111
|
-
entitlement = refetchResult.
|
|
110
|
+
const refetchResult = await this.refetchEntitlements(customerRefId);
|
|
111
|
+
entitlement = ((_a = refetchResult.entitlements) === null || _a === void 0 ? void 0 : _a.get(featureRefId)) || null;
|
|
112
112
|
customerExists = refetchResult.customerExists;
|
|
113
113
|
}
|
|
114
114
|
const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(customerExists, entitlement, options === null || options === void 0 ? void 0 : options.requestedUsage);
|
|
115
115
|
if ((entitlement === null || entitlement === void 0 ? void 0 : entitlement.calculatedEntitlement.feature) &&
|
|
116
|
-
((
|
|
117
|
-
((
|
|
116
|
+
((_b = entitlement.calculatedEntitlement.feature) === null || _b === void 0 ? void 0 : _b.meterType) !== models_1.MeterType.Fluctuating &&
|
|
117
|
+
((_c = entitlement.calculatedEntitlement.feature) === null || _c === void 0 ? void 0 : _c.meterType) !== models_1.MeterType.Incremental) {
|
|
118
118
|
const entitlementResult = this.modelMapper.mapFallbackMeteredEntitlementResult(fallbackEntitlement, decision, options === null || options === void 0 ? void 0 : options.requestedUsage);
|
|
119
119
|
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, entitlementResult);
|
|
120
120
|
return fallbackEntitlement;
|
|
@@ -129,6 +129,20 @@ class EntitlementsService {
|
|
|
129
129
|
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, entitlementResult);
|
|
130
130
|
return this.modelMapper.mapMeteredEntitlement(entitlement, decision, options === null || options === void 0 ? void 0 : options.requestedUsage);
|
|
131
131
|
}
|
|
132
|
+
async getCustomerEntitlements(customerRefId) {
|
|
133
|
+
const entitlements = this.cacheService.getCustomerEntitlements(customerRefId);
|
|
134
|
+
if (!entitlements) {
|
|
135
|
+
const { customerExists } = await this.refetchEntitlements(customerRefId);
|
|
136
|
+
if (!customerExists) {
|
|
137
|
+
throw new Error(`Customer with id: ${customerRefId} doesn't exist or doesn't have an active subscription`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const cachedEntitlements = this.cacheService.getCustomerEntitlements(customerRefId) || [];
|
|
141
|
+
return Array.from(cachedEntitlements.values()).map((entitlement) => {
|
|
142
|
+
const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(true, entitlement);
|
|
143
|
+
return this.modelMapper.mapEntitlement(entitlement, decision);
|
|
144
|
+
});
|
|
145
|
+
}
|
|
132
146
|
tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId) {
|
|
133
147
|
const customer = this.cacheService.getCustomerEntitlements(customerRefId);
|
|
134
148
|
if (!customer) {
|
|
@@ -142,4 +156,4 @@ class EntitlementsService {
|
|
|
142
156
|
}
|
|
143
157
|
}
|
|
144
158
|
exports.EntitlementsService = EntitlementsService;
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRzU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9lbnRpdGxlbWVudHNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDBGQUFrRTtBQUNsRSxzREFBbUQ7QUFDbkQsc0NBVW1CO0FBQ25CLDZFQUFvRjtBQUlwRix5RkFBc0Y7QUFFdEYsTUFBYSxtQkFBbUI7SUFLOUIsWUFDbUIsWUFBMEIsRUFDM0MsTUFBMkMsRUFDM0Msb0JBQXlELEVBQ3hDLGFBQTRCO1FBSDVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBWXZDLDBCQUFxQixHQUFHLENBQUMsS0FBbUQsRUFBRSxFQUFFO1lBQ3RGLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLG9EQUFvRCxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQzNGLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7aUJBQ3BDLENBQUMsQ0FBQztnQkFDSCxPQUFPO2FBQ1I7WUFFRCxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDM0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUU5RixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUUsQ0FBQyxDQUFDO1FBdUxNLG1CQUFjLEdBQUcsQ0FBQyxJQUEyQyxFQUFFLEVBQUU7WUFDdkUsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElB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
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRzU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9lbnRpdGxlbWVudHNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDBGQUFrRTtBQUNsRSxzREFBbUQ7QUFDbkQsc0NBVW1CO0FBQ25CLDZFQUFvRjtBQUlwRix5RkFBc0Y7QUFDdEYsbUNBQWlDO0FBRWpDLE1BQWEsbUJBQW1CO0lBSzlCLFlBQ21CLFlBQTBCLEVBQzNDLE1BQTJDLEVBQzNDLG9CQUF5RCxFQUN4QyxhQUE0QjtRQUg1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUcxQixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQVl2QywwQkFBcUIsR0FBRyxDQUFDLEtBQW1ELEVBQUUsRUFBRTtZQUN0RixJQUFJLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFO2dCQUMvQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxvREFBb0QsS0FBSyxDQUFDLE1BQU0sRUFBRSxFQUFFO29CQUMzRixLQUFLLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO2lCQUNwQyxDQUFDLENBQUM7Z0JBQ0gsT0FBTzthQUNSO1lBRUQsTUFBTSxtQkFBbUIsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1lBQzNELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMscUJBQXFCLENBQUMsbUJBQW1CLENBQUMsWUFBWSxDQUFDLENBQUM7WUFFOUYsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQzlFLENBQUMsQ0FBQztRQXdNTSxtQkFBYyxHQUFHLENBQUMsSUFBMkMsRUFBRSxFQUFFO1lBQ3ZFLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFD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
|
|
@@ -1,8 +1,9 @@
|
|
|
1
|
-
import { CancelSubscriptionMutation, CreateCustomerMutation, CreateSubscriptionMutation, EntitlementFragment, InitiateCheckoutMutation, FeatureType as ApiFeatureType, EntitlementCheckResult, UpdateOneCustomerMutation } from '../api/generated/types';
|
|
2
|
-
import { BooleanEntitlement, BooleanEntitlementFallback, Checkout, Customer, FeatureType, MeteredEntitlement, MeteredEntitlementFallback, NumericEntitlement, NumericEntitlementFallback, Subscription } from '../models';
|
|
1
|
+
import { CancelSubscriptionMutation, CreateCustomerMutation, CreateSubscriptionMutation, EntitlementFragment, InitiateCheckoutMutation, FeatureType as ApiFeatureType, EntitlementCheckResult, UpdateOneCustomerMutation, CustomerFragment } from '../api/generated/types';
|
|
2
|
+
import { BooleanEntitlement, BooleanEntitlementFallback, Checkout, Customer, FeatureType, FullCustomer, MeteredEntitlement, MeteredEntitlementFallback, NumericEntitlement, NumericEntitlementFallback, Subscription, Entitlement } from '../models';
|
|
3
3
|
import { Decision } from '../services/entitlementDecisionService';
|
|
4
4
|
import CachedEntitlement from '../services/cache/cachedEntitlement';
|
|
5
5
|
declare class ModelMapper {
|
|
6
|
+
mapEntitlement(entitlement: CachedEntitlement, decision: Decision, requestedUsage?: number): Entitlement;
|
|
6
7
|
mapBooleanEntitlement(entitlement: CachedEntitlement, decision: Decision): BooleanEntitlement;
|
|
7
8
|
mapNumericEntitlement(entitlement: CachedEntitlement, decision: Decision): NumericEntitlement;
|
|
8
9
|
mapMeteredEntitlement(entitlement: CachedEntitlement, decision: Decision, requestedUsage?: number): MeteredEntitlement;
|
|
@@ -20,5 +21,12 @@ declare class ModelMapper {
|
|
|
20
21
|
mapSubscription: (graphSubscription: CreateSubscriptionMutation) => Subscription;
|
|
21
22
|
mapCanceledSubscription: (graphSubscription: CancelSubscriptionMutation) => Subscription;
|
|
22
23
|
mapCheckout: (checkout: InitiateCheckoutMutation['initiateCheckout']) => Checkout;
|
|
24
|
+
mapFullCustomer: (customer: CustomerFragment) => FullCustomer;
|
|
25
|
+
private mapPrice;
|
|
26
|
+
private mapPlan;
|
|
27
|
+
private mapPackageEntitlement;
|
|
28
|
+
private mapFullSubscription;
|
|
29
|
+
private mapAddon;
|
|
30
|
+
private mapPromotionalEntitlement;
|
|
23
31
|
}
|
|
24
32
|
export { ModelMapper };
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.ModelMapper = void 0;
|
|
4
4
|
const types_1 = require("../api/generated/types");
|
|
5
5
|
const models_1 = require("../models");
|
|
6
|
+
const lodash_1 = require("lodash");
|
|
6
7
|
class ModelMapper {
|
|
7
8
|
constructor() {
|
|
8
9
|
this.getResetPeriodData = (resetPeriod, resetPeriodConfiguration) => {
|
|
@@ -33,32 +34,6 @@ class ModelMapper {
|
|
|
33
34
|
return models_1.FeatureType.Numeric;
|
|
34
35
|
}
|
|
35
36
|
};
|
|
36
|
-
//
|
|
37
|
-
// mapEntitlementResetPeriod(resetPeriod: ApiEntitlementResetPeriod): EntitlementResetPeriod {
|
|
38
|
-
// switch (resetPeriod) {
|
|
39
|
-
// case ApiEntitlementResetPeriod.Day:
|
|
40
|
-
// return EntitlementResetPeriod.Daily;
|
|
41
|
-
// case ApiEntitlementResetPeriod.Hour:
|
|
42
|
-
// return EntitlementResetPeriod.Hourly;
|
|
43
|
-
// case ApiEntitlementResetPeriod.Week:
|
|
44
|
-
// return EntitlementResetPeriod.Weekly;
|
|
45
|
-
// case ApiEntitlementResetPeriod.Month:
|
|
46
|
-
// return EntitlementResetPeriod.Monthly;
|
|
47
|
-
// }
|
|
48
|
-
// }
|
|
49
|
-
//
|
|
50
|
-
// mapApiEntitlementResetPeriod(resetPeriod: EntitlementResetPeriod): ApiEntitlementResetPeriod {
|
|
51
|
-
// switch (resetPeriod) {
|
|
52
|
-
// case EntitlementResetPeriod.Daily:
|
|
53
|
-
// return ApiEntitlementResetPeriod.Day;
|
|
54
|
-
// case EntitlementResetPeriod.Hourly:
|
|
55
|
-
// return ApiEntitlementResetPeriod.Hour;
|
|
56
|
-
// case EntitlementResetPeriod.Weekly:
|
|
57
|
-
// return ApiEntitlementResetPeriod.Week;
|
|
58
|
-
// case EntitlementResetPeriod.Monthly:
|
|
59
|
-
// return ApiEntitlementResetPeriod.Month;
|
|
60
|
-
// }
|
|
61
|
-
// }
|
|
62
37
|
this.mapCachedEntitlement = (entitlement, currentUsage, nextResetDate) => {
|
|
63
38
|
var _a;
|
|
64
39
|
let feature = undefined;
|
|
@@ -126,6 +101,36 @@ class ModelMapper {
|
|
|
126
101
|
checkoutBillingId: checkout.checkoutBillingId,
|
|
127
102
|
};
|
|
128
103
|
};
|
|
104
|
+
this.mapFullCustomer = (customer) => {
|
|
105
|
+
return new models_1.CustomerModel({
|
|
106
|
+
id: customer.refId,
|
|
107
|
+
name: customer.name || undefined,
|
|
108
|
+
email: customer.email || undefined,
|
|
109
|
+
createdAt: new Date(customer.createdAt),
|
|
110
|
+
updatedAt: new Date(customer.updatedAt),
|
|
111
|
+
hasPaymentMethod: customer.hasPaymentMethod,
|
|
112
|
+
subscriptions: (0, lodash_1.map)(customer.subscriptions, (x) => this.mapFullSubscription(x)),
|
|
113
|
+
promotionalEntitlements: (0, lodash_1.map)(customer.promotionalEntitlements, (x) => this.mapPromotionalEntitlement(x)),
|
|
114
|
+
});
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
mapEntitlement(entitlement, decision, requestedUsage) {
|
|
118
|
+
const { calculatedEntitlement } = entitlement;
|
|
119
|
+
if (!calculatedEntitlement.feature) {
|
|
120
|
+
return this.mapBooleanEntitlement(entitlement, decision);
|
|
121
|
+
}
|
|
122
|
+
const { featureType, meterType } = calculatedEntitlement.feature;
|
|
123
|
+
const isMetered = featureType === models_1.FeatureType.Numeric &&
|
|
124
|
+
(meterType === models_1.MeterType.Incremental || meterType === models_1.MeterType.Fluctuating);
|
|
125
|
+
switch (featureType) {
|
|
126
|
+
case models_1.FeatureType.Boolean:
|
|
127
|
+
return this.mapBooleanEntitlement(entitlement, decision);
|
|
128
|
+
case models_1.FeatureType.Numeric: {
|
|
129
|
+
return isMetered
|
|
130
|
+
? this.mapMeteredEntitlement(entitlement, decision, requestedUsage)
|
|
131
|
+
: this.mapNumericEntitlement(entitlement, decision);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
129
134
|
}
|
|
130
135
|
mapBooleanEntitlement(entitlement, decision) {
|
|
131
136
|
return {
|
|
@@ -215,6 +220,102 @@ class ModelMapper {
|
|
|
215
220
|
requestedUsage,
|
|
216
221
|
};
|
|
217
222
|
}
|
|
223
|
+
mapPrice(pricing) {
|
|
224
|
+
const { feature, price, billingModel, billingPeriod } = pricing;
|
|
225
|
+
const mappedPrice = {
|
|
226
|
+
pricingModel: billingModel,
|
|
227
|
+
billingPeriod,
|
|
228
|
+
amount: price.amount,
|
|
229
|
+
currency: price.currency,
|
|
230
|
+
};
|
|
231
|
+
if (feature) {
|
|
232
|
+
mappedPrice.feature = {
|
|
233
|
+
displayName: feature.displayName,
|
|
234
|
+
units: feature.featureUnits,
|
|
235
|
+
unitsPlural: feature.featureUnitsPlural,
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
return mappedPrice;
|
|
239
|
+
}
|
|
240
|
+
mapPlan(plan, order = 0) {
|
|
241
|
+
var _a, _b;
|
|
242
|
+
return {
|
|
243
|
+
id: plan.refId,
|
|
244
|
+
order,
|
|
245
|
+
displayName: plan.displayName,
|
|
246
|
+
description: plan.description,
|
|
247
|
+
basePlan: plan.basePlan ? { id: plan.basePlan.refId, displayName: plan.basePlan.displayName } : undefined,
|
|
248
|
+
entitlements: (0, lodash_1.map)((0, lodash_1.sortBy)(plan.entitlements, (packageEntitlement) => packageEntitlement.feature.refId), (entitlement) => this.mapPackageEntitlement(entitlement)),
|
|
249
|
+
inheritedEntitlements: (0, lodash_1.map)((0, lodash_1.sortBy)(plan.inheritedEntitlements, (packageEntitlement) => packageEntitlement.feature.refId), (entitlement) => this.mapPackageEntitlement(entitlement)),
|
|
250
|
+
pricePoints: (0, lodash_1.map)(plan.prices, (price) => this.mapPrice(price)),
|
|
251
|
+
defaultTrialConfig: plan.defaultTrialConfig,
|
|
252
|
+
compatibleAddons: (_b = (_a = plan.compatibleAddons) === null || _a === void 0 ? void 0 : _a.map((compatibleAddon) => this.mapAddon(compatibleAddon))) !== null && _b !== void 0 ? _b : [],
|
|
253
|
+
product: { id: plan.product.refId, displayName: plan.product.displayName },
|
|
254
|
+
};
|
|
255
|
+
}
|
|
256
|
+
mapPackageEntitlement(entitlement) {
|
|
257
|
+
const { feature } = entitlement;
|
|
258
|
+
return {
|
|
259
|
+
usageLimit: entitlement.usageLimit || 0,
|
|
260
|
+
feature: {
|
|
261
|
+
id: feature.refId,
|
|
262
|
+
featureType: this.mapFeatureType(feature.featureType),
|
|
263
|
+
description: feature.description || '',
|
|
264
|
+
meterType: feature.meterType || undefined,
|
|
265
|
+
units: feature.featureUnits || undefined,
|
|
266
|
+
unitsPlural: feature.featureUnitsPlural || undefined,
|
|
267
|
+
displayName: feature.displayName,
|
|
268
|
+
isMetered: feature.meterType === models_1.MeterType.Fluctuating || feature.meterType === models_1.MeterType.Incremental,
|
|
269
|
+
},
|
|
270
|
+
hasUnlimitedUsage: entitlement.hasUnlimitedUsage,
|
|
271
|
+
resetPeriod: entitlement.resetPeriod,
|
|
272
|
+
};
|
|
273
|
+
}
|
|
274
|
+
mapFullSubscription(subscription) {
|
|
275
|
+
var _a;
|
|
276
|
+
const [planPrice] = subscription.prices || [];
|
|
277
|
+
return {
|
|
278
|
+
id: subscription.refId,
|
|
279
|
+
status: subscription.status,
|
|
280
|
+
plan: this.mapPlan(subscription.plan),
|
|
281
|
+
price: planPrice ? this.mapPrice(planPrice.price) : null,
|
|
282
|
+
addons: ((_a = subscription.addons) === null || _a === void 0 ? void 0 : _a.map(({ quantity, addon }) => ({
|
|
283
|
+
quantity: quantity,
|
|
284
|
+
addon: this.mapAddon(addon),
|
|
285
|
+
}))) || [],
|
|
286
|
+
startDate: new Date(subscription.startDate),
|
|
287
|
+
endDate: subscription.endDate && new Date(subscription.endDate),
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
mapAddon(addon) {
|
|
291
|
+
return {
|
|
292
|
+
id: addon.refId,
|
|
293
|
+
displayName: addon.displayName,
|
|
294
|
+
description: addon.description || '',
|
|
295
|
+
entitlements: (0, lodash_1.map)(addon.entitlements, (x) => this.mapPackageEntitlement(x)),
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
mapPromotionalEntitlement(entitlement) {
|
|
299
|
+
const { feature } = entitlement;
|
|
300
|
+
return {
|
|
301
|
+
status: entitlement.status,
|
|
302
|
+
usageLimit: entitlement.usageLimit || 0,
|
|
303
|
+
feature: {
|
|
304
|
+
id: feature.refId,
|
|
305
|
+
displayName: feature.displayName,
|
|
306
|
+
description: feature.description || '',
|
|
307
|
+
featureType: this.mapFeatureType(feature.featureType),
|
|
308
|
+
meterType: feature.meterType || undefined,
|
|
309
|
+
units: feature.featureUnits || undefined,
|
|
310
|
+
unitsPlural: feature.featureUnitsPlural || undefined,
|
|
311
|
+
isMetered: feature.meterType === models_1.MeterType.Fluctuating || feature.meterType === models_1.MeterType.Incremental,
|
|
312
|
+
},
|
|
313
|
+
hasUnlimitedUsage: entitlement.hasUnlimitedUsage,
|
|
314
|
+
expiresAt: entitlement.endDate,
|
|
315
|
+
hasExpirationDate: !!entitlement.endDate,
|
|
316
|
+
isVisible: entitlement.isVisible,
|
|
317
|
+
};
|
|
318
|
+
}
|
|
218
319
|
}
|
|
219
320
|
exports.ModelMapper = ModelMapper;
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxNYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvTW9kZWxNYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBa0JnQztBQUNoQyxzQ0FZbUI7QUFJbkIsTUFBTSxXQUFXO0lBQWpCO1FBOEhVLHVCQUFrQixHQUFHLENBQzNCLFdBQTJDLEVBQzNDLHdCQUFrRSxFQUlsRSxFQUFFO1lBQ0YsUUFBUSxXQUFXLEVBQUU7Z0JBQ25CLEtBQUssOEJBQXNCLENBQUMsS0FBSztvQkFDL0IsTUFBTSxhQUFhLEdBQUcsd0JBQTRELENBQUM7b0JBQ25GLE9BQU87d0JBQ0wsK0JBQStCLEVBQUU7NEJBQy9CLFdBQVcsRUFBRSxhQUFhLENBQUMsa0JBQWtCLElBQUksMEJBQWtCLENBQUMsaUJBQWlCO3lCQUN0RjtxQkFDRixDQUFDO2dCQUNKLEtBQUssOEJBQXNCLENBQUMsSUFBSTtvQkFDOUIsTUFBTSxZQUFZLEdBQUcsd0JBQTJELENBQUM7b0JBQ2pGLE9BQU87d0JBQ0wsOEJBQThCLEVBQUU7NEJBQzlCLFdBQVcsRUFBRSxZQUFZLENBQUMsaUJBQWlCLElBQUkseUJBQWlCLENBQUMsV0FBVzt5QkFDN0U7cUJBQ0YsQ0FBQztnQkFDSjtvQkFDRSxPQUFPLEVBQUUsQ0FBQzthQUNiO1FBQ0gsQ0FBQyxDQUFDO1FBa0JGLG1CQUFjLEdBQUcsQ0FBQyxXQUEyQixFQUFlLEVBQUU7WUFDNUQsUUFBUSxXQUFXLEVBQUU7Z0JBQ25CLEtBQUssbUJBQWMsQ0FBQyxPQUFPO29CQUN6QixPQUFPLG9CQUFXLENBQUMsT0FBTyxDQUFDO2dCQUM3QixLQUFLLG1CQUFjLENBQUMsTUFBTTtvQkFDeEIsT0FBTyxvQkFBVyxDQUFDLE9BQU8sQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQztRQUNGLEVBQUU7UUFDRiw4RkFBOEY7UUFDOUYsMkJBQTJCO1FBQzNCLDBDQUEwQztRQUMxQyw2Q0FBNkM7UUFDN0MsMkNB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
|
|
321
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxNYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvTW9kZWxNYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBeUJnQztBQUNoQyxzQ0FzQm1CO0FBR25CLG1DQUFxQztBQUVyQyxNQUFNLFdBQVc7SUFBakI7UUFtSlUsdUJBQWtCLEdBQUcsQ0FDM0IsV0FBMkMsRUFDM0Msd0JBQWtFLEVBSWxFLEVBQUU7WUFDRixRQUFRLFdBQVcsRUFBRTtnQkFDbkIsS0FBSyw4QkFBc0IsQ0FBQyxLQUFLO29CQUMvQixNQUFNLGFBQWEsR0FBRyx3QkFBNEQsQ0FBQztvQkFDbkYsT0FBTzt3QkFDTCwrQkFBK0IsRUFBRTs0QkFDL0IsV0FBVyxFQUFFLGFBQWEsQ0FBQyxrQkFBa0IsSUFBSSwwQkFBa0IsQ0FBQyxpQkFBaUI7eUJBQ3RGO3FCQUNGLENBQUM7Z0JBQ0osS0FBSyw4QkFBc0IsQ0FBQyxJQUFJO29CQUM5QixNQUFNLFlBQVksR0FBRyx3QkFBMkQsQ0FBQztvQkFDakYsT0FBTzt3QkFDTCw4QkFBOEIsRUFBRTs0QkFDOUIsV0FBVyxFQUFFLFlBQVksQ0FBQyxpQkFBaUIsSUFBSSx5QkFBaUIsQ0FBQyxXQUFXO3lCQUM3RTtxQkFDRixDQUFDO2dCQUNKO29CQUNFLE9BQU8sRUFBRSxDQUFDO2FBQ2I7UUFDSCxDQUFDLENBQUM7UUFrQkYsbUJBQWMsR0FBRyxDQUFDLFdBQTJCLEVBQWUsRUFBRTtZQUM1RCxRQUFRLFdBQVcsRUFBRTtnQkFDbkIsS0FBSyxtQkFBYyxDQUFDLE9BQU87b0JBQ3pCLE9BQU8sb0JBQVcsQ0FBQyxPQUFPLENBQUM7Z0JBQzdCLEtBQUssbUJBQWMsQ0FBQyxNQUFNO29CQUN4QixPQUFPLG9CQUFXLENBQUMsT0FBTyxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDO1FBRUYseUJBQW9CLEdBQUcsQ0FDckIsV0FBZ0MsRUFDaEMsWUFBcUIsRUFDckIsYUFBNkIsRUFD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
|