From 7d64a2bc4dea3ccf0c6383712e72ee178a16b89d Mon Sep 17 00:00:00 2001 From: Philipp Kunz Date: Sun, 18 Feb 2024 23:41:50 +0100 Subject: [PATCH] fix(core): update --- ts/00_commitinfo_data.ts | 2 +- ts/classes.account.ts | 4 ++-- ts/classes.server.ts | 14 +++++++++++--- 3 files changed, 14 insertions(+), 6 deletions(-) diff --git a/ts/00_commitinfo_data.ts b/ts/00_commitinfo_data.ts index c6a270a..bbf6fc4 100644 --- a/ts/00_commitinfo_data.ts +++ b/ts/00_commitinfo_data.ts @@ -3,6 +3,6 @@ */ export const commitinfo = { name: '@apiclient.xyz/hetznercloud', - version: '1.0.14', + version: '1.0.15', description: 'an unofficial api client for the hetzner cloud api' } diff --git a/ts/classes.account.ts b/ts/classes.account.ts index ca9fc62..0b9eef2 100644 --- a/ts/classes.account.ts +++ b/ts/classes.account.ts @@ -11,8 +11,8 @@ export class HetznerAccount { return HetznerServer.getServers(this); } - public async getServerByLabel(labelArg: string, valueArg?: string) { - return HetznerServer.getServerByLabel(this, labelArg, valueArg); + public async getServerByLabel(labelArg: string, labelObject: plugins.tsclass.typeFestOwn.SecondArgument) { + return HetznerServer.getServersByLabel(this, labelObject); } public async createServer(optionsArg: plugins.tsclass.typeFestOwn.SecondArgument) { diff --git a/ts/classes.server.ts b/ts/classes.server.ts index 171a1e4..84a67a5 100644 --- a/ts/classes.server.ts +++ b/ts/classes.server.ts @@ -52,13 +52,21 @@ export class HetznerServer { return servers; } - public static async getServerByLabel(hetznerAccountRefArg: HetznerAccount, labelArg: string, valueArg?: string) { + public static async getServersByLabel(hetznerAccountRefArg: HetznerAccount, labelObject: {[key: string]: string}) { const servers = await HetznerServer.getServers(hetznerAccountRefArg); + const results: HetznerServer[] = []; for (const server of servers) { - if (valueArg ? server.data.labels[labelArg] === valueArg : server.data.labels[labelArg]) { - return server; + let isMatch = true; + for (const key in labelObject) { + if (server.data.labels[key] !== labelObject[key]) { + isMatch = false; + } + } + if (isMatch) { + results.push(server); } } + return results; } // INSTANCE