Files
coolify/src/routes/webhooks/github/index.ts
Andras Bacsai 460ae85226 V2 (#111)
Just v2
2022-02-10 15:47:44 +01:00

42 lines
1.3 KiB
TypeScript

import { dev } from '$app/env';
import { getTeam } from '$lib/common';
import * as db from '$lib/database';
import { PrismaErrorHandler } from '$lib/database';
import type { RequestHandler } from '@sveltejs/kit';
export const options = async () => {
return {
status: 200,
headers: {
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Headers': 'Content-Type, Authorization',
'Access-Control-Allow-Methods': 'GET, POST, PUT, DELETE, OPTIONS'
}
};
};
export const get: RequestHandler = async (request) => {
const teamId = undefined;
const code = request.url.searchParams.get('code');
const state = request.url.searchParams.get('state');
try {
const { apiUrl } = await db.getSource({ id: state, teamId });
const response = await fetch(`${apiUrl}/app-manifests/${code}/conversions`, { method: 'POST' });
if (!response.ok) {
const error = await response.json();
return {
status: 500,
body: { ...error }
};
}
const { id, client_id, slug, client_secret, pem, webhook_secret } = await response.json();
await db.createGithubApp({ id, client_id, slug, client_secret, pem, webhook_secret, state });
return {
status: 302,
headers: { Location: `/webhooks/success` }
};
} catch (error) {
return PrismaErrorHandler(error);
}
};