Browse Source

Refactoring

pull/5791/head
Thomas Kaul 2 weeks ago
parent
commit
81fbeb43a0
  1. 4
      apps/api/src/app/subscription/subscription.controller.ts
  2. 55
      apps/api/src/app/subscription/subscription.service.ts

4
apps/api/src/app/subscription/subscription.controller.ts

@ -114,11 +114,11 @@ export class SubscriptionController {
@Post('stripe/checkout-session') @Post('stripe/checkout-session')
@UseGuards(AuthGuard('jwt'), HasPermissionGuard) @UseGuards(AuthGuard('jwt'), HasPermissionGuard)
public async createCheckoutSession( public createStripeCheckoutSession(
@Body() { couponId, priceId }: { couponId?: string; priceId: string } @Body() { couponId, priceId }: { couponId?: string; priceId: string }
): Promise<CreateStripeCheckoutSessionResponse> { ): Promise<CreateStripeCheckoutSessionResponse> {
try { try {
return this.subscriptionService.createCheckoutSession({ return this.subscriptionService.createStripeCheckoutSession({
couponId, couponId,
priceId, priceId,
user: this.request.user user: this.request.user

55
apps/api/src/app/subscription/subscription.service.ts

@ -41,7 +41,7 @@ export class SubscriptionService {
} }
} }
public async createCheckoutSession({ public async createStripeCheckoutSession({
couponId, couponId,
priceId, priceId,
user user
@ -61,33 +61,34 @@ export class SubscriptionService {
} }
); );
const checkoutSessionCreateParams: Stripe.Checkout.SessionCreateParams = { const stripeCheckoutSessionCreateParams: Stripe.Checkout.SessionCreateParams =
cancel_url: `${this.configurationService.get('ROOT_URL')}/${ {
user.settings.settings.language cancel_url: `${this.configurationService.get('ROOT_URL')}/${
}/account`, user.settings.settings.language
client_reference_id: user.id, }/account`,
line_items: [ client_reference_id: user.id,
{ line_items: [
price: priceId, {
quantity: 1 price: priceId,
} quantity: 1
], }
locale: ],
(user.settings?.settings locale:
?.language as Stripe.Checkout.SessionCreateParams.Locale) ?? (user.settings?.settings
DEFAULT_LANGUAGE_CODE, ?.language as Stripe.Checkout.SessionCreateParams.Locale) ??
metadata: subscriptionOffer DEFAULT_LANGUAGE_CODE,
? { subscriptionOffer: JSON.stringify(subscriptionOffer) } metadata: subscriptionOffer
: {}, ? { subscriptionOffer: JSON.stringify(subscriptionOffer) }
mode: 'payment', : {},
payment_method_types: ['card'], mode: 'payment',
success_url: `${this.configurationService.get( payment_method_types: ['card'],
'ROOT_URL' success_url: `${this.configurationService.get(
)}/api/v1/subscription/stripe/callback?checkoutSessionId={CHECKOUT_SESSION_ID}` 'ROOT_URL'
}; )}/api/v1/subscription/stripe/callback?checkoutSessionId={CHECKOUT_SESSION_ID}`
};
if (couponId) { if (couponId) {
checkoutSessionCreateParams.discounts = [ stripeCheckoutSessionCreateParams.discounts = [
{ {
coupon: couponId coupon: couponId
} }
@ -95,7 +96,7 @@ export class SubscriptionService {
} }
const session = await this.stripe.checkout.sessions.create( const session = await this.stripe.checkout.sessions.create(
checkoutSessionCreateParams stripeCheckoutSessionCreateParams
); );
return { return {

Loading…
Cancel
Save