@casual-simulation/aux-records 3.2.3 → 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 +450 -8
- package/RecordsHttpServer.js.map +1 -1
- package/RecordsStore.d.ts +236 -5
- package/SubscriptionConfiguration.d.ts +8 -0
- package/SubscriptionController.d.ts +21 -6
- package/SubscriptionController.js +248 -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
|
*/
|
|
@@ -224,7 +239,7 @@ export interface GetSubscriptionStatusFailure {
|
|
|
224
239
|
/**
|
|
225
240
|
* The error code.
|
|
226
241
|
*/
|
|
227
|
-
errorCode: ServerError | ValidateSessionKeyFailure['errorCode'] | 'unacceptable_user_id' | 'not_supported';
|
|
242
|
+
errorCode: ServerError | ValidateSessionKeyFailure['errorCode'] | 'unacceptable_user_id' | 'unacceptable_studio_id' | 'unacceptable_request' | 'not_supported';
|
|
228
243
|
/**
|
|
229
244
|
* The error message.
|
|
230
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,34 +34,88 @@ 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);
|
|
@@ -89,10 +144,11 @@ export class SubscriptionController {
|
|
|
89
144
|
});
|
|
90
145
|
const purchasableSubscriptions = subscriptions.length > 0
|
|
91
146
|
? []
|
|
92
|
-
: yield this._getPurchasableSubscriptions();
|
|
147
|
+
: yield this._getPurchasableSubscriptions(role);
|
|
93
148
|
return {
|
|
94
149
|
success: true,
|
|
95
150
|
userId: keyResult.userId,
|
|
151
|
+
studioId: request.studioId,
|
|
96
152
|
publishableKey: this._stripe.publishableKey,
|
|
97
153
|
subscriptions,
|
|
98
154
|
purchasableSubscriptions,
|
|
@@ -108,11 +164,21 @@ export class SubscriptionController {
|
|
|
108
164
|
}
|
|
109
165
|
});
|
|
110
166
|
}
|
|
111
|
-
|
|
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) {
|
|
112
180
|
return __awaiter(this, void 0, void 0, function* () {
|
|
113
|
-
const promises = this.
|
|
114
|
-
.filter((s) => { var _a; return (_a = s.purchasable) !== null && _a !== void 0 ? _a : true; })
|
|
115
|
-
.map((s) => __awaiter(this, void 0, void 0, function* () {
|
|
181
|
+
const promises = this._getPurchasableSubscriptionsForRole(role).map((s) => __awaiter(this, void 0, void 0, function* () {
|
|
116
182
|
return ({
|
|
117
183
|
sub: s,
|
|
118
184
|
info: yield this._stripe.getProductAndPriceInfo(s.product),
|
|
@@ -153,11 +219,38 @@ export class SubscriptionController {
|
|
|
153
219
|
};
|
|
154
220
|
}
|
|
155
221
|
try {
|
|
156
|
-
if (
|
|
222
|
+
if (request.userId && request.studioId) {
|
|
223
|
+
return {
|
|
224
|
+
success: false,
|
|
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 {
|
|
157
250
|
return {
|
|
158
251
|
success: false,
|
|
159
|
-
errorCode: '
|
|
160
|
-
errorMessage: 'The given
|
|
252
|
+
errorCode: 'unacceptable_request',
|
|
253
|
+
errorMessage: 'The given request is invalid. It must have a valid user ID or studio ID.',
|
|
161
254
|
};
|
|
162
255
|
}
|
|
163
256
|
if (!!request.subscriptionId &&
|
|
@@ -177,27 +270,77 @@ export class SubscriptionController {
|
|
|
177
270
|
};
|
|
178
271
|
}
|
|
179
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 = {};
|
|
180
282
|
if (keyResult.success === false) {
|
|
181
283
|
return keyResult;
|
|
182
284
|
}
|
|
183
|
-
else if (
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
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}).`);
|
|
190
304
|
}
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
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;
|
|
201
344
|
if (!customerId) {
|
|
202
345
|
if (this._config.subscriptions.length <= 0) {
|
|
203
346
|
return {
|
|
@@ -208,16 +351,25 @@ export class SubscriptionController {
|
|
|
208
351
|
}
|
|
209
352
|
console.log('[SubscriptionController] [createManageSubscriptionLink] No Stripe Customer ID. Creating New Customer and Checkout Session in Stripe.');
|
|
210
353
|
const result = yield this._stripe.createCustomer({
|
|
211
|
-
name:
|
|
212
|
-
email:
|
|
213
|
-
phone:
|
|
354
|
+
name: customerName,
|
|
355
|
+
email: customerEmail,
|
|
356
|
+
phone: customerPhone,
|
|
357
|
+
metadata: customerMetadata,
|
|
214
358
|
});
|
|
215
|
-
customerId =
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
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);
|
|
219
371
|
}
|
|
220
|
-
console.log(`[SubscriptionController] [createManageSubscriptionLink]
|
|
372
|
+
console.log(`[SubscriptionController] [createManageSubscriptionLink] Has Stripe Customer ID (${customerId}). Checking active subscriptions for customer.`);
|
|
221
373
|
const subs = yield this._stripe.listActiveSubscriptionsForCustomer(customerId);
|
|
222
374
|
const hasSubscription = subs.subscriptions.some((s) => {
|
|
223
375
|
const isManagable = s.status === 'active' ||
|
|
@@ -234,7 +386,7 @@ export class SubscriptionController {
|
|
|
234
386
|
});
|
|
235
387
|
if (hasSubscription) {
|
|
236
388
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Customer has a managable subscription. Creating a portal session.`);
|
|
237
|
-
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) }));
|
|
238
390
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Portal session success!`);
|
|
239
391
|
return {
|
|
240
392
|
success: true,
|
|
@@ -242,10 +394,10 @@ export class SubscriptionController {
|
|
|
242
394
|
};
|
|
243
395
|
}
|
|
244
396
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Customer does not have a managable subscription. Creating a checkout session.`);
|
|
245
|
-
return yield this._createCheckoutSession(request, user,
|
|
397
|
+
return yield this._createCheckoutSession(request, customerId, metadata, role, user, studio);
|
|
246
398
|
}
|
|
247
399
|
catch (err) {
|
|
248
|
-
console.
|
|
400
|
+
console.error('[SubscriptionController] An error occurred while creating a manage subscription link:', err);
|
|
249
401
|
return {
|
|
250
402
|
success: false,
|
|
251
403
|
errorCode: 'server_error',
|
|
@@ -254,24 +406,25 @@ export class SubscriptionController {
|
|
|
254
406
|
}
|
|
255
407
|
});
|
|
256
408
|
}
|
|
257
|
-
_createCheckoutSession(request, user,
|
|
409
|
+
_createCheckoutSession(request, customerId, metadata, role, user, studio) {
|
|
258
410
|
var _a;
|
|
259
411
|
return __awaiter(this, void 0, void 0, function* () {
|
|
412
|
+
const purchasableSubscriptions = this._getPurchasableSubscriptionsForRole(role);
|
|
260
413
|
let sub;
|
|
261
414
|
if (request.subscriptionId) {
|
|
262
|
-
sub =
|
|
415
|
+
sub = purchasableSubscriptions.find((s) => s.id === request.subscriptionId);
|
|
263
416
|
if (sub) {
|
|
264
417
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Using specified subscription (${request.subscriptionId}).`);
|
|
265
418
|
}
|
|
266
419
|
}
|
|
267
420
|
if (!sub) {
|
|
268
|
-
sub =
|
|
421
|
+
sub = purchasableSubscriptions.find((s) => s.defaultSubscription);
|
|
269
422
|
if (sub) {
|
|
270
423
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Using default subscription.`);
|
|
271
424
|
}
|
|
272
425
|
}
|
|
273
426
|
if (!sub) {
|
|
274
|
-
sub =
|
|
427
|
+
sub = purchasableSubscriptions[0];
|
|
275
428
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Using first subscription.`);
|
|
276
429
|
}
|
|
277
430
|
const productInfo = yield this._stripe.getProductAndPriceInfo(sub.product);
|
|
@@ -293,14 +446,12 @@ export class SubscriptionController {
|
|
|
293
446
|
}
|
|
294
447
|
}
|
|
295
448
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Creating Checkout Session.`);
|
|
296
|
-
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: [
|
|
297
450
|
{
|
|
298
451
|
price: productInfo.default_price.id,
|
|
299
452
|
quantity: 1,
|
|
300
453
|
},
|
|
301
|
-
], mode: 'subscription', metadata:
|
|
302
|
-
userId: user.id,
|
|
303
|
-
} }));
|
|
454
|
+
], mode: 'subscription', metadata: metadata }));
|
|
304
455
|
console.log(`[SubscriptionController] [createManageSubscriptionLink] Checkout Session Success!`);
|
|
305
456
|
return {
|
|
306
457
|
success: true,
|
|
@@ -382,17 +533,36 @@ export class SubscriptionController {
|
|
|
382
533
|
const customerId = subscription.customer;
|
|
383
534
|
console.log(`[SubscriptionController] [handleStripeWebhook] Customer ID: ${customerId}. Subscription status: ${status}. Tier: ${tier}. Is Active: ${active}.`);
|
|
384
535
|
const user = yield this._authStore.findUserByStripeCustomerId(customerId);
|
|
385
|
-
if (
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
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
|
+
}
|
|
390
547
|
}
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
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
|
+
}
|
|
395
561
|
}
|
|
562
|
+
console.log(`[SubscriptionController] [handleStripeWebhook] No studio found for Customer ID (${customerId})`);
|
|
563
|
+
return {
|
|
564
|
+
success: true,
|
|
565
|
+
};
|
|
396
566
|
}
|
|
397
567
|
return {
|
|
398
568
|
success: true,
|
|
@@ -438,4 +608,15 @@ function isValidSubscription(sub) {
|
|
|
438
608
|
typeof sub.product === 'string' &&
|
|
439
609
|
typeof sub.defaultSubscription === 'boolean');
|
|
440
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
|
+
}
|
|
441
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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"}
|
package/TestUtils.js
CHANGED
|
@@ -25,7 +25,7 @@ export function createTestControllers(config) {
|
|
|
25
25
|
const authStore = new MemoryAuthStore();
|
|
26
26
|
const authMessenger = new MemoryAuthMessenger();
|
|
27
27
|
const auth = new AuthController(authStore, authMessenger, subConfig, true);
|
|
28
|
-
const recordsStore = new MemoryRecordsStore();
|
|
28
|
+
const recordsStore = new MemoryRecordsStore(authStore);
|
|
29
29
|
const records = new RecordsController(recordsStore, authStore);
|
|
30
30
|
const policyStore = new MemoryPolicyStore();
|
|
31
31
|
const policies = new PolicyController(auth, records, policyStore);
|