2
0

🛂 Add checkSubscriptions script

This commit is contained in:
Baptiste Arnaud
2023-06-23 12:05:47 +02:00
parent de0b105276
commit 2abce89a46
2 changed files with 48 additions and 1 deletions

View File

@ -0,0 +1,46 @@
import { PrismaClient } from '@typebot.io/prisma'
import { promptAndSetEnvironment } from './utils'
import { Stripe } from 'stripe'
const checkSubscriptionsStatus = async () => {
await promptAndSetEnvironment()
const prisma = new PrismaClient()
const workspacesWithPaidPlan = await prisma.workspace.findMany({
where: {
plan: {
in: ['PRO', 'STARTER', 'CUSTOM'],
},
},
})
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, {
apiVersion: '2022-11-15',
})
let activeSubscriptions = 0
for (const workspace of workspacesWithPaidPlan) {
if (!workspace.stripeId) {
console.log('No stripe ID', workspace.id)
continue
}
const customer = await stripe.customers.retrieve(workspace.stripeId)
const subscription = (
await stripe.subscriptions.list({
customer: customer.id,
})
).data.at(0)
if (!subscription) {
console.log('No subscription', workspace.id)
continue
}
if (subscription.status === 'active') {
activeSubscriptions++
continue
}
console.log(`${workspace.id} - ${workspace.name} - ${subscription.status}`)
}
console.log('Active subscriptions', activeSubscriptions)
}
checkSubscriptionsStatus()

View File

@ -14,7 +14,8 @@
"db:fixTypebots": "tsx fixTypebots.ts",
"telemetry:sendTotalResultsDigest": "tsx sendTotalResultsDigest.ts",
"sendAlertEmails": "tsx sendAlertEmails.ts",
"inspectUser": "tsx inspectUser.ts"
"inspectUser": "tsx inspectUser.ts",
"checkSubscriptionsStatus": "tsx checkSubscriptionsStatus.ts"
},
"devDependencies": {
"@typebot.io/emails": "workspace:*",