@shophost/rest-api 2.0.60 → 2.0.61
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/package.json +1 -1
- package/src/features/payment/payment.service.d.ts +1 -0
- package/src/features/payment/payment.service.js +1 -1
- package/src/features/payment/payment.service.js.map +1 -1
- package/src/features/payment/stripe.service.d.ts +2 -1
- package/src/features/payment/stripe.service.js +1 -1
- package/src/features/payment/stripe.service.js.map +1 -1
package/package.json
CHANGED
|
@@ -24,6 +24,7 @@ declare class PaymentService {
|
|
|
24
24
|
private getStripeNotConfiguredMessage;
|
|
25
25
|
private resolveStripeRuntime;
|
|
26
26
|
private requireStripeRuntime;
|
|
27
|
+
private getOrderEmailService;
|
|
27
28
|
getPaymentMethods(organizationId?: string): Promise<{
|
|
28
29
|
id: string;
|
|
29
30
|
provider: "stripe" | "revolut" | "payu" | "not_applicable";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as u}from"tslib";import{HttpException as
|
|
1
|
+
import{__awaiter as u}from"tslib";import{HttpException as p}from"../../core/exceptions/http-exception";import{EmailService as v}from"../../core/notifications/email.service";import{getStoredResendConfig as l,getStoredStripeConfig as h}from"../integration/integration-config";import{StripeService as m}from"./stripe.service";class y{constructor(t,i,e,r){this.prisma=t,this.options=i,this.integrationRegistry=e,this.inventoryService=r,this.stripeRuntimes=new Map}getStripeNotConfiguredMessage(t){return t?"Stripe integration is not configured for this organization":"Stripe integration is not configured"}resolveStripeRuntime(t){return u(this,void 0,void 0,function*(){var i;if(!t)return;const e=h(yield this.integrationRegistry.get(t,"stripe")),r=e?.secretKey;if(!r){this.stripeRuntimes.delete(t);return}const n=l(yield this.integrationRegistry.get(t,"resend")),s={secretKey:r,paymentMethods:(i=e?.paymentMethods)!==null&&i!==void 0?i:[],resendApiKey:n?.apiKey,resendFromEmail:n?.fromEmail,webhookSecret:e?.webhookSecret},a=JSON.stringify({resend:n??null,stripe:e??null}),d=this.stripeRuntimes.get(t);if(d?.signature===a)return d;const o={options:s,service:new m(this.prisma,s),signature:a};return this.stripeRuntimes.set(t,o),o})}requireStripeRuntime(t){return u(this,void 0,void 0,function*(){const i=yield this.resolveStripeRuntime(t);if(!i)throw new p(400,this.getStripeNotConfiguredMessage(t));return i})}getOrderEmailService(t){return u(this,void 0,void 0,function*(){const i=yield this.prisma.integration.findUnique({where:{organizationId_type:{organizationId:t,type:"resend"}},select:{config:!0}}),e=l(i);if(e?.apiKey)return new v({apiKey:e.apiKey,fromEmail:e.fromEmail})})}getPaymentMethods(t){return u(this,void 0,void 0,function*(){var i;const e=[],r=(i=yield this.resolveStripeRuntime(t))===null||i===void 0?void 0:i.options;return r?.paymentMethods.includes("card")&&e.push({id:"stripe:card",provider:"stripe",description:"Visa, Mastercard, American Express etc..",method:"card"}),r?.paymentMethods.includes("blik")&&e.push({id:"stripe:blik",provider:"stripe",description:"Popular payment method in Poland",method:"blik"}),this.options.revolut&&this.options.revolut.paymentMethods.includes("card")&&e.push({id:"revolut:card",provider:"revolut",description:"Visa, Mastercard, American Express etc..",method:"card"}),this.options.revolut&&this.options.revolut.paymentMethods.includes("blik")&&e.push({id:"revolut:blik",provider:"revolut",description:"Popular payment method in Poland",method:"blik"}),e})}handleCheckoutSessionByProvider(t,i,e,r){return u(this,void 0,void 0,function*(){if(e.payment.provider==="stripe")return(yield this.requireStripeRuntime(t)).service.createCheckoutSession(i,e,r);throw new p(400,"Payment provider not supported")})}createCheckoutSession(t,i,e,r){return u(this,void 0,void 0,function*(){const n=yield this.handleCheckoutSessionByProvider(t,i,e,r);return yield this.prisma.paymentSession.create({data:{payment:{connect:{id:e.payment.id}},referenceId:n.id,amount:e.payment.total,currency:e.payment.currency,rawData:JSON.stringify(n)}}),{sessionId:n.id,redirectUrl:n.url}})}processWebhookEvent(t,i,e,r){return u(this,void 0,void 0,function*(){if(!i)throw new p(401,"Signature is required");if(t==="stripe"){const n=yield this.requireStripeRuntime(r),s=n.service.constructWebhookEvent(i,e);return s.type==="checkout.session.completed"?this.handleStripeCheckoutCompleted(s.data.object,n.service,r):void 0}else throw new p(400,"Payment provider not supported")})}handleStripeCheckoutCompleted(t,i,e){return u(this,void 0,void 0,function*(){var r,n,s,a,d;if(((r=t.metadata)===null||r===void 0?void 0:r.testIntegration)==="true")return;const o=yield this.prisma.paymentSession.findFirst({where:Object.assign({referenceId:t.id},e?{payment:{order:{organizationId:e}}}:{}),include:{payment:{include:{order:!0}}}});if(!o)throw new p(404,"Payment session not found");const c=(n=o.payment)===null||n===void 0?void 0:n.order;if(!c)throw new p(404,"Order not found");o.capturedAt&&(c.inventoryDeductedAt||c.inventoryConflictAt)||((!o.capturedAt||o.payment.status!=="succeeded")&&(yield this.prisma.paymentSession.update({where:{id:o.id},data:{capturedAt:(s=o.capturedAt)!==null&&s!==void 0?s:new Date,payment:{update:{status:"succeeded"}}}})),(yield this.inventoryService.processPaidOrderInventory(c.id)).status!=="deducted")||(yield i.sendOrderNotifications(c.id,(d=(a=t.metadata)===null||a===void 0?void 0:a.userId)!==null&&d!==void 0?d:c.userId,yield this.getOrderEmailService(c.organizationId)))})}}export{y as PaymentService};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payment.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/payment/payment.service.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"payment.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/payment/payment.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Stripe from "stripe";
|
|
2
2
|
import { PrismaClientType } from "../../core/lib/prisma";
|
|
3
|
+
import { EmailService } from "../../core/notifications/email.service";
|
|
3
4
|
import { Locale, User } from "../../schemas";
|
|
4
5
|
import { Order } from "../order/order.schema";
|
|
5
6
|
export interface StripeServiceOptions {
|
|
@@ -29,7 +30,7 @@ declare class StripeService {
|
|
|
29
30
|
private emailService?;
|
|
30
31
|
constructor(prisma: PrismaClientType, options?: StripeServiceOptions | undefined);
|
|
31
32
|
private safelySendEmail;
|
|
32
|
-
sendOrderNotifications(orderId: string, userId?: string | null): Promise<void>;
|
|
33
|
+
sendOrderNotifications(orderId: string, userId?: string | null, emailServiceOverride?: EmailService): Promise<void>;
|
|
33
34
|
constructWebhookEvent(signature: string, body: string): Stripe.Event;
|
|
34
35
|
createCheckoutSession(user: User, order: Order, { locale, successUrl, cancelUrl }: CreateCheckoutSessionOptions): Promise<Stripe.Response<Stripe.Checkout.Session>>;
|
|
35
36
|
createTestCheckoutSession({ cancelUrl, currency, customerEmail, organizationName, paymentMethod, successUrl, }: CreateTestCheckoutSessionOptions): Promise<Stripe.Response<Stripe.Checkout.Session>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__awaiter as
|
|
1
|
+
import{__awaiter as c}from"tslib";import k from"stripe";import{HttpException as d}from"../../core/exceptions/http-exception";import{logger as E}from"../../core/logging/pino";import{EmailService as I}from"../../core/notifications/email.service";import{OrderSchema as v,OrganizationSchema as y,UserSchema as f}from"../../schemas";class z{constructor(r,i){this.prisma=r,this.options=i,i?.secretKey&&(this.stripe=new k(i.secretKey)),i?.resendApiKey&&(this.emailService=new I({apiKey:i.resendApiKey,fromEmail:i.resendFromEmail}))}safelySendEmail(r,i){return c(this,void 0,void 0,function*(){try{yield i()}catch(t){E.error(Object.assign({err:t},r),"Email delivery failed")}})}sendOrderNotifications(r,i,t){return c(this,void 0,void 0,function*(){const o=t??this.emailService;if(!o)return;const e=yield this.prisma.order.findFirst({where:{id:r},include:{items:{include:{translations:!0,image:!0}},payment:!0,organization:{include:{address:!0,configuration:!0,logoFile:!0,members:{include:{user:!0}}}},shippingAddress:!0,shippingMethod:{include:{shippingZones:!0}}}}),s=i??e?.userId,n=s?yield this.prisma.user.findFirst({where:{id:s}}):null;if(!(!e||!n)){yield this.safelySendEmail({emailType:"order-confirmation",orderId:e.id,organizationId:e.organizationId,userId:n.id},()=>o.sendOrderConfirmationEmail(f.parse(n),y.parse(e.organization),v.parse(e)));for(const a of e.organization.members)yield this.safelySendEmail({emailType:"order-notification",memberId:a.user.id,orderId:e.id,organizationId:e.organizationId,userId:n.id},()=>o.sendOrderNotificationEmail(f.parse(n),f.parse(a.user),y.parse(e.organization),v.parse(e)))}})}constructWebhookEvent(r,i){var t;if(!this.stripe)throw new d(400,"Stripe is not configured");if(!(!((t=this.options)===null||t===void 0)&&t.webhookSecret))throw new d(400,"Stripe webhook secret is not configured");return this.stripe.webhooks.constructEvent(i,r,this.options.webhookSecret)}createCheckoutSession(r,i,t){return c(this,arguments,void 0,function*(o,e,{locale:s,successUrl:n,cancelUrl:a}){var l,p;if(!this.stripe)throw new d(400,"Stripe is not configured");if(e.payment.method!=="card"&&e.payment.method!=="blik")throw new d(400,"Payment method not supported");if(!(!((l=this.options)===null||l===void 0)&&l.paymentMethods.includes(e.payment.method)))throw new d(400,`Stripe payment method ${e.payment.method} is not enabled`);const _={payment_method_types:[e.payment.method],customer_email:o.email,line_items:e.items.map(({translations:g,unitPrice:w,quantity:S,image:u})=>{var h;const m=g.find(b=>b.locale===s);return{quantity:S,price_data:{currency:"pln",product_data:{name:(h=m?.title)!==null&&h!==void 0?h:"N/A",description:m?.subtitle||void 0,images:u?.url?[u?.url]:void 0},unit_amount:w*100}}}),shipping_options:!((p=e.shippingMethod)===null||p===void 0)&&p.shippingZones[0].price?[{shipping_rate_data:{type:"fixed_amount",fixed_amount:{amount:e.payment.shipping*100,currency:e.currency.toLowerCase()},display_name:"Delivery fee"}}]:void 0,mode:"payment",success_url:n,cancel_url:a,metadata:{userId:o.id,orderId:e.id}};return this.stripe.checkout.sessions.create(_)})}createTestCheckoutSession(r){return c(this,arguments,void 0,function*({cancelUrl:i,currency:t,customerEmail:o,organizationName:e,paymentMethod:s,successUrl:n}){var a;if(!this.stripe)throw new d(400,"Stripe is not configured");if(!(!((a=this.options)===null||a===void 0)&&a.paymentMethods.includes(s)))throw new d(400,`Stripe payment method ${s} is not enabled`);return this.stripe.checkout.sessions.create({payment_method_types:[s],customer_email:o,line_items:[{quantity:1,price_data:{currency:t,product_data:{name:`${e} Test Product`,description:"Mock item created by Shophost to verify the Stripe checkout flow."},unit_amount:1999}},{quantity:1,price_data:{currency:t,product_data:{name:"Shophost Test Add-on",description:"Additional mock line item used for Stripe integration testing."},unit_amount:499}}],mode:"payment",success_url:n,cancel_url:i,metadata:{testIntegration:"true"}})})}}export{z as StripeService};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stripe.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/payment/stripe.service.ts"],"names":[],"mappings":";AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAErE,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,wCAAwC,CAAC;AACtE,OAAO,EAEL,WAAW,EACX,kBAAkB,EAElB,UAAU,GACX,MAAM,eAAe,CAAC;AA0BvB,MAAM,aAAa;IAIjB,YACmB,MAAwB,EACzB,OAA8B;QAD7B,WAAM,GAAN,MAAM,CAAkB;QACzB,YAAO,GAAP,OAAO,CAAuB;QAE9C,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,SAAS,EAAE,CAAC;YACvB,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QAED,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,CAAC;gBACnC,MAAM,EAAE,OAAO,CAAC,YAAY;gBAC5B,SAAS,EAAE,OAAO,CAAC,eAAe;aACnC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEa,eAAe,CAC3B,OAAgC,EAChC,IAA4B;;YAE5B,IAAI,CAAC;gBACH,MAAM,IAAI,EAAE,CAAC;YACf,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,iBAER,GAAG,EAAE,KAAK,IACP,OAAO,GAEZ,uBAAuB,CACxB,CAAC;YACJ,CAAC;QACH,CAAC;KAAA;IAEY,sBAAsB,
|
|
1
|
+
{"version":3,"file":"stripe.service.js","sourceRoot":"","sources":["../../../../../../packages/rest-api/src/features/payment/stripe.service.ts"],"names":[],"mappings":"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"}
|