ontimize-web-ngx
Version:
Ontimize Web framework using Angular 15
71 lines • 8.54 kB
JavaScript
import { Injectable, Injector } from '@angular/core';
import { AppConfig } from '../../config/app-config';
import { Util } from '../../util/util';
import { NameConvention } from '../name-convention/name-convention.service';
import * as i0 from "@angular/core";
export class OntimizeServiceResponseParser {
constructor(injector) {
this.injector = injector;
this.appConfig = this.injector.get(AppConfig);
this.nameConvention = this.injector.get(NameConvention);
}
parseSuccessfulResponse(resp, subscriber, service) {
if (resp && resp.isUnauthorized()) {
service.clientErrorFallback(401);
}
else if (resp && resp.isFailed()) {
subscriber.error(resp.message);
}
else if (resp && resp.isSuccessful()) {
resp.data = this.parseData(resp.data);
subscriber.next(resp);
}
else {
subscriber.error('Service unavailable');
}
}
parseData(data) {
if (Util.isArray(data)) {
data = data.map(element => {
return this.nameConvention.parseResultToNameConvention(element);
});
}
else if (Util.isObject(data)) {
return this.nameConvention.parseResultToNameConvention(data);
}
return data;
}
parseUnsuccessfulResponse(error, subscriber, service) {
if (error) {
switch (error.status) {
case 401:
case 403:
case 404:
case 405:
service.clientErrorFallback(error.status);
break;
case 500:
case 501:
case 502:
case 503:
case 504:
default:
subscriber.error(error);
service.serverErrorFallback(error.status);
break;
}
}
else {
subscriber.error(error);
}
}
}
OntimizeServiceResponseParser.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OntimizeServiceResponseParser, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable });
OntimizeServiceResponseParser.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OntimizeServiceResponseParser, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: OntimizeServiceResponseParser, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiby1zZXJ2aWNlLXJlc3BvbnNlLnBhcnNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29udGltaXplLXdlYi1uZ3gvc3JjL2xpYi9zZXJ2aWNlcy9wYXJzZXIvby1zZXJ2aWNlLXJlc3BvbnNlLnBhcnNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFcEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQzs7QUFNNUUsTUFBTSxPQUFPLDZCQUE2QjtJQUt4QyxZQUNZLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFFNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxJQUFPLEVBQUUsVUFBeUIsRUFBRSxPQUF1QjtRQUNqRixJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUU7WUFDakMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ2xDO2FBQU0sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFO1lBQ2xDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ2hDO2FBQU0sSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxFQUFFO1lBQ3RDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDdEMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN2QjthQUFNO1lBRUwsVUFBVSxDQUFDLEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUVELFNBQVMsQ0FBQyxJQUFTO1FBRWpCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUN0QixJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDeEIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxDQUFDO1NBQ0o7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDOUIsT0FBTyxJQUFJLENBQUMsY0FBYyxDQUFDLDJCQUEyQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlEO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQseUJBQXlCLENBQUMsS0FBd0IsRUFBRSxVQUF5QixFQUFFLE9BQXVCO1FBQ3BHLElBQUksS0FBSyxFQUFFO1lBQ1QsUUFBUSxLQUFLLENBQUMsTUFBTSxFQUFFO2dCQUNwQixLQUFLLEdBQUcsQ0FBQztnQkFDVCxLQUFLLEdBQUcsQ0FBQztnQkFDVCxLQUFLLEdBQUcsQ0FBQztnQkFDVCxLQUFLLEdBQUc7b0JBQ04sT0FBTyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDMUMsTUFBTTtnQkFDUixLQUFLLEdBQUcsQ0FBQztnQkFDVCxLQUFLLEdBQUcsQ0FBQztnQkFDVCxLQUFLLEdBQUcsQ0FBQztnQkFDVCxLQUFLLEdBQUcsQ0FBQztnQkFDVCxLQUFLLEdBQUcsQ0FBQztnQkFDVDtvQkFDRSxVQUFVLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUN4QixPQUFPLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO29CQUMxQyxNQUFNO2FBQ1Q7U0FDRjthQUFNO1lBQ0wsVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUN6QjtJQUNILENBQUM7OzJIQTdEVSw2QkFBNkI7K0hBQTdCLDZCQUE2QixjQUY1QixNQUFNOzRGQUVQLDZCQUE2QjtrQkFIekMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEluamVjdGFibGUsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpYmVyIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwcENvbmZpZyB9IGZyb20gJy4uLy4uL2NvbmZpZy9hcHAtY29uZmlnJztcbmltcG9ydCB7IFNlcnZpY2VSZXNwb25zZSB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvc2VydmljZS1yZXNwb25zZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVXRpbCB9IGZyb20gJy4uLy4uL3V0aWwvdXRpbCc7XG5pbXBvcnQgeyBCYXNlU2VydmljZSB9IGZyb20gJy4uL2Jhc2Utc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBOYW1lQ29udmVudGlvbiB9IGZyb20gJy4uL25hbWUtY29udmVudGlvbi9uYW1lLWNvbnZlbnRpb24uc2VydmljZSc7XG5cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgT250aW1pemVTZXJ2aWNlUmVzcG9uc2VQYXJzZXI8VCBleHRlbmRzIFNlcnZpY2VSZXNwb25zZT4ge1xuICBhcHBDb25maWc6IEFwcENvbmZpZztcbiAgbmFtZUNvbnZlbnRpb246IE5hbWVDb252ZW50aW9uO1xuXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGluamVjdG9yOiBJbmplY3RvclxuICApIHtcbiAgICB0aGlzLmFwcENvbmZpZyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFwcENvbmZpZyk7XG4gICAgdGhpcy5uYW1lQ29udmVudGlvbiA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5hbWVDb252ZW50aW9uKTtcbiAgfVxuXG4gIHBhcnNlU3VjY2Vzc2Z1bFJlc3BvbnNlKHJlc3A6IFQsIHN1YnNjcmliZXI6IFN1YnNjcmliZXI8VD4sIHNlcnZpY2U6IEJhc2VTZXJ2aWNlPFQ+KSB7XG4gICAgaWYgKHJlc3AgJiYgcmVzcC5pc1VuYXV0aG9yaXplZCgpKSB7XG4gICAgICBzZXJ2aWNlLmNsaWVudEVycm9yRmFsbGJhY2soNDAxKTtcbiAgICB9IGVsc2UgaWYgKHJlc3AgJiYgcmVzcC5pc0ZhaWxlZCgpKSB7XG4gICAgICBzdWJzY3JpYmVyLmVycm9yKHJlc3AubWVzc2FnZSk7XG4gICAgfSBlbHNlIGlmIChyZXNwICYmIHJlc3AuaXNTdWNjZXNzZnVsKCkpIHtcbiAgICAgIHJlc3AuZGF0YSA9IHRoaXMucGFyc2VEYXRhKHJlc3AuZGF0YSk7XG4gICAgICBzdWJzY3JpYmVyLm5leHQocmVzcCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFVua25vdyBzdGF0ZSAtPiBlcnJvclxuICAgICAgc3Vic2NyaWJlci5lcnJvcignU2VydmljZSB1bmF2YWlsYWJsZScpO1xuICAgIH1cbiAgfVxuXG4gIHBhcnNlRGF0YShkYXRhOiBhbnkpIHtcblxuICAgIGlmIChVdGlsLmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgIGRhdGEgPSBkYXRhLm1hcChlbGVtZW50ID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmFtZUNvbnZlbnRpb24ucGFyc2VSZXN1bHRUb05hbWVDb252ZW50aW9uKGVsZW1lbnQpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIGlmIChVdGlsLmlzT2JqZWN0KGRhdGEpKSB7XG4gICAgICByZXR1cm4gdGhpcy5uYW1lQ29udmVudGlvbi5wYXJzZVJlc3VsdFRvTmFtZUNvbnZlbnRpb24oZGF0YSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGRhdGE7XG4gIH1cblxuICBwYXJzZVVuc3VjY2Vzc2Z1bFJlc3BvbnNlKGVycm9yOiBIdHRwRXJyb3JSZXNwb25zZSwgc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxUPiwgc2VydmljZTogQmFzZVNlcnZpY2U8VD4pIHtcbiAgICBpZiAoZXJyb3IpIHtcbiAgICAgIHN3aXRjaCAoZXJyb3Iuc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgNDAxOlxuICAgICAgICBjYXNlIDQwMzpcbiAgICAgICAgY2FzZSA0MDQ6XG4gICAgICAgIGNhc2UgNDA1OlxuICAgICAgICAgIHNlcnZpY2UuY2xpZW50RXJyb3JGYWxsYmFjayhlcnJvci5zdGF0dXMpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlIDUwMDpcbiAgICAgICAgY2FzZSA1MDE6XG4gICAgICAgIGNhc2UgNTAyOlxuICAgICAgICBjYXNlIDUwMzpcbiAgICAgICAgY2FzZSA1MDQ6XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnJvcik7XG4gICAgICAgICAgc2VydmljZS5zZXJ2ZXJFcnJvckZhbGxiYWNrKGVycm9yLnN0YXR1cyk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHN1YnNjcmliZXIuZXJyb3IoZXJyb3IpO1xuICAgIH1cbiAgfVxuXG59XG4iXX0=