Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

sks 92 (and sks 89) set up payment options for epic react and other remaining apps #1474

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
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/epic-react/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
26 changes: 15 additions & 11 deletions apps/epic-react/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,37 @@ 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 {session_id} = query
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

if (!session_id) {
const paymentProvider = paymentOptions.getProvider(provider)

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 Expand Up @@ -312,7 +316,7 @@ export default ThanksVerify

const MailIcon = () => {
return (
<div className="rounded-full bg-black/5 p-5 shadow-inner">
<div className="bg-black/5 rounded-full p-5 shadow-inner">
<svg
xmlns="http://www.w3.org/2000/svg"
viewBox="0 0 48 48"
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