small clients ui tweaks

This commit is contained in:
miloschwartz 2025-04-20 16:49:48 -04:00
parent f960fb7d67
commit fa6fc9e80d
No known key found for this signature in database
25 changed files with 215 additions and 377 deletions

View file

@ -1,28 +1,38 @@
import db from '@server/db';
import { newts, sites } from '@server/db/schema';
import { eq } from 'drizzle-orm';
import { sendToClient } from '../ws';
import logger from '@server/logger';
import db from "@server/db";
import { newts, sites } from "@server/db/schemas";
import { eq } from "drizzle-orm";
import { sendToClient } from "../ws";
import logger from "@server/logger";
export async function addPeer(siteId: number, peer: {
publicKey: string;
allowedIps: string[];
endpoint: string;
}) {
const [site] = await db.select().from(sites).where(eq(sites.siteId, siteId)).limit(1);
export async function addPeer(
siteId: number,
peer: {
publicKey: string;
allowedIps: string[];
endpoint: 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);
const [newt] = await db
.select()
.from(newts)
.where(eq(newts.siteId, siteId))
.limit(1);
if (!newt) {
throw new Error(`Site found for site ${siteId}`);
}
sendToClient(newt.newtId, {
type: 'newt/wg/peer/add',
type: "newt/wg/peer/add",
data: peer
});
@ -30,19 +40,27 @@ export async function addPeer(siteId: number, peer: {
}
export async function deletePeer(siteId: number, publicKey: string) {
const [site] = await db.select().from(sites).where(eq(sites.siteId, siteId)).limit(1);
const [site] = await db
.select()
.from(sites)
.where(eq(sites.siteId, siteId))
.limit(1);
if (!site) {
throw new Error(`Site 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);
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: 'newt/wg/peer/remove',
type: "newt/wg/peer/remove",
data: {
publicKey
}
@ -51,23 +69,35 @@ export async function deletePeer(siteId: number, publicKey: string) {
logger.info(`Deleted peer ${publicKey} from newt ${newt.newtId}`);
}
export async function updatePeer(siteId: number, publicKey: string, peer: {
allowedIps?: string[];
endpoint?: string;
}) {
const [site] = await db.select().from(sites).where(eq(sites.siteId, siteId)).limit(1);
export async function updatePeer(
siteId: number,
publicKey: string,
peer: {
allowedIps?: string[];
endpoint?: string;
}
) {
const [site] = await db
.select()
.from(sites)
.where(eq(sites.siteId, siteId))
.limit(1);
if (!site) {
throw new Error(`Site 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);
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: 'newt/wg/peer/update',
type: "newt/wg/peer/update",
data: {
publicKey,
...peer
@ -75,4 +105,4 @@ export async function updatePeer(siteId: number, publicKey: string, peer: {
});
logger.info(`Updated peer ${publicKey} on newt ${newt.newtId}`);
}
}