Skip to content

Commit

Permalink
feat: use PaymentOptions in remaining apps
Browse files Browse the repository at this point in the history
  • Loading branch information
jbranchaud authored and kodiakhq[bot] committed Mar 28, 2024
1 parent bbd16e5 commit a5f9940
Show file tree
Hide file tree
Showing 8 changed files with 100 additions and 31 deletions.
12 changes: 12 additions & 0 deletions apps/colt-steele/src/pages/api/skill/[...skillRecordings].ts
Expand Up @@ -2,13 +2,25 @@ import SkillRecordings, {
SkillRecordingsOptions,
} from '@skillrecordings/skill-api'
import {nextAuthOptions} from '../auth/[...nextauth]'
import {
defaultPaymentOptions,
StripeProvider,
} from '@skillrecordings/commerce-server'

export const paymentOptions = defaultPaymentOptions({
stripeProvider: StripeProvider({
stripeSecretKey: process.env.STRIPE_SECRET_TOKEN,
apiVersion: '2020-08-27',
}),
})

export const skillOptions: SkillRecordingsOptions = {
site: {
title: process.env.NEXT_PUBLIC_SITE_TITLE,
supportEmail: process.env.NEXT_PUBLIC_SUPPORT_EMAIL,
},
nextAuthOptions,
paymentOptions,
}

export default SkillRecordings(skillOptions)
Expand Down
12 changes: 12 additions & 0 deletions apps/devrel-fyi/src/pages/api/skill/[...skillRecordings].ts
Expand Up @@ -2,13 +2,25 @@ import SkillRecordings, {
SkillRecordingsOptions,
} from '@skillrecordings/skill-api'
import {nextAuthOptions} from '../auth/[...nextauth]'
import {
defaultPaymentOptions,
StripeProvider,
} from '@skillrecordings/commerce-server'

export const paymentOptions = defaultPaymentOptions({
stripeProvider: StripeProvider({
stripeSecretKey: process.env.STRIPE_SECRET_TOKEN,
apiVersion: '2020-08-27',
}),
})

export const skillOptions: SkillRecordingsOptions = {
site: {
title: process.env.NEXT_PUBLIC_SITE_TITLE,
supportEmail: process.env.NEXT_PUBLIC_SUPPORT_EMAIL,
},
nextAuthOptions,
paymentOptions,
}

export default SkillRecordings(skillOptions)
Expand Down
23 changes: 13 additions & 10 deletions apps/devrel-fyi/src/pages/thanks/purchase.tsx
Expand Up @@ -5,7 +5,6 @@ import {
convertToSerializeForNextResponse,
determinePurchaseType,
PurchaseType,
stripeData,
} from '@skillrecordings/commerce-server'
import {
EXISTING_BULK_COUPON,
Expand All @@ -23,32 +22,36 @@ import {getProduct} from '@/lib/products'
import {isEmpty} from 'lodash'
import {Transfer} from '@/purchase-transfer/purchase-transfer'
import {trpc} from '@/trpc/trpc.client'
import {paymentOptions} from '../api/skill/[...skillRecordings]'

export const getServerSideProps: GetServerSideProps = async (context) => {
const {query} = context
const provider =
(query.provider instanceof Array ? query.provider[0] : query.provider) ||
'stripe'
const session_id =
query.session_id instanceof Array ? query.session_id[0] : query.session_id

const {session_id} = query
const paymentProvider = paymentOptions.getProvider(provider)

if (!session_id) {
if (!session_id || !paymentProvider) {
return {
notFound: true,
}
}

const purchaseInfo = await stripeData({
checkoutSessionId: session_id as string,
})
const purchaseInfo = await paymentProvider.getPurchaseInfo(session_id)

const {
email,
stripeChargeId,
chargeIdentifier,
quantity: seatsPurchased,
stripeProduct,
product: merchantProduct,
} = purchaseInfo

const stripeProductName = stripeProduct.name
const stripeProductName = merchantProduct.name

const purchase = await getSdk().getPurchaseForStripeCharge(stripeChargeId)
const purchase = await getSdk().getPurchaseForStripeCharge(chargeIdentifier)

if (!purchase || !email) {
return {
Expand Down
12 changes: 12 additions & 0 deletions apps/pro-aws/src/pages/api/skill/[...skillRecordings].ts
Expand Up @@ -2,13 +2,25 @@ import SkillRecordings, {
SkillRecordingsOptions,
} from '@skillrecordings/skill-api'
import {nextAuthOptions} from '../auth/[...nextauth]'
import {
defaultPaymentOptions,
StripeProvider,
} from '@skillrecordings/commerce-server'

export const paymentOptions = defaultPaymentOptions({
stripeProvider: StripeProvider({
stripeSecretKey: process.env.STRIPE_SECRET_TOKEN,
apiVersion: '2020-08-27',
}),
})

export const skillOptions: SkillRecordingsOptions = {
site: {
title: process.env.NEXT_PUBLIC_SITE_TITLE,
supportEmail: process.env.NEXT_PUBLIC_SUPPORT_EMAIL,
},
nextAuthOptions,
paymentOptions,
}

export default SkillRecordings(skillOptions)
Expand Down
23 changes: 13 additions & 10 deletions apps/pro-aws/src/pages/thanks/purchase.tsx
Expand Up @@ -5,7 +5,6 @@ import {
convertToSerializeForNextResponse,
determinePurchaseType,
PurchaseType,
stripeData,
} from '@skillrecordings/commerce-server'
import {
EXISTING_BULK_COUPON,
Expand All @@ -23,32 +22,36 @@ import {getProduct} from '@/lib/products'
import {isEmpty} from 'lodash'
import {Transfer} from '@/purchase-transfer/purchase-transfer'
import {trpc} from '@/trpc/trpc.client'
import {paymentOptions} from '../api/skill/[...skillRecordings]'

export const getServerSideProps: GetServerSideProps = async (context) => {
const {query} = context
const provider =
(query.provider instanceof Array ? query.provider[0] : query.provider) ||
'stripe'
const session_id =
query.session_id instanceof Array ? query.session_id[0] : query.session_id

const {session_id} = query
const paymentProvider = paymentOptions.getProvider(provider)

if (!session_id) {
if (!session_id || !paymentProvider) {
return {
notFound: true,
}
}

const purchaseInfo = await stripeData({
checkoutSessionId: session_id as string,
})
const purchaseInfo = await paymentProvider.getPurchaseInfo(session_id)

const {
email,
stripeChargeId,
chargeIdentifier,
quantity: seatsPurchased,
stripeProduct,
product: merchantProduct,
} = purchaseInfo

const stripeProductName = stripeProduct.name
const stripeProductName = merchantProduct.name

const purchase = await getSdk().getPurchaseForStripeCharge(stripeChargeId)
const purchase = await getSdk().getPurchaseForStripeCharge(chargeIdentifier)

if (!purchase || !email) {
return {
Expand Down
12 changes: 12 additions & 0 deletions apps/pro-nextjs/src/pages/api/skill/[...skillRecordings].ts
Expand Up @@ -2,13 +2,25 @@ import SkillRecordings, {
SkillRecordingsOptions,
} from '@skillrecordings/skill-api'
import {nextAuthOptions} from '../auth/[...nextauth]'
import {
defaultPaymentOptions,
StripeProvider,
} from '@skillrecordings/commerce-server'

export const paymentOptions = defaultPaymentOptions({
stripeProvider: StripeProvider({
stripeSecretKey: process.env.STRIPE_SECRET_TOKEN,
apiVersion: '2020-08-27',
}),
})

export const skillOptions: SkillRecordingsOptions = {
site: {
title: process.env.NEXT_PUBLIC_SITE_TITLE,
supportEmail: process.env.NEXT_PUBLIC_SUPPORT_EMAIL,
},
nextAuthOptions,
paymentOptions,
}

export default SkillRecordings(skillOptions)
Expand Down
Expand Up @@ -2,13 +2,25 @@ import SkillRecordings, {
SkillRecordingsOptions,
} from '@skillrecordings/skill-api'
import {nextAuthOptions} from '../auth/[...nextauth]'
import {
defaultPaymentOptions,
StripeProvider,
} from '@skillrecordings/commerce-server'

export const paymentOptions = defaultPaymentOptions({
stripeProvider: StripeProvider({
stripeSecretKey: process.env.STRIPE_SECRET_TOKEN,
apiVersion: '2020-08-27',
}),
})

export const skillOptions: SkillRecordingsOptions = {
site: {
title: process.env.NEXT_PUBLIC_SITE_TITLE,
supportEmail: process.env.NEXT_PUBLIC_SUPPORT_EMAIL,
},
nextAuthOptions,
paymentOptions,
}

export default SkillRecordings(skillOptions)
Expand Down
Expand Up @@ -5,7 +5,6 @@ import {
convertToSerializeForNextResponse,
determinePurchaseType,
PurchaseType,
stripeData,
} from '@skillrecordings/commerce-server'
import {
EXISTING_BULK_COUPON,
Expand All @@ -23,32 +22,36 @@ import {getProduct} from '@/lib/products'
import {isEmpty} from 'lodash'
import {Transfer} from '@/purchase-transfer/purchase-transfer'
import {trpc} from '@/trpc/trpc.client'
import {paymentOptions} from '../api/skill/[...skillRecordings]'

export const getServerSideProps: GetServerSideProps = async (context) => {
const {query} = context
const provider =
(query.provider instanceof Array ? query.provider[0] : query.provider) ||
'stripe'
const session_id =
query.session_id instanceof Array ? query.session_id[0] : query.session_id

const {session_id} = query
const paymentProvider = paymentOptions.getProvider(provider)

if (!session_id) {
if (!session_id || !paymentProvider) {
return {
notFound: true,
}
}

const purchaseInfo = await stripeData({
checkoutSessionId: session_id as string,
})
const purchaseInfo = await paymentProvider.getPurchaseInfo(session_id)

const {
email,
stripeChargeId,
chargeIdentifier,
quantity: seatsPurchased,
stripeProduct,
product: merchantProduct,
} = purchaseInfo

const stripeProductName = stripeProduct.name
const stripeProductName = merchantProduct.name

const purchase = await getSdk().getPurchaseForStripeCharge(stripeChargeId)
const purchase = await getSdk().getPurchaseForStripeCharge(chargeIdentifier)

if (!purchase || !email) {
return {
Expand All @@ -57,7 +60,7 @@ export const getServerSideProps: GetServerSideProps = async (context) => {
}

const purchaseType = await determinePurchaseType({
checkoutSessionId: session_id as string,
checkoutSessionId: session_id,
})

const product = await getProduct(purchase.productId)
Expand Down

0 comments on commit a5f9940

Please sign in to comment.