feat: add basic webui

This commit is contained in:
2024-12-30 06:39:09 +08:00
parent 608a7fb9c6
commit a4c549e7c3
462 changed files with 35900 additions and 2491 deletions

View File

@@ -0,0 +1,6 @@
import { getAppPortal, send } from './lib/svix';
export const webhooks = {
send,
getAppPortal,
};

View File

@@ -0,0 +1,51 @@
import 'server-only';
import { getSessionFromHeaders } from '@konobangu/auth/server';
import { env } from '@konobangu/env';
import { Svix } from 'svix';
export const send = async (eventType: string, payload: object) => {
if (!env.SVIX_TOKEN) {
throw new Error('SVIX_TOKEN is not set');
}
const svix = new Svix(env.SVIX_TOKEN);
const session = await getSessionFromHeaders();
const { orgId } = session;
if (!orgId) {
return;
}
return svix.message.create(orgId, {
eventType,
payload: {
eventType,
...payload,
},
application: {
name: orgId,
uid: orgId,
},
});
};
export const getAppPortal = async () => {
if (!env.SVIX_TOKEN) {
throw new Error('SVIX_TOKEN is not set');
}
const svix = new Svix(env.SVIX_TOKEN);
const session = await getSessionFromHeaders();
const { orgId } = session;
if (!orgId) {
return;
}
return svix.authentication.appPortalAccess(orgId, {
application: {
name: orgId,
uid: orgId,
},
});
};

View File

@@ -0,0 +1,18 @@
{
"name": "@konobangu/webhooks",
"version": "0.0.0",
"private": true,
"scripts": {
"clean": "git clean -xdf .cache .turbo dist node_modules",
"typecheck": "tsc --noEmit --emitDeclarationOnly false"
},
"dependencies": {
"@konobangu/auth": "workspace:*",
"@konobangu/env": "workspace:*",
"svix": "^1.43.0"
},
"devDependencies": {
"typescript": "^5.7.2",
"@konobangu/typescript-config": "workspace:*"
}
}