@intlayer/backend 3.1.0 → 3.2.1
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/cjs/controllers/dictionary.controller.cjs +41 -0
- package/dist/cjs/controllers/dictionary.controller.cjs.map +1 -1
- package/dist/cjs/controllers/organization.controller.cjs +73 -4
- package/dist/cjs/controllers/organization.controller.cjs.map +1 -1
- package/dist/cjs/controllers/project.controller.cjs +71 -7
- package/dist/cjs/controllers/project.controller.cjs.map +1 -1
- package/dist/cjs/controllers/projectAccessKey.controller.cjs +31 -0
- package/dist/cjs/controllers/projectAccessKey.controller.cjs.map +1 -1
- package/dist/cjs/controllers/sessionAuth.controller.cjs +277 -57
- package/dist/cjs/controllers/sessionAuth.controller.cjs.map +1 -1
- package/dist/cjs/controllers/stripe.controller.cjs +84 -0
- package/dist/cjs/controllers/stripe.controller.cjs.map +1 -0
- package/dist/cjs/controllers/user.controller.cjs +40 -3
- package/dist/cjs/controllers/user.controller.cjs.map +1 -1
- package/dist/cjs/emails/SubscriptionPaymentCancellation.cjs +182 -0
- package/dist/cjs/emails/SubscriptionPaymentCancellation.cjs.map +1 -0
- package/dist/cjs/emails/SubscriptionPaymentError.cjs +182 -0
- package/dist/cjs/emails/SubscriptionPaymentError.cjs.map +1 -0
- package/dist/cjs/emails/SubscriptionPaymentSuccess.cjs +188 -0
- package/dist/cjs/emails/SubscriptionPaymentSuccess.cjs.map +1 -0
- package/dist/cjs/export.cjs.map +1 -1
- package/dist/cjs/index.cjs +15 -5
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/middlewares/sessionAuth.middleware.cjs +4 -6
- package/dist/cjs/middlewares/sessionAuth.middleware.cjs.map +1 -1
- package/dist/cjs/routes/dictionary.routes.cjs +2 -62
- package/dist/cjs/routes/dictionary.routes.cjs.map +1 -1
- package/dist/cjs/routes/organization.routes.cjs +1 -25
- package/dist/cjs/routes/organization.routes.cjs.map +1 -1
- package/dist/cjs/routes/project.routes.cjs +10 -85
- package/dist/cjs/routes/project.routes.cjs.map +1 -1
- package/dist/cjs/routes/sessionAuth.routes.cjs +26 -25
- package/dist/cjs/routes/sessionAuth.routes.cjs.map +1 -1
- package/dist/cjs/{models/plan.moddel.cjs → routes/stripe.routes.cjs} +20 -9
- package/dist/cjs/routes/stripe.routes.cjs.map +1 -0
- package/dist/cjs/routes/user.routes.cjs +6 -27
- package/dist/cjs/routes/user.routes.cjs.map +1 -1
- package/dist/cjs/schemas/organization.schema.cjs +5 -0
- package/dist/cjs/schemas/organization.schema.cjs.map +1 -1
- package/dist/cjs/schemas/plans.schema.cjs +2 -8
- package/dist/cjs/schemas/plans.schema.cjs.map +1 -1
- package/dist/cjs/schemas/user.schema.cjs +1 -1
- package/dist/cjs/schemas/user.schema.cjs.map +1 -1
- package/dist/cjs/services/email.service.cjs +113 -43
- package/dist/cjs/services/email.service.cjs.map +1 -1
- package/dist/cjs/services/organization.service.cjs +55 -8
- package/dist/cjs/services/organization.service.cjs.map +1 -1
- package/dist/cjs/services/project.service.cjs +1 -3
- package/dist/cjs/services/project.service.cjs.map +1 -1
- package/dist/cjs/services/sessionAuth.service.cjs +9 -11
- package/dist/cjs/services/sessionAuth.service.cjs.map +1 -1
- package/dist/cjs/services/subscription.service.cjs +134 -51
- package/dist/cjs/services/subscription.service.cjs.map +1 -1
- package/dist/cjs/services/user.service.cjs +1 -3
- package/dist/cjs/services/user.service.cjs.map +1 -1
- package/dist/cjs/types/organization.types.cjs.map +1 -1
- package/dist/cjs/types/plan.types.cjs.map +1 -1
- package/dist/cjs/types/session.types.cjs.map +1 -1
- package/dist/cjs/utils/errors/ErrorHandler.cjs +29 -9
- package/dist/cjs/utils/errors/ErrorHandler.cjs.map +1 -1
- package/dist/cjs/utils/errors/ErrorsClass.cjs +17 -3
- package/dist/cjs/utils/errors/ErrorsClass.cjs.map +1 -1
- package/dist/cjs/utils/errors/errorCodes.cjs +99 -8
- package/dist/cjs/utils/errors/errorCodes.cjs.map +1 -1
- package/dist/cjs/utils/mapper/project.cjs +1 -1
- package/dist/cjs/utils/mapper/project.cjs.map +1 -1
- package/dist/cjs/utils/plan.cjs +7 -2
- package/dist/cjs/utils/plan.cjs.map +1 -1
- package/dist/cjs/utils/responseData.cjs +8 -0
- package/dist/cjs/utils/responseData.cjs.map +1 -1
- package/dist/cjs/webhooks/stripe.webhook.cjs +133 -0
- package/dist/cjs/webhooks/stripe.webhook.cjs.map +1 -0
- package/dist/esm/controllers/dictionary.controller.mjs +41 -0
- package/dist/esm/controllers/dictionary.controller.mjs.map +1 -1
- package/dist/esm/controllers/organization.controller.mjs +73 -4
- package/dist/esm/controllers/organization.controller.mjs.map +1 -1
- package/dist/esm/controllers/project.controller.mjs +71 -7
- package/dist/esm/controllers/project.controller.mjs.map +1 -1
- package/dist/esm/controllers/projectAccessKey.controller.mjs +31 -0
- package/dist/esm/controllers/projectAccessKey.controller.mjs.map +1 -1
- package/dist/esm/controllers/sessionAuth.controller.mjs +273 -56
- package/dist/esm/controllers/sessionAuth.controller.mjs.map +1 -1
- package/dist/esm/controllers/stripe.controller.mjs +60 -0
- package/dist/esm/controllers/stripe.controller.mjs.map +1 -0
- package/dist/esm/controllers/user.controller.mjs +40 -3
- package/dist/esm/controllers/user.controller.mjs.map +1 -1
- package/dist/esm/emails/SubscriptionPaymentCancellation.mjs +168 -0
- package/dist/esm/emails/SubscriptionPaymentCancellation.mjs.map +1 -0
- package/dist/esm/emails/SubscriptionPaymentError.mjs +168 -0
- package/dist/esm/emails/SubscriptionPaymentError.mjs.map +1 -0
- package/dist/esm/emails/SubscriptionPaymentSuccess.mjs +174 -0
- package/dist/esm/emails/SubscriptionPaymentSuccess.mjs.map +1 -0
- package/dist/esm/export.mjs.map +1 -1
- package/dist/esm/index.mjs +15 -5
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/middlewares/sessionAuth.middleware.mjs +4 -6
- package/dist/esm/middlewares/sessionAuth.middleware.mjs.map +1 -1
- package/dist/esm/routes/dictionary.routes.mjs +2 -62
- package/dist/esm/routes/dictionary.routes.mjs.map +1 -1
- package/dist/esm/routes/organization.routes.mjs +1 -25
- package/dist/esm/routes/organization.routes.mjs.map +1 -1
- package/dist/esm/routes/project.routes.mjs +10 -85
- package/dist/esm/routes/project.routes.mjs.map +1 -1
- package/dist/esm/routes/sessionAuth.routes.mjs +29 -26
- package/dist/esm/routes/sessionAuth.routes.mjs.map +1 -1
- package/dist/esm/routes/stripe.routes.mjs +17 -0
- package/dist/esm/routes/stripe.routes.mjs.map +1 -0
- package/dist/esm/routes/user.routes.mjs +6 -27
- package/dist/esm/routes/user.routes.mjs.map +1 -1
- package/dist/esm/schemas/organization.schema.mjs +5 -0
- package/dist/esm/schemas/organization.schema.mjs.map +1 -1
- package/dist/esm/schemas/plans.schema.mjs +2 -8
- package/dist/esm/schemas/plans.schema.mjs.map +1 -1
- package/dist/esm/schemas/user.schema.mjs +1 -1
- package/dist/esm/schemas/user.schema.mjs.map +1 -1
- package/dist/esm/services/email.service.mjs +125 -43
- package/dist/esm/services/email.service.mjs.map +1 -1
- package/dist/esm/services/organization.service.mjs +51 -7
- package/dist/esm/services/organization.service.mjs.map +1 -1
- package/dist/esm/services/project.service.mjs +1 -3
- package/dist/esm/services/project.service.mjs.map +1 -1
- package/dist/esm/services/sessionAuth.service.mjs +9 -10
- package/dist/esm/services/sessionAuth.service.mjs.map +1 -1
- package/dist/esm/services/subscription.service.mjs +136 -53
- package/dist/esm/services/subscription.service.mjs.map +1 -1
- package/dist/esm/services/user.service.mjs +1 -3
- package/dist/esm/services/user.service.mjs.map +1 -1
- package/dist/esm/utils/errors/ErrorHandler.mjs +29 -9
- package/dist/esm/utils/errors/ErrorHandler.mjs.map +1 -1
- package/dist/esm/utils/errors/ErrorsClass.mjs +17 -3
- package/dist/esm/utils/errors/ErrorsClass.mjs.map +1 -1
- package/dist/esm/utils/errors/errorCodes.mjs +99 -8
- package/dist/esm/utils/errors/errorCodes.mjs.map +1 -1
- package/dist/esm/utils/mapper/project.mjs +1 -1
- package/dist/esm/utils/mapper/project.mjs.map +1 -1
- package/dist/esm/utils/plan.mjs +7 -2
- package/dist/esm/utils/plan.mjs.map +1 -1
- package/dist/esm/utils/responseData.mjs +8 -0
- package/dist/esm/utils/responseData.mjs.map +1 -1
- package/dist/esm/webhooks/stripe.webhook.mjs +113 -0
- package/dist/esm/webhooks/stripe.webhook.mjs.map +1 -0
- package/dist/types/controllers/dictionary.controller.d.ts.map +1 -1
- package/dist/types/controllers/organization.controller.d.ts.map +1 -1
- package/dist/types/controllers/project.controller.d.ts.map +1 -1
- package/dist/types/controllers/projectAccessKey.controller.d.ts.map +1 -1
- package/dist/types/controllers/sessionAuth.controller.d.ts +24 -5
- package/dist/types/controllers/sessionAuth.controller.d.ts.map +1 -1
- package/dist/types/controllers/stripe.controller.d.ts +17 -0
- package/dist/types/controllers/stripe.controller.d.ts.map +1 -0
- package/dist/types/controllers/user.controller.d.ts.map +1 -1
- package/dist/types/emails/SubscriptionPaymentCancellation.d.ts +20 -0
- package/dist/types/emails/SubscriptionPaymentCancellation.d.ts.map +1 -0
- package/dist/types/emails/SubscriptionPaymentError.d.ts +20 -0
- package/dist/types/emails/SubscriptionPaymentError.d.ts.map +1 -0
- package/dist/types/emails/SubscriptionPaymentSuccess.d.ts +20 -0
- package/dist/types/emails/SubscriptionPaymentSuccess.d.ts.map +1 -0
- package/dist/types/export.d.ts +1 -0
- package/dist/types/export.d.ts.map +1 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/middlewares/sessionAuth.middleware.d.ts.map +1 -1
- package/dist/types/models/organization.model.d.ts +1 -0
- package/dist/types/models/organization.model.d.ts.map +1 -1
- package/dist/types/routes/dictionary.routes.d.ts.map +1 -1
- package/dist/types/routes/organization.routes.d.ts.map +1 -1
- package/dist/types/routes/project.routes.d.ts.map +1 -1
- package/dist/types/routes/sessionAuth.routes.d.ts +15 -2
- package/dist/types/routes/sessionAuth.routes.d.ts.map +1 -1
- package/dist/types/routes/stripe.routes.d.ts +10 -0
- package/dist/types/routes/stripe.routes.d.ts.map +1 -0
- package/dist/types/routes/user.routes.d.ts.map +1 -1
- package/dist/types/schemas/organization.schema.d.ts +1 -0
- package/dist/types/schemas/organization.schema.d.ts.map +1 -1
- package/dist/types/schemas/plans.schema.d.ts.map +1 -1
- package/dist/types/services/email.service.d.ts +33 -4
- package/dist/types/services/email.service.d.ts.map +1 -1
- package/dist/types/services/organization.service.d.ts +15 -0
- package/dist/types/services/organization.service.d.ts.map +1 -1
- package/dist/types/services/project.service.d.ts.map +1 -1
- package/dist/types/services/sessionAuth.service.d.ts +1 -8
- package/dist/types/services/sessionAuth.service.d.ts.map +1 -1
- package/dist/types/services/subscription.service.d.ts +20 -5
- package/dist/types/services/subscription.service.d.ts.map +1 -1
- package/dist/types/services/user.service.d.ts.map +1 -1
- package/dist/types/types/organization.types.d.ts +2 -0
- package/dist/types/types/organization.types.d.ts.map +1 -1
- package/dist/types/types/plan.types.d.ts +2 -3
- package/dist/types/types/plan.types.d.ts.map +1 -1
- package/dist/types/types/session.types.d.ts +6 -6
- package/dist/types/types/session.types.d.ts.map +1 -1
- package/dist/types/utils/errors/ErrorHandler.d.ts +5 -3
- package/dist/types/utils/errors/ErrorHandler.d.ts.map +1 -1
- package/dist/types/utils/errors/ErrorsClass.d.ts +4 -1
- package/dist/types/utils/errors/ErrorsClass.d.ts.map +1 -1
- package/dist/types/utils/errors/errorCodes.d.ts +92 -1
- package/dist/types/utils/errors/errorCodes.d.ts.map +1 -1
- package/dist/types/utils/mapper/project.d.ts +1 -1
- package/dist/types/utils/mapper/project.d.ts.map +1 -1
- package/dist/types/utils/plan.d.ts +1 -1
- package/dist/types/utils/plan.d.ts.map +1 -1
- package/dist/types/utils/responseData.d.ts +13 -2
- package/dist/types/utils/responseData.d.ts.map +1 -1
- package/dist/types/webhooks/stripe.d.ts.map +1 -1
- package/dist/types/webhooks/stripe.webhook.d.ts +3 -0
- package/dist/types/webhooks/stripe.webhook.d.ts.map +1 -0
- package/package.json +6 -5
- package/dist/cjs/models/plan.moddel.cjs.map +0 -1
- package/dist/cjs/services/plans.service.cjs +0 -72
- package/dist/cjs/services/plans.service.cjs.map +0 -1
- package/dist/cjs/webhooks/stripe.cjs +0 -94
- package/dist/cjs/webhooks/stripe.cjs.map +0 -1
- package/dist/esm/models/plan.moddel.mjs +0 -7
- package/dist/esm/models/plan.moddel.mjs.map +0 -1
- package/dist/esm/services/plans.service.mjs +0 -44
- package/dist/esm/services/plans.service.mjs.map +0 -1
- package/dist/esm/webhooks/stripe.mjs +0 -70
- package/dist/esm/webhooks/stripe.mjs.map +0 -1
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var plans_service_exports = {};
|
|
20
|
-
__export(plans_service_exports, {
|
|
21
|
-
attachPlanToOrganization: () => attachPlanToOrganization,
|
|
22
|
-
cancelPlan: () => cancelPlan,
|
|
23
|
-
createNewPlan: () => createNewPlan,
|
|
24
|
-
getPlan: () => getPlan,
|
|
25
|
-
updatePlan: () => updatePlan
|
|
26
|
-
});
|
|
27
|
-
module.exports = __toCommonJS(plans_service_exports);
|
|
28
|
-
var import_plan = require('./../models/plan.moddel.cjs');
|
|
29
|
-
const createNewPlan = async (plan) => {
|
|
30
|
-
const planData = {
|
|
31
|
-
type: plan.type,
|
|
32
|
-
userId: plan.userId,
|
|
33
|
-
organizationId: plan.organizationId,
|
|
34
|
-
priceId: plan.priceId,
|
|
35
|
-
status: plan.status
|
|
36
|
-
};
|
|
37
|
-
const planModel = await import_plan.PlanModel.create(planData);
|
|
38
|
-
return planModel;
|
|
39
|
-
};
|
|
40
|
-
const updatePlan = async (planId, plan) => await import_plan.PlanModel.findOneAndUpdate(
|
|
41
|
-
{ _id: planId },
|
|
42
|
-
{ $set: plan },
|
|
43
|
-
{ new: true }
|
|
44
|
-
);
|
|
45
|
-
const getPlan = async (planData) => await import_plan.PlanModel.findOne(planData);
|
|
46
|
-
const attachPlanToOrganization = async (userId, organizationId) => {
|
|
47
|
-
const planModel = await import_plan.PlanModel.findOneAndUpdate(
|
|
48
|
-
{ userId },
|
|
49
|
-
{ $set: { organizationId } },
|
|
50
|
-
{ new: true }
|
|
51
|
-
);
|
|
52
|
-
return planModel;
|
|
53
|
-
};
|
|
54
|
-
const cancelPlan = async (organizationId) => {
|
|
55
|
-
const planModel = await import_plan.PlanModel.findOneAndUpdate(
|
|
56
|
-
{ organizationId },
|
|
57
|
-
{
|
|
58
|
-
$set: { status: "CANCELLED" }
|
|
59
|
-
},
|
|
60
|
-
{ new: true }
|
|
61
|
-
);
|
|
62
|
-
return planModel;
|
|
63
|
-
};
|
|
64
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
65
|
-
0 && (module.exports = {
|
|
66
|
-
attachPlanToOrganization,
|
|
67
|
-
cancelPlan,
|
|
68
|
-
createNewPlan,
|
|
69
|
-
getPlan,
|
|
70
|
-
updatePlan
|
|
71
|
-
});
|
|
72
|
-
//# sourceMappingURL=plans.service.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/plans.service.ts"],"sourcesContent":["import { PlanModel } from '@models/plan.moddel';\nimport { ObjectId } from 'mongoose';\nimport { Plan, PlanData, PlanDocument } from '@/types/plan.types';\n\n/**\n * Creates a new plan in the database.\n * @param plan - The plan data to create.\n * @returns The created plan.\n */\nexport const createNewPlan = async (\n plan: PlanData\n): Promise<PlanDocument | null> => {\n const planData = {\n type: plan.type,\n userId: plan.userId,\n organizationId: plan.organizationId,\n priceId: plan.priceId,\n status: plan.status,\n };\n\n const planModel = await PlanModel.create(planData);\n\n return planModel;\n};\n\n/**\n * Updates an existing plan in the database by its ID.\n * @param planId - The ID of the plan to update.\n * @param plan - The updated plan data.\n * @returns The updated plan.\n */\nexport const updatePlan = async (\n planId: string | ObjectId,\n plan: Partial<Plan>\n): Promise<PlanDocument | null> =>\n await PlanModel.findOneAndUpdate(\n { _id: planId },\n { $set: plan },\n { new: true }\n );\n\nexport type PlanSelector =\n | Pick<PlanDocument, 'organizationId' | 'userId'>\n | Pick<PlanDocument, 'organizationId'>\n | Pick<PlanDocument, '_id'>;\n\n/**\n * Retrieves a plan by its ID.\n * @param planId - The ID of the plan to find.\n * @returns The plan matching the ID.\n */\nexport const getPlan = async (\n planData: PlanSelector\n): Promise<PlanDocument | null> => await PlanModel.findOne(planData);\n\n/**\n * Retrieves a plan by its ID.\n * @param planId - The ID of the plan to find.\n * @returns The plan matching the ID.\n */\nexport const attachPlanToOrganization = async (\n userId: string | ObjectId,\n organizationId: string | ObjectId\n): Promise<PlanDocument | null> => {\n const planModel = await PlanModel.findOneAndUpdate(\n { userId },\n { $set: { organizationId } },\n { new: true }\n );\n\n return planModel;\n};\n\n/**\n * Cancels a plan by its organization ID.\n * @param organizationId - The ID of the organization to cancel the plan.\n * @returns The cancelled plan.\n */\nexport const cancelPlan = async (\n organizationId: string | ObjectId\n): Promise<PlanDocument | null> => {\n const planModel = await PlanModel.findOneAndUpdate(\n { organizationId },\n {\n $set: { status: 'CANCELLED' },\n },\n { new: true }\n );\n\n return planModel;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAA0B;AASnB,MAAM,gBAAgB,OAC3B,SACiC;AACjC,QAAM,WAAW;AAAA,IACf,MAAM,KAAK;AAAA,IACX,QAAQ,KAAK;AAAA,IACb,gBAAgB,KAAK;AAAA,IACrB,SAAS,KAAK;AAAA,IACd,QAAQ,KAAK;AAAA,EACf;AAEA,QAAM,YAAY,MAAM,sBAAU,OAAO,QAAQ;AAEjD,SAAO;AACT;AAQO,MAAM,aAAa,OACxB,QACA,SAEA,MAAM,sBAAU;AAAA,EACd,EAAE,KAAK,OAAO;AAAA,EACd,EAAE,MAAM,KAAK;AAAA,EACb,EAAE,KAAK,KAAK;AACd;AAYK,MAAM,UAAU,OACrB,aACiC,MAAM,sBAAU,QAAQ,QAAQ;AAO5D,MAAM,2BAA2B,OACtC,QACA,mBACiC;AACjC,QAAM,YAAY,MAAM,sBAAU;AAAA,IAChC,EAAE,OAAO;AAAA,IACT,EAAE,MAAM,EAAE,eAAe,EAAE;AAAA,IAC3B,EAAE,KAAK,KAAK;AAAA,EACd;AAEA,SAAO;AACT;AAOO,MAAM,aAAa,OACxB,mBACiC;AACjC,QAAM,YAAY,MAAM,sBAAU;AAAA,IAChC,EAAE,eAAe;AAAA,IACjB;AAAA,MACE,MAAM,EAAE,QAAQ,YAAY;AAAA,IAC9B;AAAA,IACA,EAAE,KAAK,KAAK;AAAA,EACd;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var stripe_exports = {};
|
|
20
|
-
__export(stripe_exports, {
|
|
21
|
-
stripeWebhook: () => stripeWebhook
|
|
22
|
-
});
|
|
23
|
-
module.exports = __toCommonJS(stripe_exports);
|
|
24
|
-
var import_logger = require('./../logger/index.cjs');
|
|
25
|
-
var import_subscription = require('./../services/subscription.service.cjs');
|
|
26
|
-
var import_stripe = require("stripe");
|
|
27
|
-
const stripeWebhook = async (request, response) => {
|
|
28
|
-
const stripe = new import_stripe.Stripe(process.env.STRIPE_SECRET_KEY);
|
|
29
|
-
const endpointSecret = process.env.STRIPE_WEBHOOK_SECRET;
|
|
30
|
-
const sig = request.headers["stripe-signature"];
|
|
31
|
-
let event;
|
|
32
|
-
try {
|
|
33
|
-
event = stripe.webhooks.constructEvent(request.body, sig, endpointSecret);
|
|
34
|
-
} catch (err) {
|
|
35
|
-
response.status(400).send(`Webhook Error: ${err.message}`);
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
console.log(`Unhandled event type ${event.type}`);
|
|
39
|
-
switch (event.type) {
|
|
40
|
-
case "checkout.session.async_payment_failed": {
|
|
41
|
-
const checkoutSessionAsyncPaymentFailed = event.data.object;
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
case "checkout.session.async_payment_succeeded": {
|
|
45
|
-
const checkoutSessionAsyncPaymentSucceeded = event.data.object;
|
|
46
|
-
break;
|
|
47
|
-
}
|
|
48
|
-
case "checkout.session.completed": {
|
|
49
|
-
const checkoutSessionCompleted = event.data.object;
|
|
50
|
-
const session = await stripe.checkout.sessions.retrieve(
|
|
51
|
-
checkoutSessionCompleted.id,
|
|
52
|
-
{
|
|
53
|
-
expand: ["line_items"]
|
|
54
|
-
}
|
|
55
|
-
);
|
|
56
|
-
const customerId = session.customer;
|
|
57
|
-
if (!customerId) {
|
|
58
|
-
import_logger.logger.error("No customer ID found", session);
|
|
59
|
-
return;
|
|
60
|
-
}
|
|
61
|
-
const customer = await stripe.customers.retrieve(customerId);
|
|
62
|
-
const priceId = session.line_items?.data[0]?.price?.id;
|
|
63
|
-
const userEmail = customer.email;
|
|
64
|
-
await (0, import_subscription.addSubscription)(priceId, customerId, userEmail);
|
|
65
|
-
break;
|
|
66
|
-
}
|
|
67
|
-
case "checkout.session.expired": {
|
|
68
|
-
const checkoutSessionExpired = event.data.object;
|
|
69
|
-
console.log("checkoutSessionExpired", checkoutSessionExpired);
|
|
70
|
-
const session = await stripe.checkout.sessions.retrieve(
|
|
71
|
-
checkoutSessionExpired.id,
|
|
72
|
-
{
|
|
73
|
-
expand: ["line_items"]
|
|
74
|
-
}
|
|
75
|
-
);
|
|
76
|
-
console.log("session", session);
|
|
77
|
-
const customerId = session.customer;
|
|
78
|
-
if (!customerId) {
|
|
79
|
-
import_logger.logger.error("No customer ID found", session);
|
|
80
|
-
return;
|
|
81
|
-
}
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
// ... handle other event types
|
|
85
|
-
default:
|
|
86
|
-
console.log(`Unhandled event type ${event.type}`);
|
|
87
|
-
}
|
|
88
|
-
response.send();
|
|
89
|
-
};
|
|
90
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
91
|
-
0 && (module.exports = {
|
|
92
|
-
stripeWebhook
|
|
93
|
-
});
|
|
94
|
-
//# sourceMappingURL=stripe.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/webhooks/stripe.ts"],"sourcesContent":["// The library needs to be configured with your account's secret key.\n// Ensure the key is kept out of any version control system you might be using.\nimport { logger } from '@logger';\nimport { addSubscription } from '@services/subscription.service';\nimport { type Request, type Response } from 'express';\nimport { Stripe } from 'stripe';\n\nexport const stripeWebhook = async (request: Request, response: Response) => {\n const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);\n // This is your Stripe CLI webhook secret for testing your endpoint locally.\n const endpointSecret = process.env.STRIPE_WEBHOOK_SECRET!;\n\n const sig = request.headers['stripe-signature']!;\n\n let event;\n\n try {\n event = stripe.webhooks.constructEvent(request.body, sig, endpointSecret);\n } catch (err) {\n response.status(400).send(`Webhook Error: ${(err as Error).message}`);\n return;\n }\n\n // Handle the event\n console.log(`Unhandled event type ${event.type}`);\n\n // Handle the event\n switch (event.type) {\n case 'checkout.session.async_payment_failed': {\n const checkoutSessionAsyncPaymentFailed = event.data.object;\n // Then define and call a function to handle the event checkout.session.async_payment_failed\n break;\n }\n case 'checkout.session.async_payment_succeeded': {\n const checkoutSessionAsyncPaymentSucceeded = event.data.object;\n // Then define and call a function to handle the event checkout.session.async_payment_succeeded\n break;\n }\n case 'checkout.session.completed': {\n const checkoutSessionCompleted = event.data.object;\n // Then define and call a function to handle the event checkout.session.completed\n\n const session = await stripe.checkout.sessions.retrieve(\n checkoutSessionCompleted.id,\n {\n expand: ['line_items'],\n }\n );\n\n const customerId = session.customer as string;\n\n if (!customerId) {\n logger.error('No customer ID found', session);\n return;\n }\n\n const customer = await stripe.customers.retrieve(customerId);\n\n const priceId = session.line_items?.data[0]?.price?.id;\n\n const userEmail = (customer as unknown as { email: string }).email;\n\n await addSubscription(priceId!, customerId, userEmail);\n\n break;\n }\n case 'checkout.session.expired': {\n const checkoutSessionExpired = event.data.object;\n // Then define and call a function to handle the event checkout.session.expired\n\n console.log('checkoutSessionExpired', checkoutSessionExpired);\n\n const session = await stripe.checkout.sessions.retrieve(\n checkoutSessionExpired.id,\n {\n expand: ['line_items'],\n }\n );\n console.log('session', session);\n\n const customerId = session.customer as string;\n\n if (!customerId) {\n logger.error('No customer ID found', session);\n return;\n }\n\n // const customer = await stripe.customers.retrieve(customerId);\n\n // const userEmail = (customer as unknown as { email: string }).email;\n\n // await cancelSubscription({});\n\n break;\n }\n // ... handle other event types\n default:\n console.log(`Unhandled event type ${event.type}`);\n }\n\n // Return a 200 response to acknowledge receipt of the event\n response.send();\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAAuB;AACvB,0BAAgC;AAEhC,oBAAuB;AAEhB,MAAM,gBAAgB,OAAO,SAAkB,aAAuB;AAC3E,QAAM,SAAS,IAAI,qBAAO,QAAQ,IAAI,iBAAkB;AAExD,QAAM,iBAAiB,QAAQ,IAAI;AAEnC,QAAM,MAAM,QAAQ,QAAQ,kBAAkB;AAE9C,MAAI;AAEJ,MAAI;AACF,YAAQ,OAAO,SAAS,eAAe,QAAQ,MAAM,KAAK,cAAc;AAAA,EAC1E,SAAS,KAAK;AACZ,aAAS,OAAO,GAAG,EAAE,KAAK,kBAAmB,IAAc,OAAO,EAAE;AACpE;AAAA,EACF;AAGA,UAAQ,IAAI,wBAAwB,MAAM,IAAI,EAAE;AAGhD,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK,yCAAyC;AAC5C,YAAM,oCAAoC,MAAM,KAAK;AAErD;AAAA,IACF;AAAA,IACA,KAAK,4CAA4C;AAC/C,YAAM,uCAAuC,MAAM,KAAK;AAExD;AAAA,IACF;AAAA,IACA,KAAK,8BAA8B;AACjC,YAAM,2BAA2B,MAAM,KAAK;AAG5C,YAAM,UAAU,MAAM,OAAO,SAAS,SAAS;AAAA,QAC7C,yBAAyB;AAAA,QACzB;AAAA,UACE,QAAQ,CAAC,YAAY;AAAA,QACvB;AAAA,MACF;AAEA,YAAM,aAAa,QAAQ;AAE3B,UAAI,CAAC,YAAY;AACf,6BAAO,MAAM,wBAAwB,OAAO;AAC5C;AAAA,MACF;AAEA,YAAM,WAAW,MAAM,OAAO,UAAU,SAAS,UAAU;AAE3D,YAAM,UAAU,QAAQ,YAAY,KAAK,CAAC,GAAG,OAAO;AAEpD,YAAM,YAAa,SAA0C;AAE7D,gBAAM,qCAAgB,SAAU,YAAY,SAAS;AAErD;AAAA,IACF;AAAA,IACA,KAAK,4BAA4B;AAC/B,YAAM,yBAAyB,MAAM,KAAK;AAG1C,cAAQ,IAAI,0BAA0B,sBAAsB;AAE5D,YAAM,UAAU,MAAM,OAAO,SAAS,SAAS;AAAA,QAC7C,uBAAuB;AAAA,QACvB;AAAA,UACE,QAAQ,CAAC,YAAY;AAAA,QACvB;AAAA,MACF;AACA,cAAQ,IAAI,WAAW,OAAO;AAE9B,YAAM,aAAa,QAAQ;AAE3B,UAAI,CAAC,YAAY;AACf,6BAAO,MAAM,wBAAwB,OAAO;AAC5C;AAAA,MACF;AAQA;AAAA,IACF;AAAA;AAAA,IAEA;AACE,cAAQ,IAAI,wBAAwB,MAAM,IAAI,EAAE;AAAA,EACpD;AAGA,WAAS,KAAK;AAChB;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/models/plan.moddel.ts"],"sourcesContent":["import { planSchema } from '@schemas/plans.schema';\nimport { model } from 'mongoose';\nimport { Plan } from '@/types/plan.types';\n\nexport const PlanModel = model<Plan>('plan', planSchema);\n"],"mappings":"AAAA,SAAS,kBAAkB;AAC3B,SAAS,aAAa;AAGf,MAAM,YAAY,MAAY,QAAQ,UAAU;","names":[]}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { PlanModel } from './../models/plan.moddel.mjs';
|
|
2
|
-
const createNewPlan = async (plan) => {
|
|
3
|
-
const planData = {
|
|
4
|
-
type: plan.type,
|
|
5
|
-
userId: plan.userId,
|
|
6
|
-
organizationId: plan.organizationId,
|
|
7
|
-
priceId: plan.priceId,
|
|
8
|
-
status: plan.status
|
|
9
|
-
};
|
|
10
|
-
const planModel = await PlanModel.create(planData);
|
|
11
|
-
return planModel;
|
|
12
|
-
};
|
|
13
|
-
const updatePlan = async (planId, plan) => await PlanModel.findOneAndUpdate(
|
|
14
|
-
{ _id: planId },
|
|
15
|
-
{ $set: plan },
|
|
16
|
-
{ new: true }
|
|
17
|
-
);
|
|
18
|
-
const getPlan = async (planData) => await PlanModel.findOne(planData);
|
|
19
|
-
const attachPlanToOrganization = async (userId, organizationId) => {
|
|
20
|
-
const planModel = await PlanModel.findOneAndUpdate(
|
|
21
|
-
{ userId },
|
|
22
|
-
{ $set: { organizationId } },
|
|
23
|
-
{ new: true }
|
|
24
|
-
);
|
|
25
|
-
return planModel;
|
|
26
|
-
};
|
|
27
|
-
const cancelPlan = async (organizationId) => {
|
|
28
|
-
const planModel = await PlanModel.findOneAndUpdate(
|
|
29
|
-
{ organizationId },
|
|
30
|
-
{
|
|
31
|
-
$set: { status: "CANCELLED" }
|
|
32
|
-
},
|
|
33
|
-
{ new: true }
|
|
34
|
-
);
|
|
35
|
-
return planModel;
|
|
36
|
-
};
|
|
37
|
-
export {
|
|
38
|
-
attachPlanToOrganization,
|
|
39
|
-
cancelPlan,
|
|
40
|
-
createNewPlan,
|
|
41
|
-
getPlan,
|
|
42
|
-
updatePlan
|
|
43
|
-
};
|
|
44
|
-
//# sourceMappingURL=plans.service.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/services/plans.service.ts"],"sourcesContent":["import { PlanModel } from '@models/plan.moddel';\nimport { ObjectId } from 'mongoose';\nimport { Plan, PlanData, PlanDocument } from '@/types/plan.types';\n\n/**\n * Creates a new plan in the database.\n * @param plan - The plan data to create.\n * @returns The created plan.\n */\nexport const createNewPlan = async (\n plan: PlanData\n): Promise<PlanDocument | null> => {\n const planData = {\n type: plan.type,\n userId: plan.userId,\n organizationId: plan.organizationId,\n priceId: plan.priceId,\n status: plan.status,\n };\n\n const planModel = await PlanModel.create(planData);\n\n return planModel;\n};\n\n/**\n * Updates an existing plan in the database by its ID.\n * @param planId - The ID of the plan to update.\n * @param plan - The updated plan data.\n * @returns The updated plan.\n */\nexport const updatePlan = async (\n planId: string | ObjectId,\n plan: Partial<Plan>\n): Promise<PlanDocument | null> =>\n await PlanModel.findOneAndUpdate(\n { _id: planId },\n { $set: plan },\n { new: true }\n );\n\nexport type PlanSelector =\n | Pick<PlanDocument, 'organizationId' | 'userId'>\n | Pick<PlanDocument, 'organizationId'>\n | Pick<PlanDocument, '_id'>;\n\n/**\n * Retrieves a plan by its ID.\n * @param planId - The ID of the plan to find.\n * @returns The plan matching the ID.\n */\nexport const getPlan = async (\n planData: PlanSelector\n): Promise<PlanDocument | null> => await PlanModel.findOne(planData);\n\n/**\n * Retrieves a plan by its ID.\n * @param planId - The ID of the plan to find.\n * @returns The plan matching the ID.\n */\nexport const attachPlanToOrganization = async (\n userId: string | ObjectId,\n organizationId: string | ObjectId\n): Promise<PlanDocument | null> => {\n const planModel = await PlanModel.findOneAndUpdate(\n { userId },\n { $set: { organizationId } },\n { new: true }\n );\n\n return planModel;\n};\n\n/**\n * Cancels a plan by its organization ID.\n * @param organizationId - The ID of the organization to cancel the plan.\n * @returns The cancelled plan.\n */\nexport const cancelPlan = async (\n organizationId: string | ObjectId\n): Promise<PlanDocument | null> => {\n const planModel = await PlanModel.findOneAndUpdate(\n { organizationId },\n {\n $set: { status: 'CANCELLED' },\n },\n { new: true }\n );\n\n return planModel;\n};\n"],"mappings":"AAAA,SAAS,iBAAiB;AASnB,MAAM,gBAAgB,OAC3B,SACiC;AACjC,QAAM,WAAW;AAAA,IACf,MAAM,KAAK;AAAA,IACX,QAAQ,KAAK;AAAA,IACb,gBAAgB,KAAK;AAAA,IACrB,SAAS,KAAK;AAAA,IACd,QAAQ,KAAK;AAAA,EACf;AAEA,QAAM,YAAY,MAAM,UAAU,OAAO,QAAQ;AAEjD,SAAO;AACT;AAQO,MAAM,aAAa,OACxB,QACA,SAEA,MAAM,UAAU;AAAA,EACd,EAAE,KAAK,OAAO;AAAA,EACd,EAAE,MAAM,KAAK;AAAA,EACb,EAAE,KAAK,KAAK;AACd;AAYK,MAAM,UAAU,OACrB,aACiC,MAAM,UAAU,QAAQ,QAAQ;AAO5D,MAAM,2BAA2B,OACtC,QACA,mBACiC;AACjC,QAAM,YAAY,MAAM,UAAU;AAAA,IAChC,EAAE,OAAO;AAAA,IACT,EAAE,MAAM,EAAE,eAAe,EAAE;AAAA,IAC3B,EAAE,KAAK,KAAK;AAAA,EACd;AAEA,SAAO;AACT;AAOO,MAAM,aAAa,OACxB,mBACiC;AACjC,QAAM,YAAY,MAAM,UAAU;AAAA,IAChC,EAAE,eAAe;AAAA,IACjB;AAAA,MACE,MAAM,EAAE,QAAQ,YAAY;AAAA,IAC9B;AAAA,IACA,EAAE,KAAK,KAAK;AAAA,EACd;AAEA,SAAO;AACT;","names":[]}
|
|
@@ -1,70 +0,0 @@
|
|
|
1
|
-
import { logger } from './../logger/index.mjs';
|
|
2
|
-
import { addSubscription } from './../services/subscription.service.mjs';
|
|
3
|
-
import { Stripe } from "stripe";
|
|
4
|
-
const stripeWebhook = async (request, response) => {
|
|
5
|
-
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY);
|
|
6
|
-
const endpointSecret = process.env.STRIPE_WEBHOOK_SECRET;
|
|
7
|
-
const sig = request.headers["stripe-signature"];
|
|
8
|
-
let event;
|
|
9
|
-
try {
|
|
10
|
-
event = stripe.webhooks.constructEvent(request.body, sig, endpointSecret);
|
|
11
|
-
} catch (err) {
|
|
12
|
-
response.status(400).send(`Webhook Error: ${err.message}`);
|
|
13
|
-
return;
|
|
14
|
-
}
|
|
15
|
-
console.log(`Unhandled event type ${event.type}`);
|
|
16
|
-
switch (event.type) {
|
|
17
|
-
case "checkout.session.async_payment_failed": {
|
|
18
|
-
const checkoutSessionAsyncPaymentFailed = event.data.object;
|
|
19
|
-
break;
|
|
20
|
-
}
|
|
21
|
-
case "checkout.session.async_payment_succeeded": {
|
|
22
|
-
const checkoutSessionAsyncPaymentSucceeded = event.data.object;
|
|
23
|
-
break;
|
|
24
|
-
}
|
|
25
|
-
case "checkout.session.completed": {
|
|
26
|
-
const checkoutSessionCompleted = event.data.object;
|
|
27
|
-
const session = await stripe.checkout.sessions.retrieve(
|
|
28
|
-
checkoutSessionCompleted.id,
|
|
29
|
-
{
|
|
30
|
-
expand: ["line_items"]
|
|
31
|
-
}
|
|
32
|
-
);
|
|
33
|
-
const customerId = session.customer;
|
|
34
|
-
if (!customerId) {
|
|
35
|
-
logger.error("No customer ID found", session);
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
const customer = await stripe.customers.retrieve(customerId);
|
|
39
|
-
const priceId = session.line_items?.data[0]?.price?.id;
|
|
40
|
-
const userEmail = customer.email;
|
|
41
|
-
await addSubscription(priceId, customerId, userEmail);
|
|
42
|
-
break;
|
|
43
|
-
}
|
|
44
|
-
case "checkout.session.expired": {
|
|
45
|
-
const checkoutSessionExpired = event.data.object;
|
|
46
|
-
console.log("checkoutSessionExpired", checkoutSessionExpired);
|
|
47
|
-
const session = await stripe.checkout.sessions.retrieve(
|
|
48
|
-
checkoutSessionExpired.id,
|
|
49
|
-
{
|
|
50
|
-
expand: ["line_items"]
|
|
51
|
-
}
|
|
52
|
-
);
|
|
53
|
-
console.log("session", session);
|
|
54
|
-
const customerId = session.customer;
|
|
55
|
-
if (!customerId) {
|
|
56
|
-
logger.error("No customer ID found", session);
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
break;
|
|
60
|
-
}
|
|
61
|
-
// ... handle other event types
|
|
62
|
-
default:
|
|
63
|
-
console.log(`Unhandled event type ${event.type}`);
|
|
64
|
-
}
|
|
65
|
-
response.send();
|
|
66
|
-
};
|
|
67
|
-
export {
|
|
68
|
-
stripeWebhook
|
|
69
|
-
};
|
|
70
|
-
//# sourceMappingURL=stripe.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/webhooks/stripe.ts"],"sourcesContent":["// The library needs to be configured with your account's secret key.\n// Ensure the key is kept out of any version control system you might be using.\nimport { logger } from '@logger';\nimport { addSubscription } from '@services/subscription.service';\nimport { type Request, type Response } from 'express';\nimport { Stripe } from 'stripe';\n\nexport const stripeWebhook = async (request: Request, response: Response) => {\n const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);\n // This is your Stripe CLI webhook secret for testing your endpoint locally.\n const endpointSecret = process.env.STRIPE_WEBHOOK_SECRET!;\n\n const sig = request.headers['stripe-signature']!;\n\n let event;\n\n try {\n event = stripe.webhooks.constructEvent(request.body, sig, endpointSecret);\n } catch (err) {\n response.status(400).send(`Webhook Error: ${(err as Error).message}`);\n return;\n }\n\n // Handle the event\n console.log(`Unhandled event type ${event.type}`);\n\n // Handle the event\n switch (event.type) {\n case 'checkout.session.async_payment_failed': {\n const checkoutSessionAsyncPaymentFailed = event.data.object;\n // Then define and call a function to handle the event checkout.session.async_payment_failed\n break;\n }\n case 'checkout.session.async_payment_succeeded': {\n const checkoutSessionAsyncPaymentSucceeded = event.data.object;\n // Then define and call a function to handle the event checkout.session.async_payment_succeeded\n break;\n }\n case 'checkout.session.completed': {\n const checkoutSessionCompleted = event.data.object;\n // Then define and call a function to handle the event checkout.session.completed\n\n const session = await stripe.checkout.sessions.retrieve(\n checkoutSessionCompleted.id,\n {\n expand: ['line_items'],\n }\n );\n\n const customerId = session.customer as string;\n\n if (!customerId) {\n logger.error('No customer ID found', session);\n return;\n }\n\n const customer = await stripe.customers.retrieve(customerId);\n\n const priceId = session.line_items?.data[0]?.price?.id;\n\n const userEmail = (customer as unknown as { email: string }).email;\n\n await addSubscription(priceId!, customerId, userEmail);\n\n break;\n }\n case 'checkout.session.expired': {\n const checkoutSessionExpired = event.data.object;\n // Then define and call a function to handle the event checkout.session.expired\n\n console.log('checkoutSessionExpired', checkoutSessionExpired);\n\n const session = await stripe.checkout.sessions.retrieve(\n checkoutSessionExpired.id,\n {\n expand: ['line_items'],\n }\n );\n console.log('session', session);\n\n const customerId = session.customer as string;\n\n if (!customerId) {\n logger.error('No customer ID found', session);\n return;\n }\n\n // const customer = await stripe.customers.retrieve(customerId);\n\n // const userEmail = (customer as unknown as { email: string }).email;\n\n // await cancelSubscription({});\n\n break;\n }\n // ... handle other event types\n default:\n console.log(`Unhandled event type ${event.type}`);\n }\n\n // Return a 200 response to acknowledge receipt of the event\n response.send();\n};\n"],"mappings":"AAEA,SAAS,cAAc;AACvB,SAAS,uBAAuB;AAEhC,SAAS,cAAc;AAEhB,MAAM,gBAAgB,OAAO,SAAkB,aAAuB;AAC3E,QAAM,SAAS,IAAI,OAAO,QAAQ,IAAI,iBAAkB;AAExD,QAAM,iBAAiB,QAAQ,IAAI;AAEnC,QAAM,MAAM,QAAQ,QAAQ,kBAAkB;AAE9C,MAAI;AAEJ,MAAI;AACF,YAAQ,OAAO,SAAS,eAAe,QAAQ,MAAM,KAAK,cAAc;AAAA,EAC1E,SAAS,KAAK;AACZ,aAAS,OAAO,GAAG,EAAE,KAAK,kBAAmB,IAAc,OAAO,EAAE;AACpE;AAAA,EACF;AAGA,UAAQ,IAAI,wBAAwB,MAAM,IAAI,EAAE;AAGhD,UAAQ,MAAM,MAAM;AAAA,IAClB,KAAK,yCAAyC;AAC5C,YAAM,oCAAoC,MAAM,KAAK;AAErD;AAAA,IACF;AAAA,IACA,KAAK,4CAA4C;AAC/C,YAAM,uCAAuC,MAAM,KAAK;AAExD;AAAA,IACF;AAAA,IACA,KAAK,8BAA8B;AACjC,YAAM,2BAA2B,MAAM,KAAK;AAG5C,YAAM,UAAU,MAAM,OAAO,SAAS,SAAS;AAAA,QAC7C,yBAAyB;AAAA,QACzB;AAAA,UACE,QAAQ,CAAC,YAAY;AAAA,QACvB;AAAA,MACF;AAEA,YAAM,aAAa,QAAQ;AAE3B,UAAI,CAAC,YAAY;AACf,eAAO,MAAM,wBAAwB,OAAO;AAC5C;AAAA,MACF;AAEA,YAAM,WAAW,MAAM,OAAO,UAAU,SAAS,UAAU;AAE3D,YAAM,UAAU,QAAQ,YAAY,KAAK,CAAC,GAAG,OAAO;AAEpD,YAAM,YAAa,SAA0C;AAE7D,YAAM,gBAAgB,SAAU,YAAY,SAAS;AAErD;AAAA,IACF;AAAA,IACA,KAAK,4BAA4B;AAC/B,YAAM,yBAAyB,MAAM,KAAK;AAG1C,cAAQ,IAAI,0BAA0B,sBAAsB;AAE5D,YAAM,UAAU,MAAM,OAAO,SAAS,SAAS;AAAA,QAC7C,uBAAuB;AAAA,QACvB;AAAA,UACE,QAAQ,CAAC,YAAY;AAAA,QACvB;AAAA,MACF;AACA,cAAQ,IAAI,WAAW,OAAO;AAE9B,YAAM,aAAa,QAAQ;AAE3B,UAAI,CAAC,YAAY;AACf,eAAO,MAAM,wBAAwB,OAAO;AAC5C;AAAA,MACF;AAQA;AAAA,IACF;AAAA;AAAA,IAEA;AACE,cAAQ,IAAI,wBAAwB,MAAM,IAAI,EAAE;AAAA,EACpD;AAGA,WAAS,KAAK;AAChB;","names":[]}
|