Feat: show client endpoint (#2058)

* show client endpoint

* improve

* fix status code
This commit is contained in:
Bernd Storath
2025-07-25 12:00:42 +02:00
committed by GitHub
parent b5318086d2
commit 07f89d15a9
5 changed files with 54 additions and 2 deletions
+13 -1
View File
@@ -18,6 +18,18 @@ export default definePermissionEventHandler(
statusMessage: 'Client not found',
});
}
return result;
const data = await WireGuard.dumpByPublicKey(result.publicKey);
if (!data) {
throw createError({
statusCode: 500,
statusMessage: 'Failed to dump client data',
});
}
return {
...result,
endpoint: data.endpoint,
};
}
);
+11
View File
@@ -93,6 +93,17 @@ class WireGuard {
return clients;
}
async dumpByPublicKey(publicKey: string) {
const wgInterface = await Database.interfaces.get();
const dump = await wg.dump(wgInterface.name);
const clientDump = dump.find(
({ publicKey: dumpPublicKey }) => dumpPublicKey === publicKey
);
return clientDump;
}
async getAllClients() {
const wgInterface = await Database.interfaces.get();
const dbClients = await Database.clients.getAllPublic();