@dolittle/sdk.tenancy
Version:
Dolittle is a decentralized, distributed, event-driven microservice platform built to harness the power of events.
54 lines • 4.63 kB
JavaScript
;
// Copyright (c) Dolittle. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
Object.defineProperty(exports, "__esModule", { value: true });
exports.Tenants = void 0;
const sdk_execution_1 = require("@dolittle/sdk.execution");
const sdk_protobuf_1 = require("@dolittle/sdk.protobuf");
const sdk_resilience_1 = require("@dolittle/sdk.resilience");
const sdk_services_1 = require("@dolittle/sdk.services");
const Tenants_pb_1 = require("@dolittle/contracts/Runtime/Tenancy/Tenants_pb");
const FailedToGetAllTenants_1 = require("../FailedToGetAllTenants");
const ITenants_1 = require("../ITenants");
const Tenant_1 = require("../Tenant");
/**
* Represents a client for Tenants and an implementation of {@link ITenants} that knows how to register Event Types with the Runtime.
*/
class Tenants extends ITenants_1.ITenants {
/**
* Initializes an instance of the {@link Tenants} class.
* @param {TenantsClient} _client - The event types client.
* @param {ExecutionContext} _executionContext - The execution context.
* @param {Logger} _logger - The logger.
*/
constructor(_client, _executionContext, _logger) {
super();
this._client = _client;
this._executionContext = _executionContext;
this._logger = _logger;
}
/** @inheritdoc */
async getAll(cancellation = sdk_resilience_1.Cancellation.default) {
this._logger.debug('Getting all tenants');
try {
const request = new Tenants_pb_1.GetAllRequest();
request.setCallcontext(sdk_protobuf_1.ExecutionContexts.toCallContext(this._executionContext));
const response = await (0, sdk_services_1.reactiveUnary)(this._client, this._client.getAll, request, cancellation).toPromise();
if (!response.hasFailure()) {
return response.getTenantsList().map(Tenants.createTenant);
}
const failure = sdk_protobuf_1.Failures.toSDK(response.getFailure());
this._logger.warn(`An error occurred while getting all tenants because ${failure.reason}. Failure Id '${failure.id}'`);
throw new FailedToGetAllTenants_1.FailedToGetAllTenants(failure.reason.value);
}
catch (error) {
this._logger.warn(`An error occurred while getting all tenants because ${error}.`);
throw error;
}
}
static createTenant(tenant) {
return new Tenant_1.Tenant(sdk_execution_1.TenantId.from(sdk_protobuf_1.Guids.toSDK(tenant.getId())));
}
}
exports.Tenants = Tenants;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVuYW50cy5qcyIsInNvdXJjZVJvb3QiOiIuLi8iLCJzb3VyY2VzIjpbIkludGVybmFsL1RlbmFudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLCtDQUErQztBQUMvQyxxR0FBcUc7OztBQUlyRywyREFBcUU7QUFDckUseURBQTRFO0FBQzVFLDZEQUF3RDtBQUN4RCx5REFBdUQ7QUFHdkQsK0VBQW1HO0FBRW5HLG9FQUFpRTtBQUNqRSwwQ0FBdUM7QUFDdkMsc0NBQW1DO0FBRW5DOztHQUVHO0FBQ0gsTUFBYSxPQUFRLFNBQVEsbUJBQVE7SUFDakM7Ozs7O09BS0c7SUFDSCxZQUNxQixPQUFzQixFQUM5QixpQkFBbUMsRUFDM0IsT0FBZTtRQUVoQyxLQUFLLEVBQUUsQ0FBQztRQUpTLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUMzQixZQUFPLEdBQVAsT0FBTyxDQUFRO0lBR3BDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsS0FBSyxDQUFDLE1BQU0sQ0FBQyxlQUE2Qiw2QkFBWSxDQUFDLE9BQU87UUFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUMxQyxJQUFJO1lBQ0EsTUFBTSxPQUFPLEdBQUcsSUFBSSwwQkFBYSxFQUFFLENBQUM7WUFDcEMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxnQ0FBaUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztZQUVoRixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUEsNEJBQWEsRUFBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUUzRyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxFQUFFO2dCQUN4QixPQUFPLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQzlEO1lBRUQsTUFBTSxPQUFPLEdBQUcsdUJBQVEsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRyxDQUFDLENBQUM7WUFDdkQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsdURBQXVELE9BQU8sQ0FBQyxNQUFNLGlCQUFpQixPQUFPLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN2SCxNQUFNLElBQUksNkNBQXFCLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6RDtRQUFDLE9BQU8sS0FBSyxFQUFFO1lBQ1osSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsdURBQXVELEtBQUssR0FBRyxDQUFDLENBQUM7WUFDbkYsTUFBTSxLQUFLLENBQUM7U0FDZjtJQUNMLENBQUM7SUFFTyxNQUFNLENBQUMsWUFBWSxDQUFDLE1BQWdCO1FBQ3hDLE9BQU8sSUFBSSxlQUFNLENBQUMsd0JBQVEsQ0FBQyxJQUFJLENBQUMsb0JBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7Q0FDSjtBQXhDRCwwQkF3Q0MifQ==