ontimize-web-ngx
Version:
Ontimize Web framework using Angular 15
70 lines • 10.4 kB
JavaScript
import { Injectable } from '@angular/core';
import { BaseRequestArgument } from './base-request-argument.adapter';
import { Util } from '../../util/util';
import { FilterExpressionUtils } from '../../util/filter-expression.utils';
import * as i0 from "@angular/core";
export class JSONAPIRequestArgumentsAdapter extends BaseRequestArgument {
parseQueryParameters(args) {
if (!Util.isDefined(args))
return [];
let fields = {};
fields[args.entity] = args.columns.toString();
let queryargs = {
fields: fields
};
if (args.pageable) {
queryargs.page = {};
queryargs.page['offset'] = args.ovrrArgs.offset;
queryargs.page['limit'] = args.ovrrArgs.length;
}
if (!Util.isArrayEmpty(args.sort)) {
queryargs.sort = args.sort.map((sortElement, idx, array) => {
return sortElement.ascendent ? sortElement.columnName : ('-' + sortElement.columnName);
}).join(',');
}
if (Util.isDefined(args.filter)) {
queryargs.filter = {};
Object.keys(args.filter).forEach(filter => {
queryargs.filter[filter] = args.filter[filter];
});
}
return [queryargs];
}
deCompose(expresion, columns, kv) {
const basicExpresion = expresion[FilterExpressionUtils.BASIC_EXPRESSION_KEY];
const filterExpresion = expresion[FilterExpressionUtils.FILTER_EXPRESSION_KEY];
let decomposedExpresion = kv;
if (Util.isDefined(basicExpresion)) {
decomposedExpresion = this.deComposeExpresion(basicExpresion, columns, kv);
}
if (Util.isDefined(filterExpresion)) {
decomposedExpresion = this.deComposeExpresion(filterExpresion, columns, decomposedExpresion);
}
return decomposedExpresion;
}
deComposeExpresion(expresion, columns, kv) {
if (FilterExpressionUtils.instanceofExpression(expresion)) {
if (typeof expresion.lop !== 'string') {
kv = this.deComposeExpresion(expresion.lop, columns, kv);
return this.deComposeExpresion(expresion.rop, columns, kv);
}
else {
return kv;
}
}
}
getIdFromFilter(filter) {
if (Util.isDefined(filter)) {
return Object.values(filter)[0];
}
else {
return null;
}
}
}
JSONAPIRequestArgumentsAdapter.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: JSONAPIRequestArgumentsAdapter, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
JSONAPIRequestArgumentsAdapter.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: JSONAPIRequestArgumentsAdapter });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: JSONAPIRequestArgumentsAdapter, decorators: [{
type: Injectable
}] });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNvbmFwaS1yZXF1ZXN0LWFyZ3VtZW50cy5hZGFwdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb250aW1pemUtd2ViLW5neC9zcmMvbGliL3NlcnZpY2VzL3JlcXVlc3QtYWRhcHRlci9qc29uYXBpLXJlcXVlc3QtYXJndW1lbnRzLmFkYXB0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUd0RSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7O0FBRzNFLE1BQU0sT0FBTyw4QkFBK0IsU0FBUSxtQkFBbUI7SUFFckUsb0JBQW9CLENBQUMsSUFBa0I7UUFFckMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDckMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWhCLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUU5QyxJQUFJLFNBQVMsR0FBMEI7WUFDckMsTUFBTSxFQUFFLE1BQU07U0FDZixDQUFDO1FBRUYsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLFNBQVMsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ3BCLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDaEQsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztTQUNoRDtRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUVqQyxTQUFTLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBcUIsRUFBRSxHQUFXLEVBQUUsS0FBaUIsRUFBRSxFQUFFO2dCQUN2RixPQUFPLFdBQVcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN6RixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDZDtRQUVELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0IsU0FBUyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7WUFDdEIsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUN4QyxTQUFTLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDakQsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQixDQUFDO0lBR0QsU0FBUyxDQUFDLFNBQVMsRUFBRSxPQUFzQixFQUFFLEVBQVU7UUFDckQsTUFBTSxjQUFjLEdBQWUsU0FBUyxDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDekYsTUFBTSxlQUFlLEdBQWUsU0FBUyxDQUFDLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFFM0YsSUFBSSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxFQUFFO1lBQ2xDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzVFO1FBR0QsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLGVBQWUsQ0FBQyxFQUFFO1lBQ25DLG1CQUFtQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixDQUFDLENBQUM7U0FDOUY7UUFDRCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxTQUFjLEVBQUUsT0FBc0IsRUFBRSxFQUFVO1FBQ25FLElBQUkscUJBQXFCLENBQUMsb0JBQW9CLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDekQsSUFBSSxPQUFPLFNBQVMsQ0FBQyxHQUFHLEtBQUssUUFBUSxFQUFFO2dCQUNyQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUN6RCxPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQzthQUM1RDtpQkFBTTtnQkFDTCxPQUFPLEVBQUUsQ0FBQzthQUNYO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQVc7UUFDekIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQzFCLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQVcsQ0FBQztTQUMzQzthQUFNO1lBQ0wsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7OzRIQXRFVSw4QkFBOEI7Z0lBQTlCLDhCQUE4Qjs0RkFBOUIsOEJBQThCO2tCQUQxQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU1FMT3JkZXIgfSBmcm9tICcuLi8uLi90eXBlcy9zcWwtb3JkZXIudHlwZSc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEV4cHJlc3Npb24gfSBmcm9tICcuLi8uLi90eXBlcy9leHByZXNzaW9uLnR5cGUnO1xuaW1wb3J0IHsgSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyIH0gZnJvbSAnLi4vLi4vdHlwZXMvanNvbi1xdWVyeS1wYXJhbWV0ZXIudHlwZSc7XG5pbXBvcnQgeyBCYXNlUmVxdWVzdEFyZ3VtZW50IH0gZnJvbSAnLi9iYXNlLXJlcXVlc3QtYXJndW1lbnQuYWRhcHRlcic7XG5pbXBvcnQgeyBJQmFzZVJlcXVlc3RBcmd1bWVudCB9IGZyb20gJy4vYmFzZS1yZXF1ZXN0LWFyZ3VtZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBPUXVlcnlQYXJhbXMgfSBmcm9tICcuLi8uLi90eXBlcy9xdWVyeS1wYXJhbXMudHlwZSc7XG5pbXBvcnQgeyBVdGlsIH0gZnJvbSAnLi4vLi4vdXRpbC91dGlsJztcbmltcG9ydCB7IEZpbHRlckV4cHJlc3Npb25VdGlscyB9IGZyb20gJy4uLy4uL3V0aWwvZmlsdGVyLWV4cHJlc3Npb24udXRpbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSlNPTkFQSVJlcXVlc3RBcmd1bWVudHNBZGFwdGVyIGV4dGVuZHMgQmFzZVJlcXVlc3RBcmd1bWVudCBpbXBsZW1lbnRzIElCYXNlUmVxdWVzdEFyZ3VtZW50IHtcblxuICBwYXJzZVF1ZXJ5UGFyYW1ldGVycyhhcmdzOiBPUXVlcnlQYXJhbXMpOiBKU09OQVBJUXVlcnlQYXJhbWV0ZXJbXSB7XG5cbiAgICBpZiAoIVV0aWwuaXNEZWZpbmVkKGFyZ3MpKSByZXR1cm4gW107XG4gICAgbGV0IGZpZWxkcyA9IHt9O1xuXG4gICAgZmllbGRzW2FyZ3MuZW50aXR5XSA9IGFyZ3MuY29sdW1ucy50b1N0cmluZygpO1xuXG4gICAgbGV0IHF1ZXJ5YXJnczogSlNPTkFQSVF1ZXJ5UGFyYW1ldGVyID0ge1xuICAgICAgZmllbGRzOiBmaWVsZHNcbiAgICB9O1xuXG4gICAgaWYgKGFyZ3MucGFnZWFibGUpIHtcbiAgICAgIHF1ZXJ5YXJncy5wYWdlID0ge307XG4gICAgICBxdWVyeWFyZ3MucGFnZVsnb2Zmc2V0J10gPSBhcmdzLm92cnJBcmdzLm9mZnNldDtcbiAgICAgIHF1ZXJ5YXJncy5wYWdlWydsaW1pdCddID0gYXJncy5vdnJyQXJncy5sZW5ndGg7XG4gICAgfVxuXG4gICAgaWYgKCFVdGlsLmlzQXJyYXlFbXB0eShhcmdzLnNvcnQpKSB7XG5cbiAgICAgIHF1ZXJ5YXJncy5zb3J0ID0gYXJncy5zb3J0Lm1hcCgoc29ydEVsZW1lbnQ6IFNRTE9yZGVyLCBpZHg6IG51bWJlciwgYXJyYXk6IFNRTE9yZGVyW10pID0+IHtcbiAgICAgICAgcmV0dXJuIHNvcnRFbGVtZW50LmFzY2VuZGVudCA/IHNvcnRFbGVtZW50LmNvbHVtbk5hbWUgOiAoJy0nICsgc29ydEVsZW1lbnQuY29sdW1uTmFtZSk7XG4gICAgICB9KS5qb2luKCcsJyk7XG4gICAgfVxuXG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGFyZ3MuZmlsdGVyKSkge1xuICAgICAgcXVlcnlhcmdzLmZpbHRlciA9IHt9O1xuICAgICAgT2JqZWN0LmtleXMoYXJncy5maWx0ZXIpLmZvckVhY2goZmlsdGVyID0+IHtcbiAgICAgICAgcXVlcnlhcmdzLmZpbHRlcltmaWx0ZXJdID0gYXJncy5maWx0ZXJbZmlsdGVyXTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBbcXVlcnlhcmdzXTtcbiAgfVxuXG5cbiAgZGVDb21wb3NlKGV4cHJlc2lvbiwgY29sdW1uczogQXJyYXk8c3RyaW5nPiwga3Y6IE9iamVjdCkge1xuICAgIGNvbnN0IGJhc2ljRXhwcmVzaW9uOiBFeHByZXNzaW9uID0gZXhwcmVzaW9uW0ZpbHRlckV4cHJlc3Npb25VdGlscy5CQVNJQ19FWFBSRVNTSU9OX0tFWV07XG4gICAgY29uc3QgZmlsdGVyRXhwcmVzaW9uOiBFeHByZXNzaW9uID0gZXhwcmVzaW9uW0ZpbHRlckV4cHJlc3Npb25VdGlscy5GSUxURVJfRVhQUkVTU0lPTl9LRVldO1xuXG4gICAgbGV0IGRlY29tcG9zZWRFeHByZXNpb24gPSBrdjtcbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoYmFzaWNFeHByZXNpb24pKSB7XG4gICAgICBkZWNvbXBvc2VkRXhwcmVzaW9uID0gdGhpcy5kZUNvbXBvc2VFeHByZXNpb24oYmFzaWNFeHByZXNpb24sIGNvbHVtbnMsIGt2KTtcbiAgICB9XG5cbiAgICAvKiBSZXF1aXJlZCBmb3IgY29sdW1uIGZpbHRlcmluZyB3aGljaCBpcyBjdXJyZW50bHkgZGlzYWJsZWQgKi9cbiAgICBpZiAoVXRpbC5pc0RlZmluZWQoZmlsdGVyRXhwcmVzaW9uKSkge1xuICAgICAgZGVjb21wb3NlZEV4cHJlc2lvbiA9IHRoaXMuZGVDb21wb3NlRXhwcmVzaW9uKGZpbHRlckV4cHJlc2lvbiwgY29sdW1ucywgZGVjb21wb3NlZEV4cHJlc2lvbik7XG4gICAgfVxuICAgIHJldHVybiBkZWNvbXBvc2VkRXhwcmVzaW9uO1xuICB9XG5cbiAgZGVDb21wb3NlRXhwcmVzaW9uKGV4cHJlc2lvbjogYW55LCBjb2x1bW5zOiBBcnJheTxzdHJpbmc+LCBrdjogT2JqZWN0KSB7XG4gICAgaWYgKEZpbHRlckV4cHJlc3Npb25VdGlscy5pbnN0YW5jZW9mRXhwcmVzc2lvbihleHByZXNpb24pKSB7XG4gICAgICBpZiAodHlwZW9mIGV4cHJlc2lvbi5sb3AgIT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGt2ID0gdGhpcy5kZUNvbXBvc2VFeHByZXNpb24oZXhwcmVzaW9uLmxvcCwgY29sdW1ucywga3YpO1xuICAgICAgICByZXR1cm4gdGhpcy5kZUNvbXBvc2VFeHByZXNpb24oZXhwcmVzaW9uLnJvcCwgY29sdW1ucywga3YpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGt2O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldElkRnJvbUZpbHRlcihmaWx0ZXI6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKFV0aWwuaXNEZWZpbmVkKGZpbHRlcikpIHtcbiAgICAgIHJldHVybiBPYmplY3QudmFsdWVzKGZpbHRlcilbMF0gYXMgc3RyaW5nO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cblxuXG59XG4iXX0=