From e057d21e75c85410341411f66220f5c0162f733a Mon Sep 17 00:00:00 2001 From: Benjamin Toby Date: Sun, 13 Sep 2026 07:55:28 +0100 Subject: [PATCH] Update setupWireguardHost function to grab clients from database --- .../backend/setup/setup-wireguard-client.ts | 41 +++++++++++++++++++ .../backend/setup/setup-wireguard-host.ts | 20 ++++++++- 2 files changed, 59 insertions(+), 2 deletions(-) create mode 100644 src/functions/backend/setup/setup-wireguard-client.ts diff --git a/src/functions/backend/setup/setup-wireguard-client.ts b/src/functions/backend/setup/setup-wireguard-client.ts new file mode 100644 index 0000000..4c5a58e --- /dev/null +++ b/src/functions/backend/setup/setup-wireguard-client.ts @@ -0,0 +1,41 @@ +import type { + BUN_SQLITE_WGUI_CLIENTS, + BUN_SQLITE_WGUI_HOSTS, + BUN_SQLITE_WGUI_VARIABLES, +} from "@/db/types/db"; +import { AppData } from "@/src/data/app-data"; +import grabDirNames from "@/src/utils/grab-dir-names"; +import { execSync } from "node:child_process"; +import path from "node:path"; +import grabHostNetworkInterface from "./grab-host-network-interface"; +import type { APIResponseObject } from "@moduletrace/bunext/types"; + +const { + WGUI_LIB_IP_TABLES_DIR, + WIREGUARD_HOST_CONFIG_DIR, + WIREGUARD_PRIVATE_KEY_FILE_NAME, + WIREGUARD_PUBLIC_KEY_FILE_NAME, +} = grabDirNames(); + +type Params = { + client: BUN_SQLITE_WGUI_CLIENTS; + host?: BUN_SQLITE_WGUI_HOSTS; + variables?: BUN_SQLITE_WGUI_VARIABLES[]; +}; + +/** + * Function to setup a wireguard client. This + * function will eventually call the setupWireguardHost + * function afterwards to update it + * @param param0 + * @returns + */ +export default async function setupWireguardClient({ + client, + host, + variables, +}: Params): Promise { + return { + success: true, + }; +} diff --git a/src/functions/backend/setup/setup-wireguard-host.ts b/src/functions/backend/setup/setup-wireguard-host.ts index 601913a..5bb5381 100644 --- a/src/functions/backend/setup/setup-wireguard-host.ts +++ b/src/functions/backend/setup/setup-wireguard-host.ts @@ -9,6 +9,8 @@ import { execSync } from "node:child_process"; import path from "node:path"; import grabHostNetworkInterface from "./grab-host-network-interface"; import type { APIResponseObject } from "@moduletrace/bunext/types"; +import BunSQLite from "@moduletrace/bun-sqlite"; +import type { TableType } from "@/src/types"; const { WGUI_LIB_IP_TABLES_DIR, @@ -18,18 +20,32 @@ const { } = grabDirNames(); type Params = { - clients: BUN_SQLITE_WGUI_CLIENTS[]; host?: BUN_SQLITE_WGUI_HOSTS; variables?: BUN_SQLITE_WGUI_VARIABLES[]; }; export default async function setupWireguardHost({ - clients, host, variables, }: Params): Promise { const host_id = host?.id || AppData["WireguardHostID"]; + const host_clients_res = await BunSQLite.select< + BUN_SQLITE_WGUI_CLIENTS, + TableType + >({ + table: "clients", + query: { + query: { + host_id: { + value: host_id, + }, + }, + }, + }); + + const clients = host_clients_res.payload || []; + const TARGET_INTERFACE = await grabHostNetworkInterface(); const HOST_WG_IP = host?.wg_ip_address ||