@mathrunet/masamune 2.6.2 → 2.6.3

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.
Files changed (137) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/dist/lib/functions/firestore.js +14 -5
  3. package/dist/lib/functions/firestore.js.map +1 -1
  4. package/dist/lib/functions/send_notification.js +1 -1
  5. package/package.json +1 -1
  6. package/dist/converter/firestore_basic_converter.d.ts +0 -20
  7. package/dist/converter/firestore_basic_converter.js +0 -25
  8. package/dist/converter/firestore_basic_converter.js.map +0 -1
  9. package/dist/converter/firestore_enum_converter.d.ts +0 -20
  10. package/dist/converter/firestore_enum_converter.js +0 -25
  11. package/dist/converter/firestore_enum_converter.js.map +0 -1
  12. package/dist/converter/firestore_model_command_base_converter.d.ts +0 -20
  13. package/dist/converter/firestore_model_command_base_converter.js +0 -38
  14. package/dist/converter/firestore_model_command_base_converter.js.map +0 -1
  15. package/dist/converter/firestore_model_counter_converter.d.ts +0 -20
  16. package/dist/converter/firestore_model_counter_converter.js +0 -78
  17. package/dist/converter/firestore_model_counter_converter.js.map +0 -1
  18. package/dist/converter/firestore_model_date_converter.d.ts +0 -20
  19. package/dist/converter/firestore_model_date_converter.js +0 -95
  20. package/dist/converter/firestore_model_date_converter.js.map +0 -1
  21. package/dist/converter/firestore_model_geo_value_converter.d.ts +0 -20
  22. package/dist/converter/firestore_model_geo_value_converter.js +0 -77
  23. package/dist/converter/firestore_model_geo_value_converter.js.map +0 -1
  24. package/dist/converter/firestore_model_image_uri_converter.d.ts +0 -20
  25. package/dist/converter/firestore_model_image_uri_converter.js +0 -74
  26. package/dist/converter/firestore_model_image_uri_converter.js.map +0 -1
  27. package/dist/converter/firestore_model_locale_converter.d.ts +0 -20
  28. package/dist/converter/firestore_model_locale_converter.js +0 -74
  29. package/dist/converter/firestore_model_locale_converter.js.map +0 -1
  30. package/dist/converter/firestore_model_localized_value_converter.d.ts +0 -20
  31. package/dist/converter/firestore_model_localized_value_converter.js +0 -36
  32. package/dist/converter/firestore_model_localized_value_converter.js.map +0 -1
  33. package/dist/converter/firestore_model_ref_converter.d.ts +0 -20
  34. package/dist/converter/firestore_model_ref_converter.js +0 -60
  35. package/dist/converter/firestore_model_ref_converter.js.map +0 -1
  36. package/dist/converter/firestore_model_search_converter.d.ts +0 -20
  37. package/dist/converter/firestore_model_search_converter.js +0 -36
  38. package/dist/converter/firestore_model_search_converter.js.map +0 -1
  39. package/dist/converter/firestore_model_timestamp_converter.d.ts +0 -20
  40. package/dist/converter/firestore_model_timestamp_converter.js +0 -95
  41. package/dist/converter/firestore_model_timestamp_converter.js.map +0 -1
  42. package/dist/converter/firestore_model_token_converter.d.ts +0 -20
  43. package/dist/converter/firestore_model_token_converter.js +0 -36
  44. package/dist/converter/firestore_model_token_converter.js.map +0 -1
  45. package/dist/converter/firestore_model_uri_converter.d.ts +0 -20
  46. package/dist/converter/firestore_model_uri_converter.js +0 -74
  47. package/dist/converter/firestore_model_uri_converter.js.map +0 -1
  48. package/dist/converter/firestore_model_video_uri_converter.d.ts +0 -20
  49. package/dist/converter/firestore_model_video_uri_converter.js +0 -74
  50. package/dist/converter/firestore_model_video_uri_converter.js.map +0 -1
  51. package/dist/converter/firestore_null_converter.d.ts +0 -20
  52. package/dist/converter/firestore_null_converter.js +0 -25
  53. package/dist/converter/firestore_null_converter.js.map +0 -1
  54. package/dist/exntension/string.extension.d.ts +0 -179
  55. package/dist/exntension/string.extension.js +0 -190
  56. package/dist/exntension/string.extension.js.map +0 -1
  57. package/dist/functions/notification.d.ts +0 -1
  58. package/dist/functions/notification.js +0 -111
  59. package/dist/functions/notification.js.map +0 -1
  60. package/dist/functions/send_notification_schedule.d.ts +0 -1
  61. package/dist/functions/send_notification_schedule.js +0 -86
  62. package/dist/functions/send_notification_schedule.js.map +0 -1
  63. package/dist/functions/stripe_hook.d.ts +0 -1
  64. package/dist/functions/stripe_hook.js +0 -573
  65. package/dist/functions/stripe_hook.js.map +0 -1
  66. package/dist/functions/stripe_hook_connect.d.ts +0 -1
  67. package/dist/functions/stripe_hook_connect.js +0 -140
  68. package/dist/functions/stripe_hook_connect.js.map +0 -1
  69. package/dist/functions/stripe_hook_secure.d.ts +0 -1
  70. package/dist/functions/stripe_hook_secure.js +0 -150
  71. package/dist/functions/stripe_hook_secure.js.map +0 -1
  72. package/dist/lib/call_process_function_base.d.ts +0 -39
  73. package/dist/lib/call_process_function_base.js +0 -69
  74. package/dist/lib/call_process_function_base.js.map +0 -1
  75. package/dist/lib/default_firestore_model_field_value_converter.d.ts +0 -8
  76. package/dist/lib/default_firestore_model_field_value_converter.js +0 -44
  77. package/dist/lib/default_firestore_model_field_value_converter.js.map +0 -1
  78. package/dist/lib/firestore_model_field_value_converter.d.ts +0 -140
  79. package/dist/lib/firestore_model_field_value_converter.js +0 -127
  80. package/dist/lib/firestore_model_field_value_converter.js.map +0 -1
  81. package/dist/lib/functions_base.d.ts +0 -195
  82. package/dist/lib/functions_base.js +0 -37
  83. package/dist/lib/functions_base.js.map +0 -1
  84. package/dist/lib/functions_data.d.ts +0 -10
  85. package/dist/lib/functions_data.js +0 -19
  86. package/dist/lib/functions_data.js.map +0 -1
  87. package/dist/lib/gmail.d.ts +0 -39
  88. package/dist/lib/gmail.js +0 -65
  89. package/dist/lib/gmail.js.map +0 -1
  90. package/dist/lib/model_field_value.d.ts +0 -82
  91. package/dist/lib/model_field_value.js +0 -104
  92. package/dist/lib/model_field_value.js.map +0 -1
  93. package/dist/lib/request_process_function_base.d.ts +0 -39
  94. package/dist/lib/request_process_function_base.js +0 -69
  95. package/dist/lib/request_process_function_base.js.map +0 -1
  96. package/dist/lib/schedule_process_function_base.d.ts +0 -33
  97. package/dist/lib/schedule_process_function_base.js +0 -70
  98. package/dist/lib/schedule_process_function_base.js.map +0 -1
  99. package/dist/lib/send_gmail.d.ts +0 -34
  100. package/dist/lib/send_gmail.js +0 -90
  101. package/dist/lib/send_gmail.js.map +0 -1
  102. package/dist/lib/send_grid.d.ts +0 -33
  103. package/dist/lib/send_grid.js +0 -58
  104. package/dist/lib/send_grid.js.map +0 -1
  105. package/dist/lib/send_notification.d.ts +0 -59
  106. package/dist/lib/send_notification.js +0 -216
  107. package/dist/lib/send_notification.js.map +0 -1
  108. package/dist/lib/sql_api_base.d.ts +0 -185
  109. package/dist/lib/sql_api_base.js +0 -94
  110. package/dist/lib/sql_api_base.js.map +0 -1
  111. package/dist/lib/update_subscription.d.ts +0 -83
  112. package/dist/lib/update_subscription.js +0 -143
  113. package/dist/lib/update_subscription.js.map +0 -1
  114. package/dist/lib/update_unlock.d.ts +0 -13
  115. package/dist/lib/update_unlock.js +0 -64
  116. package/dist/lib/update_unlock.js.map +0 -1
  117. package/dist/lib/update_wallet.d.ts +0 -19
  118. package/dist/lib/update_wallet.js +0 -70
  119. package/dist/lib/update_wallet.js.map +0 -1
  120. package/dist/lib/verify_android.d.ts +0 -50
  121. package/dist/lib/verify_android.js +0 -121
  122. package/dist/lib/verify_android.js.map +0 -1
  123. package/dist/lib/verify_ios.d.ts +0 -26
  124. package/dist/lib/verify_ios.js +0 -110
  125. package/dist/lib/verify_ios.js.map +0 -1
  126. package/dist/src/functions/notification.d.ts +0 -1
  127. package/dist/src/functions/notification.js +0 -111
  128. package/dist/src/functions/notification.js.map +0 -1
  129. package/dist/src/functions.d.ts +0 -14
  130. package/dist/src/functions.js +0 -41
  131. package/dist/src/functions.js.map +0 -1
  132. package/dist/src/index.d.ts +0 -13
  133. package/dist/src/index.js +0 -51
  134. package/dist/src/index.js.map +0 -1
  135. package/dist/src/lib/functions_data.d.ts +0 -25
  136. package/dist/src/lib/functions_data.js +0 -31
  137. package/dist/src/lib/functions_data.js.map +0 -1
@@ -1,573 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
26
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
27
- return new (P || (P = Promise))(function (resolve, reject) {
28
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
29
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
30
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
31
- step((generator = generator.apply(thisArg, _arguments || [])).next());
32
- });
33
- };
34
- Object.defineProperty(exports, "__esModule", { value: true });
35
- const functions = __importStar(require("firebase-functions"));
36
- const stripe = __importStar(require("stripe"));
37
- const admin = __importStar(require("firebase-admin"));
38
- /**
39
- * Receives and processes webhooks from Stripe.
40
- * Please register the URL when you deploy this in your Stripe webhook settings.
41
- * Firestore integration is a must; please make Firestore available as well.
42
- *
43
- * StripeからのWebhookを受け取り処理を行います。
44
- * こちらをデプロイした際のURLをStripeのWebhook設定に登録してください。
45
- * Firestoreとの連携が必須です。Firestoreも利用可能にしてください。
46
- *
47
- * @param {string} purchase.stripe.secret_key
48
- * API key (secret key) to connect to Stripe.
49
- * Log in to the following URL and create a project.
50
- * After the project is created, the secret key can be copied.
51
- *
52
- * Stripeへ接続するためのAPIキー(シークレットキー)。
53
- * 下記URLにログインし、プロジェクトを作成します。
54
- * プロジェクト作成後、シークレットキーをコピーすることができます。
55
- *
56
- * Production environment
57
- * https://dashboard.stripe.com/apikeys
58
- * Development enveironment
59
- * https://dashboard.stripe.com/test/apikeys
60
- *
61
- * @param {string} purchase.stripe.user_path
62
- * Stripe user (customer) pass.
63
- * Stripeのユーザー(カスタマー)用パス。
64
- *
65
- * @param {string} purchase.stripe.payment_path
66
- * Path for payment method information to be placed under [purchase.stripe.user_path].
67
- * [purchase.stripe.user_path]の下に配置する支払い方法の情報用パス。
68
- *
69
- * @param {string} purchase.stripe.purchase_path
70
- * Path for purchase information to be placed under [purchase.stripe.user_path].
71
- * [purchase.stripe.user_path]の下に配置する購入情報用パス。
72
- *
73
- * @param {string} purchase.stripe.webhook_secret
74
- * Specify the **Signature Secret** after setting it up as a webhook.
75
- * Webhookとして設定したあとの**署名シークレット**を指定します。
76
- *
77
- */
78
- module.exports = (regions) => functions.region(...regions).https.onRequest((req, res) => __awaiter(void 0, void 0, void 0, function* () {
79
- var _a;
80
- try {
81
- const config = functions.config().purchase;
82
- const stripeConfig = config.stripe;
83
- const apiKey = stripeConfig.secret_key;
84
- const stripeUserPath = stripeConfig.user_path;
85
- const stripePurchasePath = stripeConfig.purchase_path;
86
- const stripeWebhookSecret = stripeConfig.webhook_secret;
87
- const firestoreInstance = admin.firestore();
88
- const stripeClient = new stripe.Stripe(apiKey, {
89
- apiVersion: "2022-11-15",
90
- });
91
- const signature = req.headers["stripe-signature"];
92
- if (!signature) {
93
- res.status(403).send(JSON.stringify({
94
- "error": "Access denied.",
95
- }));
96
- return;
97
- }
98
- const event = stripeClient.webhooks.constructEvent(req.rawBody, signature, stripeWebhookSecret);
99
- switch (event.type) {
100
- case "payment_intent.requires_action":
101
- case "payment_intent.amount_capturable_updated": {
102
- const payment = event.data.object;
103
- const purchaseId = payment["id"];
104
- const customerId = payment["customer"];
105
- const status = payment["status"];
106
- if (!customerId) {
107
- res.status(404).send(JSON.stringify({
108
- "error": "The customer id is not found.",
109
- }));
110
- return;
111
- }
112
- if (!status) {
113
- res.status(404).send(JSON.stringify({
114
- "error": "The status is not found.",
115
- }));
116
- return;
117
- }
118
- const userCol = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
119
- if (userCol.empty) {
120
- res.status(404).send(JSON.stringify({
121
- "error": "The account data is not found.",
122
- }));
123
- return;
124
- }
125
- const user = userCol.docs[0];
126
- const userId = user.id;
127
- const purchaseCol = yield firestoreInstance.collection(`${stripeUserPath}/${userId}/${stripePurchasePath}`).where("purchaseId", "==", purchaseId).get();
128
- if (purchaseCol.empty) {
129
- res.status(404).send(JSON.stringify({
130
- "error": "The purchase data is not found.",
131
- }));
132
- return;
133
- }
134
- const purchase = purchaseCol.docs[0];
135
- const update = {};
136
- switch (status) {
137
- case "requires_payment_method":
138
- case "requires_confirmation": {
139
- update["confirm"] = false;
140
- update["verify"] = false;
141
- update["capture"] = false;
142
- update["success"] = false;
143
- break;
144
- }
145
- case "requires_action": {
146
- update["confirm"] = true;
147
- update["verify"] = false;
148
- update["capture"] = false;
149
- update["success"] = false;
150
- break;
151
- }
152
- case "requires_capture": {
153
- update["confirm"] = true;
154
- update["verify"] = true;
155
- update["capture"] = false;
156
- update["success"] = false;
157
- break;
158
- }
159
- }
160
- update["updatedTime"] = new Date();
161
- yield purchase.ref.set(update, {
162
- merge: true,
163
- });
164
- res.status(200).send(JSON.stringify({
165
- "success": true,
166
- }));
167
- return;
168
- }
169
- case "payment_intent.succeeded": {
170
- const payment = event.data.object;
171
- const purchaseId = payment["id"];
172
- const customerId = payment["customer"];
173
- if (!customerId) {
174
- res.status(404).send(JSON.stringify({
175
- "error": "The customer id is not found.",
176
- }));
177
- return;
178
- }
179
- const userCol = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
180
- if (userCol.empty) {
181
- res.status(404).send(JSON.stringify({
182
- "error": "The account data is not found.",
183
- }));
184
- return;
185
- }
186
- const user = userCol.docs[0];
187
- const userId = user.id;
188
- const purchaseCol = yield firestoreInstance.collection(`${stripeUserPath}/${userId}/${stripePurchasePath}`).where("purchaseId", "==", purchaseId).get();
189
- if (purchaseCol.empty) {
190
- res.status(404).send(JSON.stringify({
191
- "error": "The purchase data is not found.",
192
- }));
193
- return;
194
- }
195
- const purchase = purchaseCol.docs[0];
196
- const update = {};
197
- update["confirm"] = true;
198
- update["verify"] = true;
199
- update["capture"] = true;
200
- update["success"] = true;
201
- update["error"] = admin.firestore.FieldValue.delete();
202
- update["errorMessage"] = admin.firestore.FieldValue.delete();
203
- update["updatedTime"] = new Date();
204
- if (payment["charges"] && payment["charges"]["data"] && payment["charges"]["data"].length > 0 && payment["charges"]["data"][0]) {
205
- if (payment["charges"]["data"][0]["receipt_url"]) {
206
- update["receiptUrl"] = payment["charges"]["data"][0]["receipt_url"];
207
- }
208
- if (payment["charges"]["data"][0]["amount_captured"]) {
209
- update["capturedAmount"] = payment["charges"]["data"][0]["amount_captured"];
210
- }
211
- }
212
- yield purchase.ref.set(update, {
213
- merge: true,
214
- });
215
- res.status(200).send(JSON.stringify({
216
- "success": true,
217
- }));
218
- return;
219
- }
220
- case "payment_intent.payment_failed": {
221
- const payment = event.data.object;
222
- const purchaseId = payment["id"];
223
- const customerId = payment["customer"];
224
- const status = payment["status"];
225
- if (!customerId) {
226
- res.status(404).send(JSON.stringify({
227
- "error": "The customer id is not found.",
228
- }));
229
- return;
230
- }
231
- const userCol = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
232
- if (userCol.empty) {
233
- res.status(404).send(JSON.stringify({
234
- "error": "The account data is not found.",
235
- }));
236
- return;
237
- }
238
- const user = userCol.docs[0];
239
- const userId = user.id;
240
- const purchaseCol = yield firestoreInstance.collection(`${stripeUserPath}/${userId}/${stripePurchasePath}`).where("purchaseId", "==", purchaseId).get();
241
- if (purchaseCol.empty) {
242
- res.status(404).send(JSON.stringify({
243
- "error": "The purchase data is not found.",
244
- }));
245
- return;
246
- }
247
- const errorMessage = payment["last_payment_error"]["message"];
248
- const purchase = purchaseCol.docs[0];
249
- const update = {};
250
- switch (status) {
251
- case "requires_payment_method":
252
- case "requires_confirmation": {
253
- update["confirm"] = false;
254
- update["verify"] = false;
255
- update["capture"] = false;
256
- update["success"] = false;
257
- break;
258
- }
259
- case "requires_action": {
260
- update["confirm"] = true;
261
- update["verify"] = false;
262
- update["capture"] = false;
263
- update["success"] = false;
264
- break;
265
- }
266
- case "requires_capture": {
267
- update["confirm"] = true;
268
- update["verify"] = true;
269
- update["capture"] = false;
270
- update["success"] = false;
271
- break;
272
- }
273
- }
274
- update["updatedTime"] = new Date();
275
- update["error"] = true;
276
- update["errorMessage"] = errorMessage;
277
- yield purchase.ref.set(update, {
278
- merge: true,
279
- });
280
- res.status(200).send(JSON.stringify({
281
- "success": true,
282
- }));
283
- return;
284
- }
285
- case "payment_method.detached":
286
- case "payment_method.updated": {
287
- const payment = event.data.object;
288
- const previous = event.data.previous_attributes;
289
- let customerId = payment["customer"];
290
- if (!customerId) {
291
- customerId = previous["customer"];
292
- }
293
- if (!customerId) {
294
- res.status(404).send(JSON.stringify({
295
- "error": "The customer id is not found.",
296
- }));
297
- return;
298
- }
299
- const col = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
300
- if (col.empty) {
301
- res.status(404).send(JSON.stringify({
302
- "error": "The account data is not found.",
303
- }));
304
- return;
305
- }
306
- const user = col.docs[0];
307
- const userId = user.id;
308
- yield syncStripePayment(stripeClient, firestoreInstance, userId, customerId);
309
- res.status(200).send(JSON.stringify({
310
- "success": true,
311
- }));
312
- return;
313
- }
314
- case "customer.updated": {
315
- const customer = event.data.object;
316
- const customerId = customer["id"];
317
- if (!customerId) {
318
- res.status(404).send(JSON.stringify({
319
- "error": "The customer id is not found.",
320
- }));
321
- return;
322
- }
323
- const col = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
324
- if (col.empty) {
325
- res.status(404).send(JSON.stringify({
326
- "error": "The account data is not found.",
327
- }));
328
- return;
329
- }
330
- const user = col.docs[0];
331
- const userId = user.id;
332
- yield syncStripePayment(stripeClient, firestoreInstance, userId, customerId);
333
- res.status(200).send(JSON.stringify({
334
- "success": true,
335
- }));
336
- return;
337
- }
338
- case "checkout.session.completed": {
339
- const session = event.data.object;
340
- const customerId = session["customer"];
341
- if (!customerId) {
342
- res.status(404).send(JSON.stringify({
343
- "error": "The customer id is not found.",
344
- }));
345
- return;
346
- }
347
- const setupIntent = session["setup_intent"];
348
- if (!setupIntent) {
349
- res.status(404).send(JSON.stringify({
350
- "error": "The setup intent is not found.",
351
- }));
352
- return;
353
- }
354
- const col = yield firestoreInstance.collection(`${stripeUserPath}`).where("customer", "==", customerId).get();
355
- if (col.empty) {
356
- res.status(404).send(JSON.stringify({
357
- "error": "The account data is not found.",
358
- }));
359
- return;
360
- }
361
- const user = col.docs[0];
362
- const userId = user.id;
363
- const update = {};
364
- if (session["setup_intent"]) {
365
- update["setupIntent"] = session["setup_intent"];
366
- }
367
- yield user.ref.set(update, {
368
- merge: true,
369
- });
370
- yield syncStripePayment(stripeClient, firestoreInstance, userId, customerId);
371
- res.status(200).send(JSON.stringify({
372
- "success": true,
373
- }));
374
- return;
375
- }
376
- case "customer.subscription.trial_will_end":
377
- case "customer.subscription.updated":
378
- case "customer.subscription.created": {
379
- const now = new Date();
380
- const update = {};
381
- const subscription = event.data.object;
382
- const status = subscription["status"];
383
- if (status != "active") {
384
- res.status(200).send(JSON.stringify({
385
- "success": "Subscription is not active.",
386
- }));
387
- return;
388
- }
389
- const endDate = new Date(subscription["current_period_end"] * 1000);
390
- const id = subscription["id"];
391
- const userId = subscription.metadata.userId;
392
- const orderId = (_a = subscription.metadata.orderId) !== null && _a !== void 0 ? _a : id;
393
- const targetPath = `${stripePurchasePath}/${orderId}`;
394
- const plan = subscription.plan;
395
- let doc;
396
- const subscriptionCol = yield firestoreInstance.collection(`${stripePurchasePath}`).where("subscription", "==", id).get();
397
- if (subscriptionCol.empty) {
398
- doc = yield firestoreInstance.doc(targetPath);
399
- }
400
- else {
401
- doc = subscriptionCol.docs[0].ref;
402
- }
403
- update["expired"] = now >= endDate;
404
- if (userId) {
405
- update["user"] = userId;
406
- }
407
- update["@uid"] = orderId;
408
- update["@time"] = new Date();
409
- update["subscription"] = id;
410
- update["application"] = subscription["application"];
411
- update["application_fee_percent"] = subscription["application_fee_percent"];
412
- update["cancel_at"] = subscription["cancel_at"];
413
- update["cancel_at_period_end"] = subscription["cancel_at_period_end"];
414
- update["canceled_at"] = subscription["canceled_at"];
415
- update["collection_method"] = subscription["collection_method"];
416
- update["currency"] = subscription["currency"];
417
- update["current_period_start"] = subscription["current_period_start"];
418
- update["current_period_end"] = subscription["current_period_end"];
419
- update["customer"] = subscription["customer"];
420
- update["default_payment_method"] = subscription["default_payment_method"];
421
- update["ended_at"] = subscription["ended_at"];
422
- update["latest_invoice"] = subscription["latest_invoice"];
423
- update["price_id"] = plan["id"];
424
- update["active"] = plan["active"];
425
- update["amount"] = plan["amount"];
426
- update["billing_scheme"] = plan["billing_scheme"];
427
- update["interval"] = plan["interval"];
428
- update["interval_count"] = plan["interval_count"];
429
- update["usage_type"] = plan["usage_type"];
430
- update["quantity"] = subscription["quantity"];
431
- update["start_date"] = subscription["start_date"];
432
- update["start_date"] = subscription["start_date"];
433
- console.log(`Subscription status is ${status} ${stripePurchasePath}.`);
434
- yield doc.set(update, {
435
- merge: true,
436
- });
437
- res.status(200).send(JSON.stringify({
438
- "success": "Subscription is active.",
439
- }));
440
- break;
441
- }
442
- case "customer.subscription.deleted": {
443
- const subscription = event.data.object;
444
- const status = subscription["status"];
445
- console.log(`Subscription status is ${status} ${"expired"}.`);
446
- // Then define and call a method to handle the subscription deleted.
447
- // handleSubscriptionDeleted(subscriptionDeleted);
448
- break;
449
- }
450
- default: {
451
- res.status(404).send(JSON.stringify({
452
- "error": "Event is not found.",
453
- }));
454
- return;
455
- }
456
- }
457
- }
458
- catch (err) {
459
- console.error(err);
460
- throw err;
461
- }
462
- }));
463
- /**
464
- * Synchronize Stripe acquisition results to Firestore.
465
- *
466
- * Stripeの取得結果をFirestoreに同期します。
467
- *
468
- * @param {stripe.Stripe} stripeClient
469
- * Stripe client instances.
470
- * ストライプのクライアントインスタンス。
471
- *
472
- * @param {FirebaseFirestore.Firestore} firestoreInstance
473
- * Firestore client instances.
474
- * Firestoreのクライアントインスタンス。
475
- *
476
- * @param {string} userId
477
- * User ID.
478
- * ユーザーID。
479
- *
480
- * @param {string} customerId
481
- * Customer ID.
482
- * 顧客ID。
483
- *
484
- * @returns {Promise<void>}
485
- *
486
- */
487
- function syncStripePayment(stripeClient, firestoreInstance, userId, customerId) {
488
- return __awaiter(this, void 0, void 0, function* () {
489
- const config = functions.config().purchase;
490
- const stripeConfig = config.stripe;
491
- const stripeUserPath = stripeConfig.user_path;
492
- const stripePaymentPath = stripeConfig.payment_path;
493
- const customer = yield stripeClient.customers.retrieve(customerId);
494
- let defaultSource = customer.invoice_settings.default_payment_method;
495
- const paymentMethods = yield stripeClient.customers.listPaymentMethods(customerId, {
496
- type: "card",
497
- });
498
- if (!defaultSource && paymentMethods.data.length > 0) {
499
- defaultSource = paymentMethods.data[0].id;
500
- yield stripeClient.customers.update(customerId, {
501
- invoice_settings: {
502
- default_payment_method: defaultSource,
503
- },
504
- });
505
- }
506
- const payments = yield firestoreInstance.collection(`${stripeUserPath}/${userId}/${stripePaymentPath}`).get();
507
- yield firestoreInstance.runTransaction((transaction) => __awaiter(this, void 0, void 0, function* () {
508
- payments.docs.forEach((doc) => {
509
- const data = doc.data();
510
- const method = paymentMethods.data.find((m) => m.id == data["id"]);
511
- if (!method) {
512
- transaction.delete(doc.ref);
513
- }
514
- else {
515
- const card = method.card;
516
- if (!card) {
517
- return;
518
- }
519
- const update = {};
520
- const isDefault = method.id == defaultSource;
521
- if (method.type === data["type"] && card.exp_month === data["expMonth"] && card.exp_year === data["expYear"] && card.brand === data["brand"] && card.last4 === data["numberLast"] && card.last4 === data["numberLast"] && isDefault === data["default"]) {
522
- return;
523
- }
524
- update["type"] = method.type;
525
- update["expMonth"] = card.exp_month;
526
- update["expYear"] = card.exp_year;
527
- update["brand"] = card.brand;
528
- update["numberLast"] = card.last4;
529
- update["default"] = isDefault;
530
- transaction.set(doc.ref, update, {
531
- merge: true,
532
- });
533
- }
534
- });
535
- paymentMethods.data.forEach((method) => __awaiter(this, void 0, void 0, function* () {
536
- const card = method.card;
537
- if (!card) {
538
- return;
539
- }
540
- const doc = payments.docs.find((item) => item.data()["id"] == method.id);
541
- if (doc) {
542
- return;
543
- }
544
- const uid = method.id;
545
- const update = {};
546
- const isDefault = method.id == defaultSource;
547
- update["@uid"] = uid;
548
- update["@time"] = new Date();
549
- update["id"] = uid;
550
- update["type"] = method.type;
551
- update["expMonth"] = card.exp_month;
552
- update["expYear"] = card.exp_year;
553
- update["brand"] = card.brand;
554
- update["numberLast"] = card.last4;
555
- update["default"] = isDefault;
556
- transaction.set(firestoreInstance.doc(`${stripeUserPath}/${userId}/${stripePaymentPath}/${uid}`), update, {
557
- merge: true,
558
- });
559
- }));
560
- const update = {};
561
- if (defaultSource) {
562
- update["defaultPayment"] = defaultSource;
563
- }
564
- else {
565
- update["defaultPayment"] = admin.firestore.FieldValue.delete();
566
- }
567
- yield transaction.set(firestoreInstance.doc(`${stripeUserPath}/${userId}`), update, {
568
- merge: true,
569
- });
570
- }));
571
- });
572
- }
573
- //# sourceMappingURL=stripe_hook.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stripe_hook.js","sourceRoot":"","sources":["../../src/functions/stripe_hook.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};