@casual-simulation/aux-records 3.2.2 → 3.2.4-alpha.5857788915
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/AuthController.d.ts +1 -5
- package/AuthController.js +1 -10
- package/AuthController.js.map +1 -1
- package/AuthStore.d.ts +0 -4
- package/MemoryRecordsStore.d.ts +22 -1
- package/MemoryRecordsStore.js +162 -1
- package/MemoryRecordsStore.js.map +1 -1
- package/PolicyController.d.ts +4 -1
- package/PolicyController.js +33 -8
- package/PolicyController.js.map +1 -1
- package/RecordsController.d.ts +168 -2
- package/RecordsController.js +450 -17
- package/RecordsController.js.map +1 -1
- package/RecordsHttpServer.d.ts +8 -0
- package/RecordsHttpServer.js +451 -8
- package/RecordsHttpServer.js.map +1 -1
- package/RecordsStore.d.ts +236 -5
- package/SubscriptionConfiguration.d.ts +8 -0
- package/SubscriptionController.d.ts +25 -6
- package/SubscriptionController.js +253 -67
- package/SubscriptionController.js.map +1 -1
- package/TestUtils.js +1 -1
- package/TestUtils.js.map +1 -1
- package/Utils.js +9 -0
- package/Utils.js.map +1 -1
- package/package.json +2 -2
|
@@ -29,6 +29,14 @@ export interface SubscriptionConfiguration {
|
|
|
29
29
|
* Defaults to true.
|
|
30
30
|
*/
|
|
31
31
|
purchasable?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Whether the subscription is only purchasable by users.
|
|
34
|
+
*/
|
|
35
|
+
userOnly?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Whether the subscription is only purchasable by studios.
|
|
38
|
+
*/
|
|
39
|
+
studioOnly?: boolean;
|
|
32
40
|
/**
|
|
33
41
|
* The tier that the subscription represents.
|
|
34
42
|
* Defaults to "beta".
|
|
@@ -3,6 +3,7 @@ import { AuthStore } from './AuthStore';
|
|
|
3
3
|
import { StripeInterface } from './StripeInterface';
|
|
4
4
|
import { ServerError } from './Errors';
|
|
5
5
|
import { SubscriptionConfiguration } from './SubscriptionConfiguration';
|
|
6
|
+
import { RecordsStore } from './RecordsStore';
|
|
6
7
|
/**
|
|
7
8
|
* Defines a class that is able to handle subscriptions.
|
|
8
9
|
*/
|
|
@@ -10,13 +11,15 @@ export declare class SubscriptionController {
|
|
|
10
11
|
private _stripe;
|
|
11
12
|
private _auth;
|
|
12
13
|
private _authStore;
|
|
14
|
+
private _recordsStore;
|
|
13
15
|
private _config;
|
|
14
|
-
constructor(stripe: StripeInterface, auth: AuthController, authStore: AuthStore, config: SubscriptionConfiguration);
|
|
16
|
+
constructor(stripe: StripeInterface, auth: AuthController, authStore: AuthStore, recordsStore: RecordsStore, config: SubscriptionConfiguration);
|
|
15
17
|
/**
|
|
16
18
|
* Gets the status of the given user's scription.
|
|
17
19
|
* @param request
|
|
18
20
|
*/
|
|
19
21
|
getSubscriptionStatus(request: GetSubscriptionStatusRequest): Promise<GetSubscriptionStatusResult>;
|
|
22
|
+
private _getPurchasableSubscriptionsForRole;
|
|
20
23
|
private _getPurchasableSubscriptions;
|
|
21
24
|
/**
|
|
22
25
|
* Creates a link that the user can be redirected to in order to manage their subscription.
|
|
@@ -45,7 +48,11 @@ export interface CreateManageSubscriptionRequest {
|
|
|
45
48
|
/**
|
|
46
49
|
* The User ID that the management session should be created for.
|
|
47
50
|
*/
|
|
48
|
-
userId
|
|
51
|
+
userId?: string;
|
|
52
|
+
/**
|
|
53
|
+
* The ID of the studio that the management session should be created for.
|
|
54
|
+
*/
|
|
55
|
+
studioId?: string;
|
|
49
56
|
/**
|
|
50
57
|
* The subscription that was selected for purcahse by the user.
|
|
51
58
|
*/
|
|
@@ -73,7 +80,7 @@ export interface CreateManageSubscriptionFailure {
|
|
|
73
80
|
/**
|
|
74
81
|
* The error code.
|
|
75
82
|
*/
|
|
76
|
-
errorCode: ServerError | ValidateSessionKeyFailure['errorCode'] | 'unacceptable_user_id' | 'unacceptable_request' | 'price_does_not_match' | 'not_supported';
|
|
83
|
+
errorCode: ServerError | ValidateSessionKeyFailure['errorCode'] | 'unacceptable_user_id' | 'unacceptable_studio_id' | 'unacceptable_request' | 'price_does_not_match' | 'not_supported';
|
|
77
84
|
/**
|
|
78
85
|
* The error message.
|
|
79
86
|
*/
|
|
@@ -87,7 +94,11 @@ export interface GetSubscriptionStatusRequest {
|
|
|
87
94
|
/**
|
|
88
95
|
* The ID of the user whose subscription status should be retrieved.
|
|
89
96
|
*/
|
|
90
|
-
userId
|
|
97
|
+
userId?: string;
|
|
98
|
+
/**
|
|
99
|
+
* The ID of the studio whose subscrition status should be retrieved.
|
|
100
|
+
*/
|
|
101
|
+
studioId?: string;
|
|
91
102
|
}
|
|
92
103
|
export type GetSubscriptionStatusResult = GetSubscriptionStatusSuccess | GetSubscriptionStatusFailure;
|
|
93
104
|
export interface GetSubscriptionStatusSuccess {
|
|
@@ -95,7 +106,11 @@ export interface GetSubscriptionStatusSuccess {
|
|
|
95
106
|
/**
|
|
96
107
|
* The ID of the user.
|
|
97
108
|
*/
|
|
98
|
-
userId
|
|
109
|
+
userId?: string;
|
|
110
|
+
/**
|
|
111
|
+
* The ID of the studio.
|
|
112
|
+
*/
|
|
113
|
+
studioId?: string;
|
|
99
114
|
/**
|
|
100
115
|
* The publishable stripe API key.
|
|
101
116
|
*/
|
|
@@ -171,6 +186,10 @@ export interface SubscriptionStatus {
|
|
|
171
186
|
* The currency that was used.
|
|
172
187
|
*/
|
|
173
188
|
currency: string;
|
|
189
|
+
/**
|
|
190
|
+
* The feature list for the subscription.
|
|
191
|
+
*/
|
|
192
|
+
featureList?: string[];
|
|
174
193
|
}
|
|
175
194
|
export interface PurchasableSubscription {
|
|
176
195
|
/**
|
|
@@ -220,7 +239,7 @@ export interface GetSubscriptionStatusFailure {
|
|
|
220
239
|
/**
|
|
221
240
|
* The error code.
|
|
222
241
|
*/
|
|
223
|
-
errorCode: ServerError | ValidateSessionKeyFailure['errorCode'] | 'unacceptable_user_id' | 'not_supported';
|
|
242
|
+
errorCode: ServerError | ValidateSessionKeyFailure['errorCode'] | 'unacceptable_user_id' | 'unacceptable_studio_id' | 'unacceptable_request' | 'not_supported';
|
|
224
243
|
/**
|
|
225
244
|
* The error message.
|
|
226
245
|
*/
|
|
@@ -13,10 +13,11 @@ import { isActiveSubscription, tryParseJson } from './Utils';
|
|
|
13
13
|
* Defines a class that is able to handle subscriptions.
|
|
14
14
|
*/
|
|
15
15
|
export class SubscriptionController {
|
|
16
|
-
constructor(stripe, auth, authStore, config) {
|
|
16
|
+
constructor(stripe, auth, authStore, recordsStore, config) {
|
|
17
17
|
this._stripe = stripe;
|
|
18
18
|
this._auth = auth;
|
|
19
19
|
this._authStore = authStore;
|
|
20
|
+
this._recordsStore = recordsStore;
|
|
20
21
|
this._config = config;
|
|
21
22
|
}
|
|
22
23
|
/**
|
|
@@ -33,39 +34,97 @@ export class SubscriptionController {
|
|
|
33
34
|
};
|
|
34
35
|
}
|
|
35
36
|
try {
|
|
36
|
-
if (
|
|
37
|
+
if (request.userId && request.studioId) {
|
|
37
38
|
return {
|
|
38
39
|
success: false,
|
|
39
|
-
errorCode: '
|
|
40
|
-
errorMessage: 'The given
|
|
40
|
+
errorCode: 'unacceptable_request',
|
|
41
|
+
errorMessage: 'The given request is invalid. It must not specify both a user ID and a studio ID.',
|
|
41
42
|
};
|
|
42
43
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
44
|
+
if (request.userId) {
|
|
45
|
+
if (typeof request.userId !== 'string' ||
|
|
46
|
+
request.userId === '') {
|
|
47
|
+
return {
|
|
48
|
+
success: false,
|
|
49
|
+
errorCode: 'unacceptable_user_id',
|
|
50
|
+
errorMessage: 'The given user ID is invalid. It must be a correctly formatted string.',
|
|
51
|
+
};
|
|
52
|
+
}
|
|
46
53
|
}
|
|
47
|
-
else if (
|
|
48
|
-
|
|
54
|
+
else if (request.studioId) {
|
|
55
|
+
if (typeof request.studioId !== 'string' ||
|
|
56
|
+
request.studioId === '') {
|
|
57
|
+
return {
|
|
58
|
+
success: false,
|
|
59
|
+
errorCode: 'unacceptable_studio_id',
|
|
60
|
+
errorMessage: 'The given studio ID is invalid. It must be a correctly formatted string.',
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
49
65
|
return {
|
|
50
66
|
success: false,
|
|
51
|
-
errorCode: '
|
|
52
|
-
errorMessage:
|
|
67
|
+
errorCode: 'unacceptable_request',
|
|
68
|
+
errorMessage: 'The given request is invalid. It must have a valid user ID or studio ID.',
|
|
53
69
|
};
|
|
54
70
|
}
|
|
55
|
-
const
|
|
56
|
-
let customerId
|
|
71
|
+
const keyResult = yield this._auth.validateSessionKey(request.sessionKey);
|
|
72
|
+
let customerId;
|
|
73
|
+
let role;
|
|
74
|
+
if (keyResult.success === false) {
|
|
75
|
+
return keyResult;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
if (request.userId) {
|
|
79
|
+
if (keyResult.userId !== request.userId) {
|
|
80
|
+
console.log('[SubscriptionController] [getSubscriptionStatus] Request User ID doesnt match session key User ID!');
|
|
81
|
+
return {
|
|
82
|
+
success: false,
|
|
83
|
+
errorCode: 'invalid_key',
|
|
84
|
+
errorMessage: INVALID_KEY_ERROR_MESSAGE,
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const user = yield this._authStore.findUser(keyResult.userId);
|
|
88
|
+
customerId = user.stripeCustomerId;
|
|
89
|
+
role = 'user';
|
|
90
|
+
}
|
|
91
|
+
else if (request.studioId) {
|
|
92
|
+
const assignments = yield this._recordsStore.listStudioAssignments(request.studioId, {
|
|
93
|
+
userId: keyResult.userId,
|
|
94
|
+
role: 'admin',
|
|
95
|
+
});
|
|
96
|
+
if (assignments.length <= 0) {
|
|
97
|
+
console.log('[SubscriptionController] [getSubscriptionStatus] Request user does not have access to studio!');
|
|
98
|
+
return {
|
|
99
|
+
success: false,
|
|
100
|
+
errorCode: 'invalid_key',
|
|
101
|
+
errorMessage: INVALID_KEY_ERROR_MESSAGE,
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
const studio = yield this._recordsStore.getStudioById(request.studioId);
|
|
105
|
+
customerId = studio.stripeCustomerId;
|
|
106
|
+
role = 'studio';
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
// const user = await this._authStore.findUser(keyResult.userId);
|
|
110
|
+
// let customerId = user.stripeCustomerId;
|
|
57
111
|
if (!customerId) {
|
|
58
112
|
return {
|
|
59
113
|
success: true,
|
|
60
114
|
userId: keyResult.userId,
|
|
115
|
+
studioId: request.studioId,
|
|
61
116
|
publishableKey: this._stripe.publishableKey,
|
|
62
117
|
subscriptions: [],
|
|
63
|
-
purchasableSubscriptions: yield this._getPurchasableSubscriptions(),
|
|
118
|
+
purchasableSubscriptions: yield this._getPurchasableSubscriptions(role),
|
|
64
119
|
};
|
|
65
120
|
}
|
|
66
121
|
const listResult = yield this._stripe.listActiveSubscriptionsForCustomer(customerId);
|
|
67
122
|
const subscriptions = listResult.subscriptions.map((s) => {
|
|
68
123
|
const item = s.items[0];
|
|
124
|
+
const subscriptionInfo = this._config.subscriptions.find((sub) => {
|
|
125
|
+
return sub.eligibleProducts.some((p) => p === item.price.product.id);
|
|
126
|
+
});
|
|
127
|
+
const featureList = subscriptionInfo === null || subscriptionInfo === void 0 ? void 0 : subscriptionInfo.featureList;
|
|
69
128
|
return {
|
|
70
129
|
active: s.status === 'active',
|
|
71
130
|
statusCode: s.status,
|
|
@@ -80,14 +139,16 @@ export class SubscriptionController {
|
|
|
80
139
|
intervalCost: item.price.unit_amount,
|
|
81
140
|
currency: item.price.currency,
|
|
82
141
|
productName: item.price.product.name,
|
|
142
|
+
featureList,
|
|
83
143
|
};
|
|
84
144
|
});
|
|
85
145
|
const purchasableSubscriptions = subscriptions.length > 0
|
|
86
146
|
? []
|
|
87
|
-
: yield this._getPurchasableSubscriptions();
|
|
147
|
+
: yield this._getPurchasableSubscriptions(role);
|
|
88
148
|
return {
|
|
89
149
|
success: true,
|
|
90
150
|
userId: keyResult.userId,
|
|
151
|
+
studioId: request.studioId,
|
|
91
152
|
publishableKey: this._stripe.publishableKey,
|
|
92
153
|
subscriptions,
|
|
93
154
|
purchasableSubscriptions,
|
|
@@ -103,11 +164,21 @@ export class SubscriptionController {
|
|
|
103
164
|
}
|
|
104
165
|
});
|
|
105
166
|
}
|
|
106
|
-
|
|
167
|
+
_getPurchasableSubscriptionsForRole(role) {
|
|
168
|
+
return this._config.subscriptions.filter((s) => {
|
|
169
|
+
var _a, _b, _c;
|
|
170
|
+
const isPurchasable = (_a = s.purchasable) !== null && _a !== void 0 ? _a : true;
|
|
171
|
+
const isUserOnly = (_b = s.userOnly) !== null && _b !== void 0 ? _b : false;
|
|
172
|
+
const isStudioOnly = (_c = s.studioOnly) !== null && _c !== void 0 ? _c : false;
|
|
173
|
+
const matchesRole = (isUserOnly && role === 'user') ||
|
|
174
|
+
(isStudioOnly && role === 'studio') ||
|
|
175
|
+
(!isUserOnly && !isStudioOnly);
|
|
176
|
+
return isPurchasable && matchesRole;
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
_getPurchasableSubscriptions(role) {
|
|
107
180
|
return __awaiter(this, void 0, void 0, function* () {
|
|
108
|
-
const promises = this.
|
|
109
|
-
.filter((s) => { var _a; return (_a = s.purchasable) !== null && _a !== void 0 ? _a : true; })
|
|
110
|
-
.map((s) => __awaiter(this, void 0, void 0, function* () {
|
|
181
|
+
const promises = this._getPurchasableSubscriptionsForRole(role).map((s) => __awaiter(this, void 0, void 0, function* () {
|
|
111
182
|
return ({
|
|
112
183
|
sub: s,
|
|
113
184
|
info: yield this._stripe.getProductAndPriceInfo(s.product),
|
|
@@ -148,11 +219,38 @@ export class SubscriptionController {
|
|
|
148
219
|
};
|
|
149
220
|
}
|
|
150
221
|
try {
|
|
151
|
-
if (
|
|
222
|
+
if (request.userId && request.studioId) {
|
|
152
223
|
return {
|
|
153
224
|
success: false,
|
|
154
|
-
errorCode: '
|
|
155
|
-
errorMessage: 'The given
|
|
225
|
+
errorCode: 'unacceptable_request',
|
|
226
|
+
errorMessage: 'The given request is invalid. It must not specify both a user ID and a studio ID.',
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
if (request.userId) {
|
|
230
|
+
if (typeof request.userId !== 'string' ||
|
|
231
|
+
request.userId === '') {
|
|
232
|
+
return {
|
|
233
|
+
success: false,
|
|
234
|
+
errorCode: 'unacceptable_user_id',
|
|
235
|
+
errorMessage: 'The given user ID is invalid. It must be a correctly formatted string.',
|
|
236
|
+
};
|
|
237
|
+
}
|
|
238
|
+
}
|
|
239
|
+
else if (request.studioId) {
|
|
240
|
+
if (typeof request.studioId !== 'string' ||
|
|
241
|
+
request.studioId === '') {
|
|
242
|
+
return {
|
|
243
|
+
success: false,
|
|
244
|
+
errorCode: 'unacceptable_studio_id',
|
|
245
|
+
errorMessage: 'The given studio ID is invalid. It must be a correctly formatted string.',
|
|
246
|
+
};
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
else {
|
|
250
|
+
return {
|
|
251
|
+
success: false,
|
|
252
|
+
errorCode: 'unacceptable_request',
|
|
253
|
+
errorMessage: 'The given request is invalid. It must have a valid user ID or studio ID.',
|
|
156
254
|
};
|
|
157
255
|
}
|
|
158
256
|
if (!!request.subscriptionId &&
|
|
@@ -172,27 +270,77 @@ export class SubscriptionController {
|
|
|
172
270
|
};
|
|
173
271
|
}
|
|
174
272
|
const keyResult = yield this._auth.validateSessionKey(request.sessionKey);
|
|
273
|
+
let customerId;
|
|
274
|
+
let customerName;
|
|
275
|
+
let customerEmail;
|
|
276
|
+
let customerPhone;
|
|
277
|
+
let role;
|
|
278
|
+
let user;
|
|
279
|
+
let studio;
|
|
280
|
+
let customerMetadata = {};
|
|
281
|
+
let metadata = {};
|
|
175
282
|
if (keyResult.success === false) {
|
|
176
283
|
return keyResult;
|
|
177
284
|
}
|
|
178
|
-
else if (
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
285
|
+
else if (request.userId) {
|
|
286
|
+
if (keyResult.userId !== request.userId) {
|
|
287
|
+
console.log('[SubscriptionController] [createManageSubscriptionLink] Request User ID doesnt match session key User ID!');
|
|
288
|
+
return {
|
|
289
|
+
success: false,
|
|
290
|
+
errorCode: 'invalid_key',
|
|
291
|
+
errorMessage: INVALID_KEY_ERROR_MESSAGE,
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
user = yield this._authStore.findUser(keyResult.userId);
|
|
295
|
+
customerId = user.stripeCustomerId;
|
|
296
|
+
customerName = user.name;
|
|
297
|
+
customerEmail = user.email;
|
|
298
|
+
customerPhone = user.phoneNumber;
|
|
299
|
+
metadata.userId = user.id;
|
|
300
|
+
customerMetadata.role = 'user';
|
|
301
|
+
customerMetadata.userId = user.id;
|
|
302
|
+
role = 'user';
|
|
303
|
+
console.log(`[SubscriptionController] [createManageSubscriptionLink] Creating a checkout/management session for User (${keyResult.userId}).`);
|
|
185
304
|
}
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
305
|
+
else if (request.studioId) {
|
|
306
|
+
const assignments = yield this._recordsStore.listStudioAssignments(request.studioId, {
|
|
307
|
+
role: 'admin',
|
|
308
|
+
});
|
|
309
|
+
const userAssignment = assignments.find((a) => a.userId === keyResult.userId);
|
|
310
|
+
if (!userAssignment) {
|
|
311
|
+
console.log('[SubscriptionController] [getSubscriptionStatus] Request user does not have access to studio!');
|
|
312
|
+
return {
|
|
313
|
+
success: false,
|
|
314
|
+
errorCode: 'invalid_key',
|
|
315
|
+
errorMessage: INVALID_KEY_ERROR_MESSAGE,
|
|
316
|
+
};
|
|
317
|
+
}
|
|
318
|
+
studio = yield this._recordsStore.getStudioById(request.studioId);
|
|
319
|
+
customerId = studio.stripeCustomerId;
|
|
320
|
+
customerName = studio.displayName;
|
|
321
|
+
customerMetadata.role = 'studio';
|
|
322
|
+
customerMetadata.studioId = studio.id;
|
|
323
|
+
metadata.studioId = studio.id;
|
|
324
|
+
let primaryAssignment;
|
|
325
|
+
if (userAssignment.isPrimaryContact) {
|
|
326
|
+
primaryAssignment = userAssignment;
|
|
327
|
+
}
|
|
328
|
+
else {
|
|
329
|
+
primaryAssignment = assignments.find((a) => a.isPrimaryContact);
|
|
330
|
+
}
|
|
331
|
+
if (primaryAssignment) {
|
|
332
|
+
customerEmail = primaryAssignment.user.email;
|
|
333
|
+
customerPhone = primaryAssignment.user.phoneNumber;
|
|
334
|
+
metadata.contactUserId = keyResult.userId;
|
|
335
|
+
customerMetadata.contactUserId = keyResult.userId;
|
|
336
|
+
}
|
|
337
|
+
role = 'studio';
|
|
338
|
+
console.log(`[SubscriptionController] [createManageSubscriptionLink] Creating a checkout/management session for Studio (userId: ${keyResult.userId}, studioId: ${studio.id}).`);
|
|
339
|
+
}
|
|
340
|
+
else {
|
|
341
|
+
throw new Error('Should not reach this point');
|
|
342
|
+
}
|
|
343
|
+
metadata.subjectId = keyResult.userId;
|
|
196
344
|
if (!customerId) {
|
|
197
345
|
if (this._config.subscriptions.length <= 0) {
|
|
198
346
|
return {
|
|
@@ -203,16 +351,25 @@ export class SubscriptionController {
|
|
|
203
351
|
}
|
|
204
352
|
console.log('[SubscriptionController] [createManageSubscriptionLink] No Stripe Customer ID. Creating New Customer and Checkout Session in Stripe.');
|
|
205
353
|
const result = yield this._stripe.createCustomer({
|
|
206
|
-
name:
|
|
207
|
-
email:
|
|
208
|
-
phone:
|
|
354
|
+
name: customerName,
|
|
355
|
+
email: customerEmail,
|
|
356
|
+
phone: customerPhone,
|
|
357
|
+
metadata: customerMetadata,
|
|
209
358
|
});
|
|
210
|
-
customerId =
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
359
|
+
customerId = result.id;
|
|
360
|
+
if (user) {
|
|
361
|
+
user.stripeCustomerId = customerId;
|
|
362
|
+
console.log(`[SubscriptionController] [createManageSubscriptionLink] Saving Stripe Customer ID (${customerId}) to User Record (${user.id}).`);
|
|
363
|
+
yield this._authStore.saveUser(Object.assign({}, user));
|
|
364
|
+
}
|
|
365
|
+
else if (studio) {
|
|
366
|
+
studio.stripeCustomerId = customerId;
|
|
367
|
+
console.log(`[SubscriptionController] [createManageSubscriptionLink] Saving Stripe Customer ID (${customerId}) to Studio Record (${studio.id}).`);
|
|
368
|
+
yield this._recordsStore.updateStudio(Object.assign({}, studio));
|
|
369
|
+
}
|
|
370
|
+
return yield this._createCheckoutSession(request, customerId, metadata, role, user, studio);
|
|
214
371
|
}
|
|
215
|
-
console.log(`[SubscriptionController] [createManageSubscriptionLink]
|
|
372
|
+
console.log(`[SubscriptionController] [createManageSubscriptionLink] Has Stripe Customer ID (${customerId}). Checking active subscriptions for customer.`);
|
|
216
373
|
const subs = yield this._stripe.listActiveSubscriptionsForCustomer(customerId);
|
|
217
374
|
const hasSubscription = subs.subscriptions.some((s) => {
|
|
218
375
|
const isManagable = s.status === 'active' ||
|
|
@@ -229,7 +386,7 @@ export class SubscriptionController {
|
|
|
229
386
|
});
|
|
230
387
|
if (hasSubscription) {
|
|
231
388
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Customer has a managable subscription. Creating a portal session.`);
|
|
232
|
-
const session = yield this._stripe.createPortalSession(Object.assign(Object.assign({}, ((_a = this._config.portalConfig) !== null && _a !== void 0 ? _a : {})), { customer: customerId, return_url: this._config.returnUrl }));
|
|
389
|
+
const session = yield this._stripe.createPortalSession(Object.assign(Object.assign({}, ((_a = this._config.portalConfig) !== null && _a !== void 0 ? _a : {})), { customer: customerId, return_url: returnRoute(this._config.returnUrl, user, studio) }));
|
|
233
390
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Portal session success!`);
|
|
234
391
|
return {
|
|
235
392
|
success: true,
|
|
@@ -237,10 +394,10 @@ export class SubscriptionController {
|
|
|
237
394
|
};
|
|
238
395
|
}
|
|
239
396
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Customer does not have a managable subscription. Creating a checkout session.`);
|
|
240
|
-
return yield this._createCheckoutSession(request, user,
|
|
397
|
+
return yield this._createCheckoutSession(request, customerId, metadata, role, user, studio);
|
|
241
398
|
}
|
|
242
399
|
catch (err) {
|
|
243
|
-
console.
|
|
400
|
+
console.error('[SubscriptionController] An error occurred while creating a manage subscription link:', err);
|
|
244
401
|
return {
|
|
245
402
|
success: false,
|
|
246
403
|
errorCode: 'server_error',
|
|
@@ -249,24 +406,25 @@ export class SubscriptionController {
|
|
|
249
406
|
}
|
|
250
407
|
});
|
|
251
408
|
}
|
|
252
|
-
_createCheckoutSession(request, user,
|
|
409
|
+
_createCheckoutSession(request, customerId, metadata, role, user, studio) {
|
|
253
410
|
var _a;
|
|
254
411
|
return __awaiter(this, void 0, void 0, function* () {
|
|
412
|
+
const purchasableSubscriptions = this._getPurchasableSubscriptionsForRole(role);
|
|
255
413
|
let sub;
|
|
256
414
|
if (request.subscriptionId) {
|
|
257
|
-
sub =
|
|
415
|
+
sub = purchasableSubscriptions.find((s) => s.id === request.subscriptionId);
|
|
258
416
|
if (sub) {
|
|
259
417
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Using specified subscription (${request.subscriptionId}).`);
|
|
260
418
|
}
|
|
261
419
|
}
|
|
262
420
|
if (!sub) {
|
|
263
|
-
sub =
|
|
421
|
+
sub = purchasableSubscriptions.find((s) => s.defaultSubscription);
|
|
264
422
|
if (sub) {
|
|
265
423
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Using default subscription.`);
|
|
266
424
|
}
|
|
267
425
|
}
|
|
268
426
|
if (!sub) {
|
|
269
|
-
sub =
|
|
427
|
+
sub = purchasableSubscriptions[0];
|
|
270
428
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Using first subscription.`);
|
|
271
429
|
}
|
|
272
430
|
const productInfo = yield this._stripe.getProductAndPriceInfo(sub.product);
|
|
@@ -288,14 +446,12 @@ export class SubscriptionController {
|
|
|
288
446
|
}
|
|
289
447
|
}
|
|
290
448
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Creating Checkout Session.`);
|
|
291
|
-
const session = yield this._stripe.createCheckoutSession(Object.assign(Object.assign({}, ((_a = this._config.checkoutConfig) !== null && _a !== void 0 ? _a : {})), { customer: customerId, success_url: this._config.successUrl, cancel_url: this._config.cancelUrl, line_items: [
|
|
449
|
+
const session = yield this._stripe.createCheckoutSession(Object.assign(Object.assign({}, ((_a = this._config.checkoutConfig) !== null && _a !== void 0 ? _a : {})), { customer: customerId, success_url: returnRoute(this._config.successUrl, user, studio), cancel_url: returnRoute(this._config.cancelUrl, user, studio), line_items: [
|
|
292
450
|
{
|
|
293
451
|
price: productInfo.default_price.id,
|
|
294
452
|
quantity: 1,
|
|
295
453
|
},
|
|
296
|
-
], mode: 'subscription', metadata:
|
|
297
|
-
userId: user.id,
|
|
298
|
-
} }));
|
|
454
|
+
], mode: 'subscription', metadata: metadata }));
|
|
299
455
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Checkout Session Success!`);
|
|
300
456
|
return {
|
|
301
457
|
success: true,
|
|
@@ -377,17 +533,36 @@ export class SubscriptionController {
|
|
|
377
533
|
const customerId = subscription.customer;
|
|
378
534
|
console.log(`[SubscriptionController] [handleStripeWebhook] Customer ID: ${customerId}. Subscription status: ${status}. Tier: ${tier}. Is Active: ${active}.`);
|
|
379
535
|
const user = yield this._authStore.findUserByStripeCustomerId(customerId);
|
|
380
|
-
if (
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
536
|
+
if (user) {
|
|
537
|
+
if (user.subscriptionStatus !== status ||
|
|
538
|
+
user.subscriptionId !== sub.id) {
|
|
539
|
+
console.log(`[SubscriptionController] [handleStripeWebhook] User (${user.id}) subscription status doesn't match stored. Updating...`);
|
|
540
|
+
yield this._authStore.saveUser(Object.assign(Object.assign({}, user), { subscriptionStatus: status, subscriptionId: sub.id }));
|
|
541
|
+
}
|
|
542
|
+
else {
|
|
543
|
+
return {
|
|
544
|
+
success: true,
|
|
545
|
+
};
|
|
546
|
+
}
|
|
385
547
|
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
548
|
+
console.log(`[SubscriptionController] [handleStripeWebhook] No user found for Customer ID (${customerId})`);
|
|
549
|
+
const studio = yield this._recordsStore.getStudioByStripeCustomerId(customerId);
|
|
550
|
+
if (studio) {
|
|
551
|
+
if (studio.subscriptionStatus !== status ||
|
|
552
|
+
studio.subscriptionId !== sub.id) {
|
|
553
|
+
console.log(`[SubscriptionController] [handleStripeWebhook] Studio ((${studio.id})) subscription status doesn't match stored. Updating...`);
|
|
554
|
+
yield this._recordsStore.updateStudio(Object.assign(Object.assign({}, studio), { subscriptionStatus: status, subscriptionId: sub.id }));
|
|
555
|
+
}
|
|
556
|
+
else {
|
|
557
|
+
return {
|
|
558
|
+
success: true,
|
|
559
|
+
};
|
|
560
|
+
}
|
|
390
561
|
}
|
|
562
|
+
console.log(`[SubscriptionController] [handleStripeWebhook] No studio found for Customer ID (${customerId})`);
|
|
563
|
+
return {
|
|
564
|
+
success: true,
|
|
565
|
+
};
|
|
391
566
|
}
|
|
392
567
|
return {
|
|
393
568
|
success: true,
|
|
@@ -433,4 +608,15 @@ function isValidSubscription(sub) {
|
|
|
433
608
|
typeof sub.product === 'string' &&
|
|
434
609
|
typeof sub.defaultSubscription === 'boolean');
|
|
435
610
|
}
|
|
611
|
+
function returnRoute(basePath, user, studio) {
|
|
612
|
+
if (user) {
|
|
613
|
+
return basePath;
|
|
614
|
+
}
|
|
615
|
+
else {
|
|
616
|
+
return studiosRoute(basePath, studio.id, studio.displayName);
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
function studiosRoute(basePath, studioId, studioName) {
|
|
620
|
+
return new URL(`/studios/${encodeURIComponent(studioId)}/${encodeURIComponent(studioName)}`, basePath).href;
|
|
621
|
+
}
|
|
436
622
|
//# sourceMappingURL=SubscriptionController.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubscriptionController.js","sourceRoot":"","sources":["SubscriptionController.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SubscriptionController.js","sourceRoot":"","sources":["SubscriptionController.ts"],"names":[],"mappings":"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"}
|