From 5e746f643b992793972747bf813f4cba2aa94c41 Mon Sep 17 00:00:00 2001 From: Michele Rullo Date: Wed, 12 Nov 2025 00:13:28 +0100 Subject: [PATCH] feature: add search api --- src/server/api/client/search.get.ts | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 src/server/api/client/search.get.ts diff --git a/src/server/api/client/search.get.ts b/src/server/api/client/search.get.ts new file mode 100644 index 00000000..e0a17f37 --- /dev/null +++ b/src/server/api/client/search.get.ts @@ -0,0 +1,18 @@ +import { ClientQuerySchema } from '#db/repositories/client/types'; + +export default definePermissionEventHandler( + 'clients', + 'custom', + async ({ event, user }) => { + const { filter } = await getValidatedQuery( + event, + validateZod(ClientQuerySchema, event) + ); + + // Filter is used to search by name, IPv4, or IPv6 + if (user.role === roles.ADMIN) { + return WireGuard.getAllClients(filter); + } + return WireGuard.getClientsForUser(user.id, filter); + } +);