Feat: show client endpoint (#2058)
* show client endpoint * improve * fix status code
This commit is contained in:
@@ -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,
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
@@ -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();
|
||||
|
||||
Reference in New Issue
Block a user