@c8y/ngx-components
Version:
Angular modules for Cumulocity IoT applications
36 lines • 5.34 kB
JavaScript
import { FetchClient, UserService } from '@c8y/client';
import { Injectable } from '@angular/core';
import * as i0 from "@angular/core";
import * as i1 from "@c8y/client";
export class DeviceProvisionedCertificatesService {
constructor(userService, client) {
this.userService = userService;
this.client = client;
}
async getDeviceProvisionedCertificates(device) {
const deviceUserName = await this.getDeviceUserName(device);
// Avoid additional requests if the device does not have a user.
// This case does not really occur in real-life scenarios, but e.g. in cypress tests only
if (!deviceUserName) {
return undefined;
}
const { data } = await this.userService.detail(deviceUserName, { withCertificates: true });
return data.provisionedCertificates;
}
async getDeviceUserName(device) {
const method = 'GET';
const url = `/inventory/managedObjects/${device.id}/user`;
const res = await this.client.fetch(url, { method });
const data = await res.json();
if (res.status >= 400) {
throw new Error(data.message);
}
return data.userName;
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceProvisionedCertificatesService, deps: [{ token: i1.UserService }, { token: i1.FetchClient }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceProvisionedCertificatesService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceProvisionedCertificatesService, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i1.UserService }, { type: i1.FetchClient }] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGV2aWNlLXByb3Zpc2lvbmVkLWNlcnRpZmljYXRlcy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vZGV2aWNlLXByb3Zpc2lvbmVkLWNlcnRpZmljYXRlcy9kZXZpY2UtcHJvdmlzaW9uZWQtY2VydGlmaWNhdGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFdBQVcsRUFBa0IsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUkzQyxNQUFNLE9BQU8sb0NBQW9DO0lBQy9DLFlBQ1UsV0FBd0IsRUFDeEIsTUFBbUI7UUFEbkIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBYTtJQUMxQixDQUFDO0lBRUosS0FBSyxDQUFDLGdDQUFnQyxDQUNwQyxNQUFzQjtRQUV0QixNQUFNLGNBQWMsR0FBRyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUU1RCxnRUFBZ0U7UUFDaEUseUZBQXlGO1FBQ3pGLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBRUQsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMzRixPQUFPLElBQUksQ0FBQyx1QkFBdUIsQ0FBQztJQUN0QyxDQUFDO0lBRU8sS0FBSyxDQUFDLGlCQUFpQixDQUFDLE1BQU07UUFDcEMsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLE1BQU0sR0FBRyxHQUFHLDZCQUE2QixNQUFNLENBQUMsRUFBRSxPQUFPLENBQUM7UUFDMUQsTUFBTSxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sSUFBSSxHQUFHLE1BQU0sR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzlCLElBQUksR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLEVBQUUsQ0FBQztZQUN0QixNQUFNLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7K0dBOUJVLG9DQUFvQzttSEFBcEMsb0NBQW9DOzs0RkFBcEMsb0NBQW9DO2tCQURoRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmV0Y2hDbGllbnQsIElNYW5hZ2VkT2JqZWN0LCBVc2VyU2VydmljZSB9IGZyb20gJ0BjOHkvY2xpZW50JztcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFByb3Zpc2lvbmVkQ2VydGlmaWNhdGUgfSBmcm9tICcuL2RldmljZS10YWItcHJvdmlzaW9uZWQtY2VydGlmaWNhdGVzLmNvbXBvbmVudCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBEZXZpY2VQcm92aXNpb25lZENlcnRpZmljYXRlc1NlcnZpY2Uge1xuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGNsaWVudDogRmV0Y2hDbGllbnRcbiAgKSB7fVxuXG4gIGFzeW5jIGdldERldmljZVByb3Zpc2lvbmVkQ2VydGlmaWNhdGVzKFxuICAgIGRldmljZTogSU1hbmFnZWRPYmplY3RcbiAgKTogUHJvbWlzZTxQcm92aXNpb25lZENlcnRpZmljYXRlW10gfCB1bmRlZmluZWQ+IHtcbiAgICBjb25zdCBkZXZpY2VVc2VyTmFtZSA9IGF3YWl0IHRoaXMuZ2V0RGV2aWNlVXNlck5hbWUoZGV2aWNlKTtcblxuICAgIC8vIEF2b2lkIGFkZGl0aW9uYWwgcmVxdWVzdHMgaWYgdGhlIGRldmljZSBkb2VzIG5vdCBoYXZlIGEgdXNlci5cbiAgICAvLyBUaGlzIGNhc2UgZG9lcyBub3QgcmVhbGx5IG9jY3VyIGluIHJlYWwtbGlmZSBzY2VuYXJpb3MsIGJ1dCBlLmcuIGluIGN5cHJlc3MgdGVzdHMgb25seVxuICAgIGlmICghZGV2aWNlVXNlck5hbWUpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgY29uc3QgeyBkYXRhIH0gPSBhd2FpdCB0aGlzLnVzZXJTZXJ2aWNlLmRldGFpbChkZXZpY2VVc2VyTmFtZSwgeyB3aXRoQ2VydGlmaWNhdGVzOiB0cnVlIH0pO1xuICAgIHJldHVybiBkYXRhLnByb3Zpc2lvbmVkQ2VydGlmaWNhdGVzO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBnZXREZXZpY2VVc2VyTmFtZShkZXZpY2UpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIGNvbnN0IG1ldGhvZCA9ICdHRVQnO1xuICAgIGNvbnN0IHVybCA9IGAvaW52ZW50b3J5L21hbmFnZWRPYmplY3RzLyR7ZGV2aWNlLmlkfS91c2VyYDtcbiAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLmNsaWVudC5mZXRjaCh1cmwsIHsgbWV0aG9kIH0pO1xuICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZXMuanNvbigpO1xuICAgIGlmIChyZXMuc3RhdHVzID49IDQwMCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGRhdGEubWVzc2FnZSk7XG4gICAgfVxuICAgIHJldHVybiBkYXRhLnVzZXJOYW1lO1xuICB9XG59XG4iXX0=