@stigg/node-server-sdk 0.22.1 → 0.23.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/entitlements/entitlementsApi.d.ts +2 -1
- package/dist/api/entitlements/entitlementsApi.js +18 -1
- package/dist/api/entitlements/entitlementsGql.js +20 -1
- package/dist/api/generated/types.d.ts +154 -4
- package/dist/api/generated/types.js +39 -2
- package/dist/api/initApolloClient.d.ts +2 -1
- package/dist/api/initApolloClient.js +30 -3
- package/dist/api/managementApi.js +1 -3
- package/dist/client.d.ts +2 -0
- package/dist/client.js +38 -12
- package/dist/models.d.ts +2 -5
- package/dist/services/cache/cachedEntitlement.d.ts +3 -0
- package/dist/services/cache/cachedEntitlement.js +1 -1
- package/dist/services/entitlementCheckReportingService.d.ts +9 -0
- package/dist/services/entitlementCheckReportingService.js +18 -0
- package/dist/services/entitlementsService.d.ts +5 -4
- package/dist/services/entitlementsService.js +34 -19
- package/dist/services/loggerService.d.ts +2 -0
- package/dist/services/loggerService.js +6 -1
- package/dist/utils/ModelMapper.d.ts +8 -2
- package/dist/utils/ModelMapper.js +101 -1
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -1,11 +1,30 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
|
|
5
|
+
}) : (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
o[k2] = m[k];
|
|
8
|
+
}));
|
|
9
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
10
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
11
|
+
}) : function(o, v) {
|
|
12
|
+
o["default"] = v;
|
|
13
|
+
});
|
|
14
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
15
|
+
if (mod && mod.__esModule) return mod;
|
|
16
|
+
var result = {};
|
|
17
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
18
|
+
__setModuleDefault(result, mod);
|
|
19
|
+
return result;
|
|
20
|
+
};
|
|
2
21
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
22
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
23
|
};
|
|
5
24
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
25
|
exports.Stigg = void 0;
|
|
7
26
|
const models_1 = require("./models");
|
|
8
|
-
const initApolloClient_1 =
|
|
27
|
+
const initApolloClient_1 = __importStar(require("./api/initApolloClient"));
|
|
9
28
|
const ModelMapper_1 = require("./utils/ModelMapper");
|
|
10
29
|
const managementApi_1 = __importDefault(require("./api/managementApi"));
|
|
11
30
|
const configuration_1 = require("./configuration");
|
|
@@ -21,16 +40,18 @@ class Stigg {
|
|
|
21
40
|
/**
|
|
22
41
|
* Create an instance of the Stigg SDK client.
|
|
23
42
|
* @param graphClient
|
|
43
|
+
* @param batchedGraphClient
|
|
24
44
|
* @param entitlementsCacheService
|
|
25
45
|
* @param loggerService
|
|
26
46
|
* @param environmentId
|
|
27
47
|
*/
|
|
28
|
-
constructor(graphClient, entitlementsCacheService, loggerService, environmentId) {
|
|
48
|
+
constructor(graphClient, batchedGraphClient, entitlementsCacheService, loggerService, environmentId) {
|
|
29
49
|
this.graphqlClient = graphClient;
|
|
50
|
+
this.batchedGraphqlClient = batchedGraphClient;
|
|
30
51
|
this.modelMapper = new ModelMapper_1.ModelMapper();
|
|
31
52
|
this.cacheService = entitlementsCacheService;
|
|
32
53
|
this.loggerService = loggerService;
|
|
33
|
-
this.entitlementsService = new entitlementsService_1.EntitlementsService(this.cacheService, this.graphqlClient, this.loggerService);
|
|
54
|
+
this.entitlementsService = new entitlementsService_1.EntitlementsService(this.cacheService, this.graphqlClient, this.batchedGraphqlClient, this.loggerService);
|
|
34
55
|
this.managementApi = new managementApi_1.default(this.graphqlClient, environmentId);
|
|
35
56
|
}
|
|
36
57
|
/**
|
|
@@ -48,9 +69,10 @@ class Stigg {
|
|
|
48
69
|
}
|
|
49
70
|
const entitlementsCacheService = new inMemoryCacheService_1.InMemoryCacheService();
|
|
50
71
|
const graphqlClient = (0, initApolloClient_1.default)(Object.assign(Object.assign({}, sdkConfiguration), { onConnected: entitlementsCacheService.clearCache, loggerService }));
|
|
72
|
+
const batchedGraphClient = (0, initApolloClient_1.initBatchedApolloClient)(sdkConfiguration);
|
|
51
73
|
const configurationApi = new configurationApi_1.default(graphqlClient);
|
|
52
74
|
const environmentId = (await configurationApi.getEnvironment()).data.currentEnvironment;
|
|
53
|
-
return new Stigg(graphqlClient, entitlementsCacheService, loggerService, environmentId);
|
|
75
|
+
return new Stigg(graphqlClient, batchedGraphClient, entitlementsCacheService, loggerService, environmentId);
|
|
54
76
|
}
|
|
55
77
|
catch (err) {
|
|
56
78
|
loggerService.error(`Failed to initialize api ${err}`);
|
|
@@ -66,13 +88,14 @@ class Stigg {
|
|
|
66
88
|
* @return {BooleanEntitlement} boolean entitlement
|
|
67
89
|
*/
|
|
68
90
|
async getBooleanEntitlement({ customerId, featureId, options }) {
|
|
91
|
+
const fallbackEntitlement = Object.assign(Object.assign({}, models_1.BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT), ((options === null || options === void 0 ? void 0 : options.fallback) || {}));
|
|
69
92
|
try {
|
|
70
|
-
return this.entitlementsService.getBooleanEntitlement(customerId, featureId, options);
|
|
93
|
+
return this.entitlementsService.getBooleanEntitlement(customerId, featureId, fallbackEntitlement, options);
|
|
71
94
|
}
|
|
72
95
|
catch (err) {
|
|
73
96
|
const error = err.graphQLErrors ? JSON.stringify(err.graphQLErrors['0'].extensions) : err;
|
|
74
97
|
this.loggerService.error(`Failed to get entitlement: ${error}`);
|
|
75
|
-
return
|
|
98
|
+
return fallbackEntitlement;
|
|
76
99
|
}
|
|
77
100
|
}
|
|
78
101
|
/**
|
|
@@ -83,13 +106,14 @@ class Stigg {
|
|
|
83
106
|
* @return {NumericEntitlement} numeric entitlement
|
|
84
107
|
*/
|
|
85
108
|
async getNumericEntitlement({ customerId, featureId, options }) {
|
|
109
|
+
const fallbackEntitlement = Object.assign(Object.assign({}, models_1.NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT), ((options === null || options === void 0 ? void 0 : options.fallback) || {}));
|
|
86
110
|
try {
|
|
87
|
-
return this.entitlementsService.getNumericEntitlement(customerId, featureId, options);
|
|
111
|
+
return this.entitlementsService.getNumericEntitlement(customerId, featureId, fallbackEntitlement, options);
|
|
88
112
|
}
|
|
89
113
|
catch (err) {
|
|
90
114
|
const error = err.graphQLErrors ? JSON.stringify(err.graphQLErrors['0'].extensions) : err;
|
|
91
115
|
this.loggerService.error(`Failed to get entitlement: ${error}`);
|
|
92
|
-
return
|
|
116
|
+
return fallbackEntitlement;
|
|
93
117
|
}
|
|
94
118
|
}
|
|
95
119
|
/**
|
|
@@ -100,13 +124,14 @@ class Stigg {
|
|
|
100
124
|
* @return {MeteredEntitlement} metered entitlement
|
|
101
125
|
*/
|
|
102
126
|
async getMeteredEntitlement({ customerId, featureId, options }) {
|
|
127
|
+
const fallbackEntitlement = Object.assign(Object.assign({}, models_1.METERED_DEFAULT_FALLBACK_ENTITLEMENT), ((options === null || options === void 0 ? void 0 : options.fallback) || {}));
|
|
103
128
|
try {
|
|
104
|
-
return await this.entitlementsService.getMeteredEntitlement(customerId, featureId, options);
|
|
129
|
+
return await this.entitlementsService.getMeteredEntitlement(customerId, featureId, fallbackEntitlement, options);
|
|
105
130
|
}
|
|
106
131
|
catch (err) {
|
|
107
132
|
const error = err.graphQLErrors ? JSON.stringify(err.graphQLErrors['0'].extensions) : err;
|
|
108
133
|
this.loggerService.error(`Failed to get entitlement: ${error}`);
|
|
109
|
-
return
|
|
134
|
+
return fallbackEntitlement;
|
|
110
135
|
}
|
|
111
136
|
}
|
|
112
137
|
/**
|
|
@@ -152,7 +177,8 @@ class Stigg {
|
|
|
152
177
|
*/
|
|
153
178
|
async createSubscription(createSubscription) {
|
|
154
179
|
try {
|
|
155
|
-
const
|
|
180
|
+
const createSubscriptionInput = Object.assign(Object.assign({}, createSubscription), { startDate: createSubscription.startDate || new Date() });
|
|
181
|
+
const { data } = await this.managementApi.createSubscription(createSubscriptionInput);
|
|
156
182
|
if (!data)
|
|
157
183
|
throw new Error('Invalid response');
|
|
158
184
|
return this.modelMapper.mapSubscription(data);
|
|
@@ -195,4 +221,4 @@ class Stigg {
|
|
|
195
221
|
}
|
|
196
222
|
}
|
|
197
223
|
exports.Stigg = Stigg;
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEscUNBa0JrQjtBQUNsQiwyRUFBbUY7QUFDbkYscURBQWtEO0FBQ2xELHdFQUFnRDtBQUNoRCxtREFBK0Y7QUFDL0YsOEVBQXNEO0FBQ3RELGdGQUE2RTtBQUM3RSx3RUFBcUU7QUFFckUsNERBQXlEO0FBQ3pELHNFQUFtRTtBQWlCbkU7O0dBRUc7QUFDSCxNQUFhLEtBQUs7SUFTaEI7Ozs7Ozs7T0FPRztJQUNILFlBQ0UsV0FBZ0QsRUFDaEQsa0JBQXVELEVBQ3ZELHdCQUFzQyxFQUN0QyxhQUE0QixFQUM1QixhQUFxQjtRQUVyQixJQUFJLENBQUMsYUFBYSxHQUFHLFdBQVcsQ0FBQztRQUNqQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsa0JBQWtCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLHlCQUFXLEVBQUUsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLHdCQUF3QixDQUFDO1FBQzdDLElBQUksQ0FBQyxhQUFhLEdBQUcsYUFBYSxDQUFDO1FBQ25DLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLHlDQUFtQixDQUNoRCxJQUFJLENBQUMsWUFBWSxFQUNqQixJQUFJLENBQUMsYUFBYSxFQUNsQixJQUFJLENBQUMsb0JBQW9CLEVBQ3pCLElBQUksQ0FBQyxhQUFhLENBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksdUJBQWEsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsTUFBTSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsYUFBa0M7UUFDeEQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFBLGdDQUFnQixFQUFDLGFBQWEsQ0FBQyxDQUFDO1FB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
|
package/dist/models.d.ts
CHANGED
|
@@ -62,18 +62,15 @@ export declare type Subscription = {
|
|
|
62
62
|
export declare type SubscriptionAddon = {
|
|
63
63
|
addonId: string;
|
|
64
64
|
quantity?: number;
|
|
65
|
-
billingPeriod: BillingPeriod;
|
|
66
65
|
};
|
|
67
66
|
export declare type CreateSubscription = {
|
|
68
67
|
customerId: string;
|
|
69
68
|
planId: string;
|
|
70
69
|
addons: SubscriptionAddon[];
|
|
71
|
-
startDate
|
|
72
|
-
endDate?: Date;
|
|
70
|
+
startDate?: Date;
|
|
73
71
|
id?: string;
|
|
74
|
-
billingPeriod
|
|
72
|
+
billingPeriod?: BillingPeriod;
|
|
75
73
|
unitQuantity?: number;
|
|
76
|
-
isTrialSubscription?: boolean;
|
|
77
74
|
};
|
|
78
75
|
export declare type CancelSubscription = {
|
|
79
76
|
subscriptionId: string;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { EntitlementFeature } from '../../models';
|
|
2
|
+
import { EntitlementResetPeriod, ResetPeriodConfigurationFragment } from '../../api/generated/types';
|
|
2
3
|
export interface CalculatedEntitlement {
|
|
3
4
|
feature?: EntitlementFeature;
|
|
4
5
|
usageLimit?: number | null;
|
|
@@ -7,6 +8,8 @@ export interface CalculatedEntitlement {
|
|
|
7
8
|
export interface FeatureUsage {
|
|
8
9
|
currentUsage: number;
|
|
9
10
|
nextResetDate: number;
|
|
11
|
+
resetPeriod?: EntitlementResetPeriod | null;
|
|
12
|
+
resetPeriodConfiguration?: ResetPeriodConfigurationFragment | null;
|
|
10
13
|
}
|
|
11
14
|
export default class CachedEntitlement {
|
|
12
15
|
readonly calculatedEntitlement: CalculatedEntitlement;
|
|
@@ -7,4 +7,4 @@ class CachedEntitlement {
|
|
|
7
7
|
}
|
|
8
8
|
}
|
|
9
9
|
exports.default = CachedEntitlement;
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGVkRW50aXRsZW1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2VydmljZXMvY2FjaGUvY2FjaGVkRW50aXRsZW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsTUFBcUIsaUJBQWlCO0lBSXBDLFlBQVkscUJBQTRDLEVBQUUsWUFBMEI7UUFDbEYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLHFCQUFxQixDQUFDO1FBQ25ELElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO0lBQ25DLENBQUM7Q0FDRjtBQVJELG9DQVFDIn0=
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import EntitlementsApi from '../api/entitlements/entitlementsApi';
|
|
2
|
+
import { LoggerService } from './loggerService';
|
|
3
|
+
import { EntitlementCheckResult } from '../api/generated/types';
|
|
4
|
+
export declare class EntitlementCheckReportingService {
|
|
5
|
+
private readonly entitlementsApi;
|
|
6
|
+
private readonly loggerService;
|
|
7
|
+
constructor(entitlementsApi: EntitlementsApi, loggerService: LoggerService);
|
|
8
|
+
reportEntitlementCheckRequested(featureId: string, customerId: string, entitlement: EntitlementCheckResult, requestedUsage?: number): Promise<void>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EntitlementCheckReportingService = void 0;
|
|
4
|
+
class EntitlementCheckReportingService {
|
|
5
|
+
constructor(entitlementsApi, loggerService) {
|
|
6
|
+
this.entitlementsApi = entitlementsApi;
|
|
7
|
+
this.loggerService = loggerService;
|
|
8
|
+
}
|
|
9
|
+
async reportEntitlementCheckRequested(featureId, customerId, entitlement, requestedUsage) {
|
|
10
|
+
this.entitlementsApi.reportEntitlementRequested(featureId, customerId, entitlement, requestedUsage).then(() => {
|
|
11
|
+
this.loggerService.debug('Successfully reported entitlement check requested');
|
|
12
|
+
}, (error) => {
|
|
13
|
+
this.loggerService.error('Failed to report entitlement check requested', error);
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.EntitlementCheckReportingService = EntitlementCheckReportingService;
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRDaGVja1JlcG9ydGluZ1NlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc2VydmljZXMvZW50aXRsZW1lbnRDaGVja1JlcG9ydGluZ1NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBSUEsTUFBYSxnQ0FBZ0M7SUFDM0MsWUFBNkIsZUFBZ0MsRUFBbUIsYUFBNEI7UUFBL0Usb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQW1CLGtCQUFhLEdBQWIsYUFBYSxDQUFlO0lBQUcsQ0FBQztJQUVoSCxLQUFLLENBQUMsK0JBQStCLENBQ25DLFNBQWlCLEVBQ2pCLFVBQWtCLEVBQ2xCLFdBQW1DLEVBQ25DLGNBQXVCO1FBRXZCLElBQUksQ0FBQyxlQUFlLENBQUMsMEJBQTBCLENBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDLENBQUMsSUFBSSxDQUN0RyxHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxtREFBbUQsQ0FBQyxDQUFDO1FBQ2hGLENBQUMsRUFDRCxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ2IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsOENBQThDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEYsQ0FBQyxDQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFsQkQsNEVBa0JDIn0=
|
|
@@ -8,16 +8,17 @@ export declare class EntitlementsService {
|
|
|
8
8
|
private readonly cacheService;
|
|
9
9
|
private readonly loggerService;
|
|
10
10
|
private readonly entitlementsApi;
|
|
11
|
+
private readonly entitlementCheckReportingService;
|
|
11
12
|
private readonly modelMapper;
|
|
12
|
-
constructor(cacheService: CacheService, client: ApolloClient<NormalizedCacheObject>, loggerService: LoggerService);
|
|
13
|
+
constructor(cacheService: CacheService, client: ApolloClient<NormalizedCacheObject>, batchedGraphqlClient: ApolloClient<NormalizedCacheObject>, loggerService: LoggerService);
|
|
13
14
|
private onEntitlementsUpdated;
|
|
14
15
|
refetchEntitlements(customerRefId: string, featureRefId: string): Promise<{
|
|
15
16
|
entitlement: CachedEntitlement | null;
|
|
16
17
|
customerExists: boolean;
|
|
17
18
|
}>;
|
|
18
|
-
getBooleanEntitlement(customerRefId: string, featureRefId: string, options?: BooleanEntitlementOptions): Promise<BooleanEntitlement>;
|
|
19
|
-
getNumericEntitlement(customerRefId: string, featureRefId: string, options?: NumericEntitlementOptions): Promise<NumericEntitlement>;
|
|
20
|
-
getMeteredEntitlement(customerRefId: string, featureRefId: string, options?: MeteredEntitlementOptions): Promise<MeteredEntitlement>;
|
|
19
|
+
getBooleanEntitlement(customerRefId: string, featureRefId: string, fallbackEntitlement: BooleanEntitlement, options?: BooleanEntitlementOptions): Promise<BooleanEntitlement>;
|
|
20
|
+
getNumericEntitlement(customerRefId: string, featureRefId: string, fallbackEntitlement: NumericEntitlement, options?: NumericEntitlementOptions): Promise<NumericEntitlement>;
|
|
21
|
+
getMeteredEntitlement(customerRefId: string, featureRefId: string, fallbackEntitlement: MeteredEntitlement, options?: MeteredEntitlementOptions): Promise<MeteredEntitlement>;
|
|
21
22
|
private onUsageUpdated;
|
|
22
23
|
private tryGetCacheCustomerAndEntitlement;
|
|
23
24
|
createUsageMeasurement(input: CreateUsageMeasurement): Promise<FetchResult<import("../api/generated/types").CreateUsageMeasurementMutation, Record<string, any>, Record<string, any>>>;
|
|
@@ -8,9 +8,9 @@ const entitlementsApi_1 = __importDefault(require("../api/entitlements/entitleme
|
|
|
8
8
|
const ModelMapper_1 = require("../utils/ModelMapper");
|
|
9
9
|
const models_1 = require("../models");
|
|
10
10
|
const entitlementDecisionService_1 = require("./entitlementDecisionService");
|
|
11
|
-
const
|
|
11
|
+
const entitlementCheckReportingService_1 = require("./entitlementCheckReportingService");
|
|
12
12
|
class EntitlementsService {
|
|
13
|
-
constructor(cacheService, client, loggerService) {
|
|
13
|
+
constructor(cacheService, client, batchedGraphqlClient, loggerService) {
|
|
14
14
|
this.cacheService = cacheService;
|
|
15
15
|
this.loggerService = loggerService;
|
|
16
16
|
this.onEntitlementsUpdated = (value) => {
|
|
@@ -35,6 +35,7 @@ class EntitlementsService {
|
|
|
35
35
|
this.cacheService.setEntitlement(customerId, featureId, this.modelMapper.mapCachedEntitlement(entitlement, currentUsage, nextResetDate));
|
|
36
36
|
};
|
|
37
37
|
this.entitlementsApi = new entitlementsApi_1.default(client);
|
|
38
|
+
this.entitlementCheckReportingService = new entitlementCheckReportingService_1.EntitlementCheckReportingService(new entitlementsApi_1.default(batchedGraphqlClient), this.loggerService);
|
|
38
39
|
this.modelMapper = new ModelMapper_1.ModelMapper();
|
|
39
40
|
this.entitlementsApi.subscribeEntitlementsChanges(this.onEntitlementsUpdated, this.onUsageUpdated);
|
|
40
41
|
}
|
|
@@ -53,7 +54,7 @@ class EntitlementsService {
|
|
|
53
54
|
}
|
|
54
55
|
return { entitlement, customerExists };
|
|
55
56
|
}
|
|
56
|
-
async getBooleanEntitlement(customerRefId, featureRefId, options) {
|
|
57
|
+
async getBooleanEntitlement(customerRefId, featureRefId, fallbackEntitlement, options) {
|
|
57
58
|
var _a;
|
|
58
59
|
let { entitlement, customerExists } = this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId);
|
|
59
60
|
if (!entitlement) {
|
|
@@ -64,16 +65,20 @@ class EntitlementsService {
|
|
|
64
65
|
const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(customerExists, entitlement);
|
|
65
66
|
if ((entitlement === null || entitlement === void 0 ? void 0 : entitlement.calculatedEntitlement.feature) &&
|
|
66
67
|
((_a = entitlement.calculatedEntitlement.feature) === null || _a === void 0 ? void 0 : _a.featureType) !== models_1.FeatureType.Boolean) {
|
|
67
|
-
|
|
68
|
+
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, this.modelMapper.mapFallbackBooleanEntitlementResult(fallbackEntitlement, decision));
|
|
69
|
+
return fallbackEntitlement;
|
|
68
70
|
}
|
|
69
|
-
if (!entitlement
|
|
70
|
-
(0, lodash_1.includes)([models_1.AccessDeniedReason.CustomerNotFound, models_1.AccessDeniedReason.Unknown], decision.accessDeniedReason)) {
|
|
71
|
+
if (!entitlement) {
|
|
71
72
|
this.loggerService.log(`Customer with id: ${customerRefId} not found in api`, { customerRefId });
|
|
72
|
-
|
|
73
|
+
const entitlementResult = this.modelMapper.mapEntitlementResult(decision);
|
|
74
|
+
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, entitlementResult);
|
|
75
|
+
return Object.assign(Object.assign({}, decision), { isFallback: false });
|
|
73
76
|
}
|
|
77
|
+
const entitlementResult = this.modelMapper.mapEntitlementResult(decision, entitlement);
|
|
78
|
+
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, entitlementResult);
|
|
74
79
|
return this.modelMapper.mapBooleanEntitlement(entitlement, decision);
|
|
75
80
|
}
|
|
76
|
-
async getNumericEntitlement(customerRefId, featureRefId, options) {
|
|
81
|
+
async getNumericEntitlement(customerRefId, featureRefId, fallbackEntitlement, options) {
|
|
77
82
|
var _a;
|
|
78
83
|
let { entitlement, customerExists } = this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId);
|
|
79
84
|
if (!entitlement) {
|
|
@@ -84,16 +89,21 @@ class EntitlementsService {
|
|
|
84
89
|
const decision = entitlementDecisionService_1.EntitlementDecisionService.decideEntitlementPolicy(customerExists, entitlement);
|
|
85
90
|
if ((entitlement === null || entitlement === void 0 ? void 0 : entitlement.calculatedEntitlement.feature) &&
|
|
86
91
|
((_a = entitlement.calculatedEntitlement.feature) === null || _a === void 0 ? void 0 : _a.featureType) !== models_1.FeatureType.Numeric) {
|
|
87
|
-
|
|
92
|
+
const entitlementResult = this.modelMapper.mapFallbackNumericEntitlementResult(fallbackEntitlement, decision);
|
|
93
|
+
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, entitlementResult);
|
|
94
|
+
return fallbackEntitlement;
|
|
88
95
|
}
|
|
89
|
-
if (!entitlement
|
|
90
|
-
(0, lodash_1.includes)([models_1.AccessDeniedReason.CustomerNotFound, models_1.AccessDeniedReason.Unknown], decision.accessDeniedReason)) {
|
|
96
|
+
if (!entitlement) {
|
|
91
97
|
this.loggerService.log(`Customer with id: ${customerRefId} not found in api`, { customerRefId });
|
|
92
|
-
|
|
98
|
+
const entitlementResult = this.modelMapper.mapEntitlementResult(decision);
|
|
99
|
+
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, entitlementResult);
|
|
100
|
+
return Object.assign(Object.assign({}, decision), { isFallback: false, isUnlimited: false });
|
|
93
101
|
}
|
|
102
|
+
const entitlementResult = this.modelMapper.mapEntitlementResult(decision, entitlement);
|
|
103
|
+
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, entitlementResult);
|
|
94
104
|
return this.modelMapper.mapNumericEntitlement(entitlement, decision);
|
|
95
105
|
}
|
|
96
|
-
async getMeteredEntitlement(customerRefId, featureRefId, options) {
|
|
106
|
+
async getMeteredEntitlement(customerRefId, featureRefId, fallbackEntitlement, options) {
|
|
97
107
|
var _a, _b;
|
|
98
108
|
let { entitlement, customerExists } = this.tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId);
|
|
99
109
|
if (!entitlement) {
|
|
@@ -105,14 +115,19 @@ class EntitlementsService {
|
|
|
105
115
|
if ((entitlement === null || entitlement === void 0 ? void 0 : entitlement.calculatedEntitlement.feature) &&
|
|
106
116
|
((_a = entitlement.calculatedEntitlement.feature) === null || _a === void 0 ? void 0 : _a.meterType) !== models_1.MeterType.Fluctuating &&
|
|
107
117
|
((_b = entitlement.calculatedEntitlement.feature) === null || _b === void 0 ? void 0 : _b.meterType) !== models_1.MeterType.Incremental) {
|
|
108
|
-
|
|
118
|
+
const entitlementResult = this.modelMapper.mapFallbackMeteredEntitlementResult(fallbackEntitlement, decision, options === null || options === void 0 ? void 0 : options.requestedUsage);
|
|
119
|
+
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, entitlementResult);
|
|
120
|
+
return fallbackEntitlement;
|
|
109
121
|
}
|
|
110
|
-
if (!entitlement
|
|
111
|
-
(0, lodash_1.includes)([models_1.AccessDeniedReason.CustomerNotFound, models_1.AccessDeniedReason.Unknown], decision.accessDeniedReason)) {
|
|
122
|
+
if (!entitlement) {
|
|
112
123
|
this.loggerService.log(`Customer with id: ${customerRefId} not found in api`, { customerRefId });
|
|
113
|
-
|
|
124
|
+
const entitlementResult = this.modelMapper.mapEntitlementResult(decision, undefined, options === null || options === void 0 ? void 0 : options.requestedUsage);
|
|
125
|
+
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, entitlementResult);
|
|
126
|
+
return Object.assign(Object.assign({}, decision), { currentUsage: 0, isFallback: false, isUnlimited: false, requestedUsage: (options === null || options === void 0 ? void 0 : options.requestedUsage) || 0 });
|
|
114
127
|
}
|
|
115
|
-
|
|
128
|
+
const entitlementResult = this.modelMapper.mapEntitlementResult(decision, entitlement, options === null || options === void 0 ? void 0 : options.requestedUsage);
|
|
129
|
+
this.entitlementCheckReportingService.reportEntitlementCheckRequested(featureRefId, customerRefId, entitlementResult);
|
|
130
|
+
return this.modelMapper.mapMeteredEntitlement(entitlement, decision, options === null || options === void 0 ? void 0 : options.requestedUsage);
|
|
116
131
|
}
|
|
117
132
|
tryGetCacheCustomerAndEntitlement(featureRefId, customerRefId) {
|
|
118
133
|
const customer = this.cacheService.getCustomerEntitlements(customerRefId);
|
|
@@ -127,4 +142,4 @@ class EntitlementsService {
|
|
|
127
142
|
}
|
|
128
143
|
}
|
|
129
144
|
exports.EntitlementsService = EntitlementsService;
|
|
130
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
145
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXRsZW1lbnRzU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9lbnRpdGxlbWVudHNTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUVBLDBGQUFrRTtBQUNsRSxzREFBbUQ7QUFDbkQsc0NBY21CO0FBQ25CLDZFQUFvRjtBQUtwRix5RkFBc0Y7QUFFdEYsTUFBYSxtQkFBbUI7SUFLOUIsWUFDbUIsWUFBMEIsRUFDM0MsTUFBMkMsRUFDM0Msb0JBQXlELEVBQ3hDLGFBQTRCO1FBSDVCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBRzFCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBWXZDLDBCQUFxQixHQUFHLENBQUMsS0FBbUQsRUFBRSxFQUFFO1lBQ3RGLElBQUksS0FBSyxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLG9EQUFvRCxLQUFLLENBQUMsTUFBTSxFQUFFLEVBQUU7b0JBQzNGLEtBQUssRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7aUJBQ3BDLENBQUMsQ0FBQztnQkFDSCxPQUFPO2FBQ1I7WUFFRCxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUM7WUFDM0QsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUU5RixJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLEVBQUUsWUFBWSxDQUFDLENBQUM7UUFDOUUsQ0FBQyxDQUFDO1FBdUxNLG1CQUFjLEdBQUcsQ0FBQyxJQUEyQyxFQUFFLEVBQUU7WUFDdkUsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLElB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
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export interface Logger {
|
|
2
2
|
log: (message: string, object?: Record<string, string>) => void;
|
|
3
|
+
debug: (message: string, object?: Record<string, string>) => void;
|
|
3
4
|
error: (message: string, error?: Record<string, string>) => void;
|
|
4
5
|
}
|
|
5
6
|
export interface LogConfiguration {
|
|
@@ -18,4 +19,5 @@ export declare class LoggerService implements Logger {
|
|
|
18
19
|
constructor(logger: Logger, logLevel: LogLevel);
|
|
19
20
|
error(message: string, error?: Record<string, string>): void;
|
|
20
21
|
log(message: string, object?: Record<string, string>): void;
|
|
22
|
+
debug(message: string, object?: Record<string, string> | undefined): void;
|
|
21
23
|
}
|
|
@@ -27,6 +27,11 @@ class LoggerService {
|
|
|
27
27
|
this.logger.log(message, object || {});
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
+
debug(message, object) {
|
|
31
|
+
if ((0, includes_1.default)([LogLevel.LOG, LogLevel.ALL], this.logLevel)) {
|
|
32
|
+
this.logger.debug(message, object || {});
|
|
33
|
+
}
|
|
34
|
+
}
|
|
30
35
|
}
|
|
31
36
|
exports.LoggerService = LoggerService;
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9nZ2VyU2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zZXJ2aWNlcy9sb2dnZXJTZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLCtEQUF1QztBQWF2QyxJQUFZLFFBS1g7QUFMRCxXQUFZLFFBQVE7SUFDbEIsdUJBQVcsQ0FBQTtJQUNYLHlCQUFhLENBQUE7SUFDYix1QkFBVyxDQUFBO0lBQ1gsMkJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTFcsUUFBUSxHQUFSLGdCQUFRLEtBQVIsZ0JBQVEsUUFLbkI7QUFFRCxNQUFhLGFBQWE7SUFDeEIsWUFBNkIsTUFBYyxFQUFtQixRQUFrQjtRQUFuRCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQW1CLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBQ3BGLEtBQUssQ0FBQyxPQUFlLEVBQUUsS0FBOEI7UUFDbkQsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxJQUFJLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN6QztJQUNILENBQUM7SUFFRCxHQUFHLENBQUMsT0FBZSxFQUFFLE1BQStCO1FBQ2xELElBQUksQ0FBQyxJQUFBLGtCQUFRLEVBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDN0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFRCxLQUFLLENBQUMsT0FBZSxFQUFFLE1BQTJDO1FBQ2hFLElBQUksSUFBQSxrQkFBUSxFQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3pELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLElBQUksRUFBRSxDQUFDLENBQUM7U0FDMUM7SUFDSCxDQUFDO0NBQ0Y7QUFuQkQsc0NBbUJDIn0=
|
|
@@ -1,11 +1,17 @@
|
|
|
1
|
-
import { CancelSubscriptionMutation, CreateCustomerMutation, CreateSubscriptionMutation, EntitlementFragment, InitiateCheckoutMutation, FeatureType as ApiFeatureType } from '../api/generated/types';
|
|
2
|
-
import { BooleanEntitlement, Checkout, Customer, FeatureType, MeteredEntitlement, NumericEntitlement, Subscription } from '../models';
|
|
1
|
+
import { CancelSubscriptionMutation, CreateCustomerMutation, CreateSubscriptionMutation, EntitlementFragment, InitiateCheckoutMutation, FeatureType as ApiFeatureType, EntitlementCheckResult } from '../api/generated/types';
|
|
2
|
+
import { BooleanEntitlement, BooleanEntitlementFallback, Checkout, Customer, FeatureType, MeteredEntitlement, MeteredEntitlementFallback, NumericEntitlement, NumericEntitlementFallback, Subscription } from '../models';
|
|
3
3
|
import { Decision } from '../services/entitlementDecisionService';
|
|
4
4
|
import CachedEntitlement from '../services/cache/cachedEntitlement';
|
|
5
5
|
declare class ModelMapper {
|
|
6
6
|
mapBooleanEntitlement(entitlement: CachedEntitlement, decision: Decision): BooleanEntitlement;
|
|
7
7
|
mapNumericEntitlement(entitlement: CachedEntitlement, decision: Decision): NumericEntitlement;
|
|
8
8
|
mapMeteredEntitlement(entitlement: CachedEntitlement, decision: Decision, requestedUsage?: number): MeteredEntitlement;
|
|
9
|
+
private mapAccessDeniedReason;
|
|
10
|
+
mapFallbackBooleanEntitlementResult(entitlement: BooleanEntitlementFallback, decision: Decision): EntitlementCheckResult;
|
|
11
|
+
mapFallbackNumericEntitlementResult(entitlement: NumericEntitlementFallback, decision: Decision): EntitlementCheckResult;
|
|
12
|
+
mapEntitlementResult(decision: Decision, entitlement?: CachedEntitlement, requestedUsage?: number): EntitlementCheckResult;
|
|
13
|
+
private getResetPeriodData;
|
|
14
|
+
mapFallbackMeteredEntitlementResult(entitlement: MeteredEntitlementFallback, decision: Decision, requestedUsage?: number): EntitlementCheckResult;
|
|
9
15
|
mapFeatureType: (featureType: ApiFeatureType) => FeatureType;
|
|
10
16
|
mapCachedEntitlement: (entitlement: EntitlementFragment, currentUsage?: number | undefined, nextResetDate?: number | null | undefined) => CachedEntitlement;
|
|
11
17
|
mapCachedEntitlements: (updatedEntitlements: EntitlementFragment[]) => Map<string, CachedEntitlement>;
|
|
@@ -5,6 +5,26 @@ const types_1 = require("../api/generated/types");
|
|
|
5
5
|
const models_1 = require("../models");
|
|
6
6
|
class ModelMapper {
|
|
7
7
|
constructor() {
|
|
8
|
+
this.getResetPeriodData = (resetPeriod, resetPeriodConfiguration) => {
|
|
9
|
+
switch (resetPeriod) {
|
|
10
|
+
case types_1.EntitlementResetPeriod.Month:
|
|
11
|
+
const monthlyConfig = resetPeriodConfiguration;
|
|
12
|
+
return {
|
|
13
|
+
monthlyResetPeriodConfiguration: {
|
|
14
|
+
accordingTo: monthlyConfig.monthlyAccordingTo || types_1.MonthlyAccordingTo.SubscriptionStart,
|
|
15
|
+
},
|
|
16
|
+
};
|
|
17
|
+
case types_1.EntitlementResetPeriod.Week:
|
|
18
|
+
const weeklyConfig = resetPeriodConfiguration;
|
|
19
|
+
return {
|
|
20
|
+
weeklyResetPeriodConfiguration: {
|
|
21
|
+
accordingTo: weeklyConfig.weeklyAccordingTo || types_1.WeeklyAccordingTo.EveryFriday,
|
|
22
|
+
},
|
|
23
|
+
};
|
|
24
|
+
default:
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
};
|
|
8
28
|
this.mapFeatureType = (featureType) => {
|
|
9
29
|
switch (featureType) {
|
|
10
30
|
case types_1.FeatureType.Boolean:
|
|
@@ -13,6 +33,32 @@ class ModelMapper {
|
|
|
13
33
|
return models_1.FeatureType.Numeric;
|
|
14
34
|
}
|
|
15
35
|
};
|
|
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
|
+
// }
|
|
16
62
|
this.mapCachedEntitlement = (entitlement, currentUsage, nextResetDate) => {
|
|
17
63
|
var _a;
|
|
18
64
|
let feature = undefined;
|
|
@@ -32,6 +78,8 @@ class ModelMapper {
|
|
|
32
78
|
hasUnlimitedUsage: entitlement.hasUnlimitedUsage,
|
|
33
79
|
},
|
|
34
80
|
featureUsage: {
|
|
81
|
+
resetPeriod: entitlement.resetPeriod,
|
|
82
|
+
resetPeriodConfiguration: entitlement.resetPeriodConfiguration,
|
|
35
83
|
currentUsage: currentUsage || entitlement.currentUsage || 0,
|
|
36
84
|
nextResetDate: nextResetDate || entitlement.nextResetDate,
|
|
37
85
|
},
|
|
@@ -110,6 +158,58 @@ class ModelMapper {
|
|
|
110
158
|
? Object.assign(Object.assign({}, entitlement.calculatedEntitlement.feature), { meterType: entitlement.calculatedEntitlement.feature.meterType || undefined, isMetered: true }) : undefined,
|
|
111
159
|
};
|
|
112
160
|
}
|
|
161
|
+
mapAccessDeniedReason(accessDeniedReason) {
|
|
162
|
+
switch (accessDeniedReason) {
|
|
163
|
+
case models_1.AccessDeniedReason.InvalidFeatureType:
|
|
164
|
+
return types_1.AccessDeniedReason.Unknown;
|
|
165
|
+
case models_1.AccessDeniedReason.CustomerNotFound:
|
|
166
|
+
return types_1.AccessDeniedReason.CustomerNotFound;
|
|
167
|
+
case models_1.AccessDeniedReason.FeatureNotFound:
|
|
168
|
+
return types_1.AccessDeniedReason.FeatureNotFound;
|
|
169
|
+
case models_1.AccessDeniedReason.NoActiveSubscriptions:
|
|
170
|
+
return types_1.AccessDeniedReason.NoActiveSubscription;
|
|
171
|
+
case models_1.AccessDeniedReason.CustomerNotEntitledForFeature:
|
|
172
|
+
return types_1.AccessDeniedReason.NoFeatureEntitlementInSubscription;
|
|
173
|
+
case models_1.AccessDeniedReason.RequestedUsageExceedsLimit:
|
|
174
|
+
return types_1.AccessDeniedReason.RequestedUsageExceedingLimit;
|
|
175
|
+
case models_1.AccessDeniedReason.Unknown:
|
|
176
|
+
return types_1.AccessDeniedReason.Unknown;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
mapFallbackBooleanEntitlementResult(entitlement, decision) {
|
|
180
|
+
return {
|
|
181
|
+
hasAccess: entitlement.hasAccess,
|
|
182
|
+
accessDeniedReason: decision.accessDeniedReason
|
|
183
|
+
? this.mapAccessDeniedReason(decision.accessDeniedReason)
|
|
184
|
+
: undefined,
|
|
185
|
+
};
|
|
186
|
+
}
|
|
187
|
+
mapFallbackNumericEntitlementResult(entitlement, decision) {
|
|
188
|
+
return {
|
|
189
|
+
hasAccess: entitlement.hasAccess,
|
|
190
|
+
accessDeniedReason: decision.accessDeniedReason
|
|
191
|
+
? this.mapAccessDeniedReason(decision.accessDeniedReason)
|
|
192
|
+
: undefined,
|
|
193
|
+
usageLimit: entitlement.value,
|
|
194
|
+
hasUnlimitedUsage: entitlement.isUnlimited,
|
|
195
|
+
};
|
|
196
|
+
}
|
|
197
|
+
mapEntitlementResult(decision, entitlement, requestedUsage) {
|
|
198
|
+
return Object.assign({ hasAccess: decision.hasAccess, accessDeniedReason: decision.accessDeniedReason
|
|
199
|
+
? this.mapAccessDeniedReason(decision.accessDeniedReason)
|
|
200
|
+
: undefined, hasUnlimitedUsage: entitlement === null || entitlement === void 0 ? void 0 : entitlement.calculatedEntitlement.hasUnlimitedUsage, usageLimit: entitlement === null || entitlement === void 0 ? void 0 : entitlement.calculatedEntitlement.usageLimit, currentUsage: entitlement === null || entitlement === void 0 ? void 0 : entitlement.featureUsage.currentUsage, requestedUsage, nextResetDate: entitlement === null || entitlement === void 0 ? void 0 : entitlement.featureUsage.nextResetDate, resetPeriod: entitlement === null || entitlement === void 0 ? void 0 : entitlement.featureUsage.resetPeriod }, this.getResetPeriodData(entitlement === null || entitlement === void 0 ? void 0 : entitlement.featureUsage.resetPeriod, entitlement === null || entitlement === void 0 ? void 0 : entitlement.featureUsage.resetPeriodConfiguration));
|
|
201
|
+
}
|
|
202
|
+
mapFallbackMeteredEntitlementResult(entitlement, decision, requestedUsage) {
|
|
203
|
+
return {
|
|
204
|
+
hasAccess: entitlement.hasAccess,
|
|
205
|
+
accessDeniedReason: decision.accessDeniedReason
|
|
206
|
+
? this.mapAccessDeniedReason(decision.accessDeniedReason)
|
|
207
|
+
: undefined,
|
|
208
|
+
hasUnlimitedUsage: entitlement.isUnlimited,
|
|
209
|
+
usageLimit: entitlement.usageLimit,
|
|
210
|
+
requestedUsage,
|
|
211
|
+
};
|
|
212
|
+
}
|
|
113
213
|
}
|
|
114
214
|
exports.ModelMapper = ModelMapper;
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
215
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9kZWxNYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdXRpbHMvTW9kZWxNYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0RBaUJnQztBQUNoQyxzQ0FZbUI7QUFJbkIsTUFBTSxXQUFXO0lBQWpCO1FBOEhVLHVCQUFrQixHQUFHLENBQzNCLFdBQTJDLEVBQzNDLHdCQUFrRSxFQUlsRSxFQUFFO1lBQ0YsUUFBUSxXQUFXLEVBQUU7Z0JBQ25CLEtBQUssOEJBQXNCLENBQUMsS0FBSztvQkFDL0IsTUFBTSxhQUFhLEdBQUcsd0JBQTRELENBQUM7b0JBQ25GLE9BQU87d0JBQ0wsK0JBQStCLEVBQUU7NEJBQy9CLFdBQVcsRUFBRSxhQUFhLENBQUMsa0JBQWtCLElBQUksMEJBQWtCLENBQUMsaUJBQWlCO3lCQUN0RjtxQkFDRixDQUFDO2dCQUNKLEtBQUssOEJBQXNCLENBQUMsSUFBSTtvQkFDOUIsTUFBTSxZQUFZLEdBQUcsd0JBQTJELENBQUM7b0JBQ2pGLE9BQU87d0JBQ0wsOEJBQThCLEVBQUU7NEJBQzlCLFdBQVcsRUFBRSxZQUFZLENBQUMsaUJBQWlCLElBQUkseUJBQWlCLENBQUMsV0FBVzt5QkFDN0U7cUJBQ0YsQ0FBQztnQkFDSjtvQkFDRSxPQUFPLEVBQUUsQ0FBQzthQUNiO1FBQ0gsQ0FBQyxDQUFDO1FBa0JGLG1CQUFjLEdBQUcsQ0FBQyxXQUEyQixFQUFlLEVBQUU7WUFDNUQsUUFBUSxXQUFXLEVBQUU7Z0JBQ25CLEtBQUssbUJBQWMsQ0FBQyxPQUFPO29CQUN6QixPQUFPLG9CQUFXLENBQUMsT0FBTyxDQUFDO2dCQUM3QixLQUFLLG1CQUFjLENBQUMsTUFBTTtvQkFDeEIsT0FBTyxvQkFBVyxDQUFDLE9BQU8sQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQztRQUNGLEVBQUU7UUFDRiw4RkFBOEY7UUFDOUYsMkJBQTJCO1FBQzNCLDBDQUEwQztRQUMxQyw2Q0FBNkM7UUFDN0MsMkNB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
|