Working on handlers

This commit is contained in:
Owen
2025-02-21 10:55:38 -05:00
parent e112fcba29
commit b9de0f8e38
5 changed files with 62 additions and 171 deletions

View File

@@ -16,7 +16,7 @@ export const handleNewtRegisterMessage: MessageHandler = async (context) => {
const newt = client;
logger.info("Handling register message!");
logger.info("Handling register newt message!");
if (!newt) {
logger.warn("Newt not found");

View File

@@ -0,0 +1,46 @@
import db from '@server/db';
import { newts, sites } from '@server/db/schema';
import { eq } from 'drizzle-orm';
import { sendToClient } from '../ws';
export async function addPeer(siteId: number, peer: {
publicKey: string;
allowedIps: string[];
}) {
const [site] = await db.select().from(sites).where(eq(sites.siteId, siteId)).limit(1);
if (!site) {
throw new Error(`Exit node with ID ${siteId} not found`);
}
// get the newt on the site
const [newt] = await db.select().from(newts).where(eq(newts.siteId, siteId)).limit(1);
if (!newt) {
throw new Error(`Newt not found for site ${siteId}`);
}
sendToClient(newt.newtId, {
type: 'add_peer',
data: peer
});
}
export async function deletePeer(siteId: number, publicKey: string) {
const [site] = await db.select().from(sites).where(eq(sites.siteId, siteId)).limit(1);
if (!site) {
throw new Error(`Exit node with ID ${siteId} not found`);
}
// get the newt on the site
const [newt] = await db.select().from(newts).where(eq(newts.siteId, siteId)).limit(1);
if (!newt) {
throw new Error(`Newt not found for site ${siteId}`);
}
sendToClient(newt.newtId, {
type: 'delete_peer',
data: {
publicKey
}
});
}