diff --git a/src/components/AdminSettings/TurnServer.vue b/src/components/AdminSettings/TurnServer.vue index 1c1db3d8b70..bc4d31d06d1 100644 --- a/src/components/AdminSettings/TurnServer.vue +++ b/src/components/AdminSettings/TurnServer.vue @@ -89,7 +89,7 @@ import NcPasswordField from '@nextcloud/vue/dist/Components/NcPasswordField.js' import NcSelect from '@nextcloud/vue/dist/Components/NcSelect.js' import NcTextField from '@nextcloud/vue/dist/Components/NcTextField.js' -import { isCertificateValid } from '../../services/certificateService.js' +import { isCertificateValid } from '../../services/certificateService.ts' export default { name: 'TurnServer', diff --git a/src/services/certificateService.js b/src/services/certificateService.js deleted file mode 100644 index 5875e165a18..00000000000 --- a/src/services/certificateService.js +++ /dev/null @@ -1,53 +0,0 @@ -/** - * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors - * SPDX-License-Identifier: AGPL-3.0-or-later - */ -import axios from '@nextcloud/axios' -import { generateOcsUrl } from '@nextcloud/router' - -/** - * Retrieves the certificate expiration of the specified host - * - * @param {string} host The host to check the certificate - * @return {number|null} Null if unable to retrieve the certificates expiration, otherwise the expiration in days (negative if already expired) - */ -const getCertificateExpiration = async (host) => { - try { - const response = await axios.get(generateOcsUrl('apps/spreed/api/v1/certificate/expiration'), { - params: { - host, - }, - }) - - return response.data.ocs.data.expiration_in_days - } catch (error) { - console.error(error) - } - - return null -} - -/** - * Checks if the certificate of a host is valid - * - * @param {string} host The host to check the certificate - * @return {boolean} true if the certificate is valid, false otherwise - */ -const isCertificateValid = async (host) => { - const expiration = await getCertificateExpiration(host) - - if (expiration == null) { - console.warn('Unable to check certificate of', host) - } else if (expiration < 0) { - console.error('Certificate of', host, 'expired') - } else { - console.info('Certificate of', host, 'is valid for', expiration, 'days') - } - - return expiration > 0 -} - -export { - getCertificateExpiration, - isCertificateValid, -} diff --git a/src/services/certificateService.ts b/src/services/certificateService.ts new file mode 100644 index 00000000000..e31726c7416 --- /dev/null +++ b/src/services/certificateService.ts @@ -0,0 +1,54 @@ +/** + * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +import axios from '@nextcloud/axios' +import { generateOcsUrl } from '@nextcloud/router' + +import type { certificateExpirationParams, certificateExpirationResponse } from '../types/index.ts' + +/** + * Retrieves the certificate expiration of the specified host + * + * @param host The host to check the certificate + */ +const getCertificateExpiration = async (host: certificateExpirationParams['host']): certificateExpirationResponse => { + return axios.get(generateOcsUrl('apps/spreed/api/v1/certificate/expiration'), { + params: { + host, + } as certificateExpirationParams, + }) +} + +/** + * Checks if the certificate of a host is valid + * + * @param host The host to check the certificate + * @return {boolean} true if the certificate is valid, false otherwise + */ +const isCertificateValid = async (host: certificateExpirationParams['host']): Promise => { + try { + const response = await getCertificateExpiration(host) + + // Null if unable to retrieve the certificates expiration, otherwise the expiration in days (negative if already expired) + const expiration = response.data.ocs.data.expiration_in_days + + if (expiration == null) { + console.warn('Unable to check certificate of', host) + return false + } else if (expiration < 0) { + console.error('Certificate of', host, 'expired') + } else { + console.info('Certificate of', host, 'is valid for', expiration, 'days') + } + return expiration > 0 + } catch (error) { + console.error(error) + return false + } +} + +export { + getCertificateExpiration, + isCertificateValid, +} diff --git a/src/types/index.ts b/src/types/index.ts index 36b78b1558b..924ed5fa493 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -177,6 +177,10 @@ export type getBotsAdminResponse = ApiResponse export type disableBotResponse = ApiResponse +// Certificate +export type certificateExpirationParams = operations['certificate-get-certificate-expiration']['parameters']['query'] +export type certificateExpirationResponse = ApiResponse + // Federations export type FederationInvite = components['schemas']['FederationInvite'] type FederationInviteRichParameters = {