UNPKG

@c8y/ngx-components

Version:

Angular modules for Cumulocity IoT applications

61 lines 9.95 kB
import { ApplicationType } from '@c8y/client'; import { gettext } from '@c8y/ngx-components'; import { flatMap } from 'lodash-es'; export class BaseExtensibleDeviceRegistrationService { constructor(applicationService, stateService) { this.applicationService = applicationService; this.stateService = stateService; } getMetadataUrl(contextPath) { return `${this.getServiceBaseUrl(contextPath)}/metadata`; } getServiceBaseUrl(contextPath) { if (!contextPath || contextPath.length === 0) { throw new Error(gettext('The URL of the microservice is misconfigured. A context path is missing.')); } return `/service/${contextPath}/deviceRegistration`; } async getDeviceRegistrationProviders(bulk) { let providers = []; const microservices = await this.listMicroservicesByUser(); if (microservices && microservices.length > 0) { providers = this.getProvidersFromManifestExtensions(microservices, bulk).concat(this.getProvidersFromExtensions(microservices, bulk)); } return providers; } async listMicroservicesByUser() { const { data } = await this.applicationService.listByUser(this.stateService?.currentUser?.value?.userName, { dropOverwrittenApps: true, noPaging: true, pageSize: 100, withTotalPages: true }); return data?.filter(({ type }) => type === ApplicationType.MICROSERVICE); } getProvidersFromManifestExtensions(applications, bulk) { return flatMap(applications, application => { return application?.manifest?.extensions?.map(extension => { return { ...extension, contextPath: application.contextPath }; }); }).filter(provider => this.appSupportingExtensibleDeviceRegistrationForm(provider, bulk)); } getProvidersFromExtensions(applications, bulk) { return flatMap(applications, application => { return application.extensions?.map(extension => { return { ...extension, contextPath: application.contextPath }; }); }).filter(provider => this.appSupportingExtensibleDeviceRegistrationForm(provider, bulk)); } appSupportingExtensibleDeviceRegistrationForm(extension, bulk) { if (bulk) { return extension?.type === 'extensibleBulkDeviceRegistration'; } else { return extension?.type === 'extensibleDeviceRegistration'; } } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1leHRlbnNpYmxlLWRldmljZS1yZWdpc3RyYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3JlZ2lzdGVyLWRldmljZS9leHRlbnNpYmxlL2Jhc2UtZXh0ZW5zaWJsZS1kZXZpY2UtcmVnaXN0cmF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFzQixlQUFlLEVBQWdCLE1BQU0sYUFBYSxDQUFDO0FBQ2hGLE9BQU8sRUFBbUIsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFdBQVcsQ0FBQztBQU1wQyxNQUFNLE9BQU8sdUNBQXVDO0lBQ2xELFlBQ1ksa0JBQXNDLEVBQ3RDLFlBQTZCO1FBRDdCLHVCQUFrQixHQUFsQixrQkFBa0IsQ0FBb0I7UUFDdEMsaUJBQVksR0FBWixZQUFZLENBQWlCO0lBQ3RDLENBQUM7SUFFTSxjQUFjLENBQUMsV0FBbUI7UUFDMUMsT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsV0FBVyxDQUFDO0lBQzNELENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxXQUFtQjtRQUM3QyxJQUFJLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FDYixPQUFPLENBQUMsMEVBQTBFLENBQUMsQ0FDcEYsQ0FBQztRQUNKLENBQUM7UUFDRCxPQUFPLFlBQVksV0FBVyxxQkFBcUIsQ0FBQztJQUN0RCxDQUFDO0lBRVMsS0FBSyxDQUFDLDhCQUE4QixDQUM1QyxJQUFhO1FBRWIsSUFBSSxTQUFTLEdBQTJDLEVBQUUsQ0FBQztRQUMzRCxNQUFNLGFBQWEsR0FBRyxNQUFNLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQzNELElBQUksYUFBYSxJQUFJLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUMsU0FBUyxHQUFHLElBQUksQ0FBQyxrQ0FBa0MsQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUM3RSxJQUFJLENBQUMsMEJBQTBCLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxDQUNyRCxDQUFDO1FBQ0osQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTyxLQUFLLENBQUMsdUJBQXVCO1FBQ25DLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxVQUFVLENBQ3ZELElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQy9DO1lBQ0UsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxHQUFHO1lBQ2IsY0FBYyxFQUFFLElBQUk7U0FDckIsQ0FDRixDQUFDO1FBQ0YsT0FBTyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLGVBQWUsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRU8sa0NBQWtDLENBQ3hDLFlBQTRCLEVBQzVCLElBQWE7UUFFYixPQUFPLE9BQU8sQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDekMsT0FBTyxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3hELE9BQU8sRUFBRSxHQUFHLFNBQVMsRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLFdBQVcsRUFBMEIsQ0FBQztZQUN4RixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyw2Q0FBNkMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUM1RixDQUFDO0lBRU8sMEJBQTBCLENBQ2hDLFlBQTRCLEVBQzVCLElBQWE7UUFFYixPQUFPLE9BQU8sQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLEVBQUU7WUFDekMsT0FBTyxXQUFXLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDN0MsT0FBTztvQkFDTCxHQUFHLFNBQVM7b0JBQ1osV0FBVyxFQUFFLFdBQVcsQ0FBQyxXQUFXO2lCQUNHLENBQUM7WUFDNUMsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsNkNBQTZDLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDNUYsQ0FBQztJQUVPLDZDQUE2QyxDQUNuRCxTQUErQyxFQUMvQyxJQUFhO1FBRWIsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNULE9BQU8sU0FBUyxFQUFFLElBQUksS0FBSyxrQ0FBa0MsQ0FBQztRQUNoRSxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sU0FBUyxFQUFFLElBQUksS0FBSyw4QkFBOEIsQ0FBQztRQUM1RCxDQUFDO0lBQ0gsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXBwbGljYXRpb25TZXJ2aWNlLCBBcHBsaWNhdGlvblR5cGUsIElBcHBsaWNhdGlvbiB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEFwcFN0YXRlU2VydmljZSwgZ2V0dGV4dCB9IGZyb20gJ0BjOHkvbmd4LWNvbXBvbmVudHMnO1xuaW1wb3J0IHsgZmxhdE1hcCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQge1xuICBBcHBsaWNhdGlvbkV4dGVuc2lvbixcbiAgRXh0ZW5zaWJsZURldmljZVJlZ2lzdHJhdGlvblByb3ZpZGVyXG59IGZyb20gJy4vYmFzZS1kZXZpY2UtcmVnaXN0cmF0aW9uLm1vZGVsJztcblxuZXhwb3J0IGNsYXNzIEJhc2VFeHRlbnNpYmxlRGV2aWNlUmVnaXN0cmF0aW9uU2VydmljZSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBhcHBsaWNhdGlvblNlcnZpY2U6IEFwcGxpY2F0aW9uU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgc3RhdGVTZXJ2aWNlOiBBcHBTdGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIHByb3RlY3RlZCBnZXRNZXRhZGF0YVVybChjb250ZXh0UGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5nZXRTZXJ2aWNlQmFzZVVybChjb250ZXh0UGF0aCl9L21ldGFkYXRhYDtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRTZXJ2aWNlQmFzZVVybChjb250ZXh0UGF0aDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIWNvbnRleHRQYXRoIHx8IGNvbnRleHRQYXRoLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBnZXR0ZXh0KCdUaGUgVVJMIG9mIHRoZSBtaWNyb3NlcnZpY2UgaXMgbWlzY29uZmlndXJlZC4gQSBjb250ZXh0IHBhdGggaXMgbWlzc2luZy4nKVxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGAvc2VydmljZS8ke2NvbnRleHRQYXRofS9kZXZpY2VSZWdpc3RyYXRpb25gO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGdldERldmljZVJlZ2lzdHJhdGlvblByb3ZpZGVycyhcbiAgICBidWxrOiBib29sZWFuXG4gICk6IFByb21pc2U8RXh0ZW5zaWJsZURldmljZVJlZ2lzdHJhdGlvblByb3ZpZGVyW10+IHtcbiAgICBsZXQgcHJvdmlkZXJzOiBFeHRlbnNpYmxlRGV2aWNlUmVnaXN0cmF0aW9uUHJvdmlkZXJbXSA9IFtdO1xuICAgIGNvbnN0IG1pY3Jvc2VydmljZXMgPSBhd2FpdCB0aGlzLmxpc3RNaWNyb3NlcnZpY2VzQnlVc2VyKCk7XG4gICAgaWYgKG1pY3Jvc2VydmljZXMgJiYgbWljcm9zZXJ2aWNlcy5sZW5ndGggPiAwKSB7XG4gICAgICBwcm92aWRlcnMgPSB0aGlzLmdldFByb3ZpZGVyc0Zyb21NYW5pZmVzdEV4dGVuc2lvbnMobWljcm9zZXJ2aWNlcywgYnVsaykuY29uY2F0KFxuICAgICAgICB0aGlzLmdldFByb3ZpZGVyc0Zyb21FeHRlbnNpb25zKG1pY3Jvc2VydmljZXMsIGJ1bGspXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gcHJvdmlkZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBsaXN0TWljcm9zZXJ2aWNlc0J5VXNlcigpIHtcbiAgICBjb25zdCB7IGRhdGEgfSA9IGF3YWl0IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLmxpc3RCeVVzZXIoXG4gICAgICB0aGlzLnN0YXRlU2VydmljZT8uY3VycmVudFVzZXI/LnZhbHVlPy51c2VyTmFtZSxcbiAgICAgIHtcbiAgICAgICAgZHJvcE92ZXJ3cml0dGVuQXBwczogdHJ1ZSxcbiAgICAgICAgbm9QYWdpbmc6IHRydWUsXG4gICAgICAgIHBhZ2VTaXplOiAxMDAsXG4gICAgICAgIHdpdGhUb3RhbFBhZ2VzOiB0cnVlXG4gICAgICB9XG4gICAgKTtcbiAgICByZXR1cm4gZGF0YT8uZmlsdGVyKCh7IHR5cGUgfSkgPT4gdHlwZSA9PT0gQXBwbGljYXRpb25UeXBlLk1JQ1JPU0VSVklDRSk7XG4gIH1cblxuICBwcml2YXRlIGdldFByb3ZpZGVyc0Zyb21NYW5pZmVzdEV4dGVuc2lvbnMoXG4gICAgYXBwbGljYXRpb25zOiBJQXBwbGljYXRpb25bXSxcbiAgICBidWxrOiBib29sZWFuXG4gICk6IEV4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb25Qcm92aWRlcltdIHtcbiAgICByZXR1cm4gZmxhdE1hcChhcHBsaWNhdGlvbnMsIGFwcGxpY2F0aW9uID0+IHtcbiAgICAgIHJldHVybiBhcHBsaWNhdGlvbj8ubWFuaWZlc3Q/LmV4dGVuc2lvbnM/Lm1hcChleHRlbnNpb24gPT4ge1xuICAgICAgICByZXR1cm4geyAuLi5leHRlbnNpb24sIGNvbnRleHRQYXRoOiBhcHBsaWNhdGlvbi5jb250ZXh0UGF0aCB9IGFzIEFwcGxpY2F0aW9uRXh0ZW5zaW9uO1xuICAgICAgfSk7XG4gICAgfSkuZmlsdGVyKHByb3ZpZGVyID0+IHRoaXMuYXBwU3VwcG9ydGluZ0V4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb25Gb3JtKHByb3ZpZGVyLCBidWxrKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFByb3ZpZGVyc0Zyb21FeHRlbnNpb25zKFxuICAgIGFwcGxpY2F0aW9uczogSUFwcGxpY2F0aW9uW10sXG4gICAgYnVsazogYm9vbGVhblxuICApOiBFeHRlbnNpYmxlRGV2aWNlUmVnaXN0cmF0aW9uUHJvdmlkZXJbXSB7XG4gICAgcmV0dXJuIGZsYXRNYXAoYXBwbGljYXRpb25zLCBhcHBsaWNhdGlvbiA9PiB7XG4gICAgICByZXR1cm4gYXBwbGljYXRpb24uZXh0ZW5zaW9ucz8ubWFwKGV4dGVuc2lvbiA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZXh0ZW5zaW9uLFxuICAgICAgICAgIGNvbnRleHRQYXRoOiBhcHBsaWNhdGlvbi5jb250ZXh0UGF0aFxuICAgICAgICB9IGFzIEV4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb25Qcm92aWRlcjtcbiAgICAgIH0pO1xuICAgIH0pLmZpbHRlcihwcm92aWRlciA9PiB0aGlzLmFwcFN1cHBvcnRpbmdFeHRlbnNpYmxlRGV2aWNlUmVnaXN0cmF0aW9uRm9ybShwcm92aWRlciwgYnVsaykpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBTdXBwb3J0aW5nRXh0ZW5zaWJsZURldmljZVJlZ2lzdHJhdGlvbkZvcm0oXG4gICAgZXh0ZW5zaW9uOiBFeHRlbnNpYmxlRGV2aWNlUmVnaXN0cmF0aW9uUHJvdmlkZXIsXG4gICAgYnVsazogYm9vbGVhblxuICApOiBib29sZWFuIHtcbiAgICBpZiAoYnVsaykge1xuICAgICAgcmV0dXJuIGV4dGVuc2lvbj8udHlwZSA9PT0gJ2V4dGVuc2libGVCdWxrRGV2aWNlUmVnaXN0cmF0aW9uJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGV4dGVuc2lvbj8udHlwZSA9PT0gJ2V4dGVuc2libGVEZXZpY2VSZWdpc3RyYXRpb24nO1xuICAgIH1cbiAgfVxufVxuIl19