From b565805057d8922daecdf1da6099a2304e7367ca Mon Sep 17 00:00:00 2001 From: Jens Pelzetter Date: Sun, 26 Jul 2020 12:52:16 +0200 Subject: [PATCH] Client for System Information RESTful API --- .../src/main/typescript/ccm-core-apiclient.ts | 3 +- .../clients/systeminformation-api.ts | 33 +++++++++++++++++++ 2 files changed, 35 insertions(+), 1 deletion(-) create mode 100644 ccm-core-apiclient/src/main/typescript/clients/systeminformation-api.ts diff --git a/ccm-core-apiclient/src/main/typescript/ccm-core-apiclient.ts b/ccm-core-apiclient/src/main/typescript/ccm-core-apiclient.ts index 41bbafea8..39639dc77 100644 --- a/ccm-core-apiclient/src/main/typescript/ccm-core-apiclient.ts +++ b/ccm-core-apiclient/src/main/typescript/ccm-core-apiclient.ts @@ -1,3 +1,4 @@ import { CategorizationApiClient } from "./clients/categorization-api"; +import { SystemInformationClient } from "./clients/systeminformation-api"; -export { CategorizationApiClient }; +export { CategorizationApiClient, SystemInformationClient }; diff --git a/ccm-core-apiclient/src/main/typescript/clients/systeminformation-api.ts b/ccm-core-apiclient/src/main/typescript/clients/systeminformation-api.ts new file mode 100644 index 000000000..a99cf1699 --- /dev/null +++ b/ccm-core-apiclient/src/main/typescript/clients/systeminformation-api.ts @@ -0,0 +1,33 @@ +import { + ApiResponse, + LibreCcmApiClient, +} from "@libreccm/ccm-apiclient-commons"; + +import * as Constants from "../constants"; + +export class SystemInformationClient { + #apiClient: LibreCcmApiClient; + + readonly #SYSINFO_API_PREFIX = `${Constants.ADMIN_API_PREFIX}/systeminformation`; + + constructor(apiClient: LibreCcmApiClient) { + this.#apiClient = apiClient; + } + + async getSystemInformation(): Promise> { + try { + const response: ApiResponse = await this.#apiClient.get( + this.#SYSINFO_API_PREFIX + ); + + if (response.ok) { + return (await response.json()) as Record; + } else { + throw `Failed get system information: + ${response.status} ${response.statusText}`; + } + } catch (err) { + throw `Failed to get system information: ${err}`; + } + } +}