@iotize/ionic
Version:
Iotize specific building blocks on top of @ionic/angular.
48 lines • 6.42 kB
JavaScript
import { Pipe } from '@angular/core';
import { isCodeError } from '@iotize/common/error';
import { TapError, TapResponseStatusError } from '@iotize/tap';
import { ResultCode } from '@iotize/tap/client/api';
import { tapResponseStatusToString } from '@iotize/tap/client/impl';
import * as i0 from "@angular/core";
export class TapRequestErrorToStringPipe {
transform(value, action = 'read') {
if (!value) {
return undefined;
}
return userFriendlyError(value, action).message;
}
/** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TapRequestErrorToStringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
/** @nocollapse */ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: TapRequestErrorToStringPipe, name: "tapRequestErrorToString" });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TapRequestErrorToStringPipe, decorators: [{
type: Pipe,
args: [{
name: 'tapRequestErrorToString',
}]
}] });
function userFriendlyError(error, action) {
if (isCodeError(TapError.Code.ExecuteRequestError, error)) {
error = error.cause || error;
}
if (isCodeError(TapResponseStatusError.Code.ResponseStatusError, error)) {
const tapResponseStatusError = error;
const statusCode = tapResponseStatusError.response.status;
let message;
switch (statusCode) {
case ResultCode.UNAUTHORIZED:
message = `You are not authorized to ${action} this value. Try to login first.`;
break;
case ResultCode.RESOURCE_LOCKED:
message = `This value is ${action} protected`;
break;
case ResultCode.NOT_IMPLEMENTED:
message = `This configuration is not available with your current firmware version or Tap model`;
break;
default:
message = tapResponseStatusToString(statusCode);
}
error = new Error(message);
}
return error;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFwLXJlcXVlc3QtZXJyb3ItdG8tc3RyaW5nLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pb3RpemUtaW9uaWMvY29uZmlnL3NyYy9saWIvdGFwLXJlcXVlc3QtZXJyb3ItdG8tc3RyaW5nLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3BELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQUtwRSxNQUFNLE9BQU8sMkJBQTJCO0lBQ3RDLFNBQVMsQ0FDUCxLQUFZLEVBQ1osU0FBMkIsTUFBTTtRQUVqQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxPQUFPLFNBQVMsQ0FBQztRQUNuQixDQUFDO1FBQ0QsT0FBTyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDO0lBQ2xELENBQUM7MkhBVFUsMkJBQTJCO3lIQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBSHZDLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLHlCQUF5QjtpQkFDaEM7O0FBYUQsU0FBUyxpQkFBaUIsQ0FBQyxLQUFZLEVBQUUsTUFBd0I7SUFDL0QsSUFBSSxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQzFELEtBQUssR0FBSSxLQUFrQixDQUFDLEtBQUssSUFBSSxLQUFLLENBQUM7SUFDN0MsQ0FBQztJQUNELElBQUksV0FBVyxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO1FBQ3hFLE1BQU0sc0JBQXNCLEdBQUcsS0FBK0IsQ0FBQztRQUMvRCxNQUFNLFVBQVUsR0FBRyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO1FBQzFELElBQUksT0FBZSxDQUFDO1FBQ3BCLFFBQVEsVUFBVSxFQUFFLENBQUM7WUFDbkIsS0FBSyxVQUFVLENBQUMsWUFBWTtnQkFDMUIsT0FBTyxHQUFHLDZCQUE2QixNQUFNLGtDQUFrQyxDQUFDO2dCQUNoRixNQUFNO1lBQ1IsS0FBSyxVQUFVLENBQUMsZUFBZTtnQkFDN0IsT0FBTyxHQUFHLGlCQUFpQixNQUFNLFlBQVksQ0FBQztnQkFDOUMsTUFBTTtZQUNSLEtBQUssVUFBVSxDQUFDLGVBQWU7Z0JBQzdCLE9BQU8sR0FBRyxxRkFBcUYsQ0FBQztnQkFDaEcsTUFBTTtZQUNSO2dCQUNFLE9BQU8sR0FBRyx5QkFBeUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRCxDQUFDO1FBQ0QsS0FBSyxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc0NvZGVFcnJvciB9IGZyb20gJ0Bpb3RpemUvY29tbW9uL2Vycm9yJztcbmltcG9ydCB7IFRhcEVycm9yLCBUYXBSZXNwb25zZVN0YXR1c0Vycm9yIH0gZnJvbSAnQGlvdGl6ZS90YXAnO1xuaW1wb3J0IHsgUmVzdWx0Q29kZSB9IGZyb20gJ0Bpb3RpemUvdGFwL2NsaWVudC9hcGknO1xuaW1wb3J0IHsgdGFwUmVzcG9uc2VTdGF0dXNUb1N0cmluZyB9IGZyb20gJ0Bpb3RpemUvdGFwL2NsaWVudC9pbXBsJztcblxuQFBpcGUoe1xuICBuYW1lOiAndGFwUmVxdWVzdEVycm9yVG9TdHJpbmcnLFxufSlcbmV4cG9ydCBjbGFzcyBUYXBSZXF1ZXN0RXJyb3JUb1N0cmluZ1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBFcnJvcixcbiAgICBhY3Rpb246ICdyZWFkJyB8ICd3cml0ZScgPSAncmVhZCdcbiAgKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgICByZXR1cm4gdXNlckZyaWVuZGx5RXJyb3IodmFsdWUsIGFjdGlvbikubWVzc2FnZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VyRnJpZW5kbHlFcnJvcihlcnJvcjogRXJyb3IsIGFjdGlvbjogJ3JlYWQnIHwgJ3dyaXRlJykge1xuICBpZiAoaXNDb2RlRXJyb3IoVGFwRXJyb3IuQ29kZS5FeGVjdXRlUmVxdWVzdEVycm9yLCBlcnJvcikpIHtcbiAgICBlcnJvciA9IChlcnJvciBhcyBUYXBFcnJvcikuY2F1c2UgfHwgZXJyb3I7XG4gIH1cbiAgaWYgKGlzQ29kZUVycm9yKFRhcFJlc3BvbnNlU3RhdHVzRXJyb3IuQ29kZS5SZXNwb25zZVN0YXR1c0Vycm9yLCBlcnJvcikpIHtcbiAgICBjb25zdCB0YXBSZXNwb25zZVN0YXR1c0Vycm9yID0gZXJyb3IgYXMgVGFwUmVzcG9uc2VTdGF0dXNFcnJvcjtcbiAgICBjb25zdCBzdGF0dXNDb2RlID0gdGFwUmVzcG9uc2VTdGF0dXNFcnJvci5yZXNwb25zZS5zdGF0dXM7XG4gICAgbGV0IG1lc3NhZ2U6IHN0cmluZztcbiAgICBzd2l0Y2ggKHN0YXR1c0NvZGUpIHtcbiAgICAgIGNhc2UgUmVzdWx0Q29kZS5VTkFVVEhPUklaRUQ6XG4gICAgICAgIG1lc3NhZ2UgPSBgWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byAke2FjdGlvbn0gdGhpcyB2YWx1ZS4gVHJ5IHRvIGxvZ2luIGZpcnN0LmA7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBSZXN1bHRDb2RlLlJFU09VUkNFX0xPQ0tFRDpcbiAgICAgICAgbWVzc2FnZSA9IGBUaGlzIHZhbHVlIGlzICR7YWN0aW9ufSBwcm90ZWN0ZWRgO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgUmVzdWx0Q29kZS5OT1RfSU1QTEVNRU5URUQ6XG4gICAgICAgIG1lc3NhZ2UgPSBgVGhpcyBjb25maWd1cmF0aW9uIGlzIG5vdCBhdmFpbGFibGUgd2l0aCB5b3VyIGN1cnJlbnQgZmlybXdhcmUgdmVyc2lvbiBvciBUYXAgbW9kZWxgO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIG1lc3NhZ2UgPSB0YXBSZXNwb25zZVN0YXR1c1RvU3RyaW5nKHN0YXR1c0NvZGUpO1xuICAgIH1cbiAgICBlcnJvciA9IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgfVxuICByZXR1cm4gZXJyb3I7XG59XG4iXX0=