Tldraw/apps/huppy/pages/api/on-release.ts

36 wiersze
1.1 KiB
TypeScript

import { assert } from '@tldraw/utils'
import { T } from '@tldraw/validate'
import { NextApiRequest, NextApiResponse } from 'next'
import { TLDRAW_ORG } from '../../src/config'
import { standaloneExamplesBranch } from '../../src/flows/standaloneExamplesBranch'
import { getCtxForOrg } from '../../src/getCtxForOrg'
import { wrapRequest } from '../../src/requestWrapper'
const bodySchema = T.object({
tagToRelease: T.string,
apiKey: T.string,
canary: T.boolean.optional(),
})
const handler = wrapRequest(
'/api/on-release',
async function handler(req: NextApiRequest, res: NextApiResponse) {
assert(req.method === 'POST')
const body = bodySchema.validate(req.body)
assert(typeof process.env.DEVELOPER_ACCESS_KEY === 'string')
if (body.apiKey !== process.env.DEVELOPER_ACCESS_KEY) {
res.status(401).send('Bad api key')
return
}
const { tagToRelease } = body
await standaloneExamplesBranch.onCustomHook(await getCtxForOrg(TLDRAW_ORG), {
tagToRelease,
canary: !!body.canary,
})
res.send('Created standalone examples branch')
}
)
export default handler