UNPKG

baasic-sdk-javascript

Version:

JavaScript SDK provides core functionality for building web and mobile applications on [Baasic](http://www.baasic.com/).

136 lines (135 loc) 5.07 kB
"use strict"; /** * @module modelMapper * @description This service is used to perform low level model or option transformations before they are sent to the Baasic back-end. **/ Object.defineProperty(exports, "__esModule", { value: true }); var _1 = require("./"); var ModelMapper = /** @class */ (function () { function ModelMapper() { this.idPropertyName = 'id'; this.modelPropertyName = 'model'; this.utility = new _1.Utility(); } ModelMapper.prototype.FindParams = function (options) { var object = {}; if (this.utility.isObject(options)) { this.utility.extend(object, options); if (options.orderBy && options.orderDirection) { var orderByParams = options.orderBy.split(','); var orderDirectionParams_1 = options.orderDirection.split(','); if (orderByParams.length === orderDirectionParams_1.length) { object.sort = orderByParams.map(function (item, index) { return item + "|" + orderDirectionParams_1[index]; }).join(', '); } } if (options.hasOwnProperty('search')) { object.searchQuery = options.search; } if (options.hasOwnProperty('pageNumber')) { object.page = options.pageNumber; } if (options.hasOwnProperty('pageSize')) { object.rpp = options.pageSize; } } else { object.searchQuery = options; } return object; }; ModelMapper.prototype.KeyParams = function (id, options, propName) { var object = {}; if (this.utility.isObject(id)) { this.utility.extend(object, id); } else { if (propName !== undefined) { object[propName] = id; } else { object[this.idPropertyName] = id; } } if (options !== undefined && this.utility.isObject(options)) { this.utility.extend(object, options); } return object; }; ModelMapper.prototype.ModelParams = function (data) { var object = {}; if (data && data.hasOwnProperty(this.modelPropertyName)) { this.utility.extend(object, data); } else { object[this.modelPropertyName] = data; } return object; }; /** * Parses Baasic Api pagination, sorting and search parameters. * @param options query resources options object * @method * @example modelMapper.findParams({ pageNumber:1, pageSize:10 }); **/ ModelMapper.prototype.findParams = function (options) { return this.FindParams(options); }; /** * Parses specified key parameters; initial object can be expanded with additional parameters. * @param id Resources unique identifier * @param options query resources options object * @param propName property name * @method * @example modelMapper.getParams(('<value>', {additionalOptions: '<option>'},'<property-name>')); **/ ModelMapper.prototype.getParams = function (id, options, propName) { return this.KeyParams(id, options, propName); }; /** * Performs create resource transforms on an object so that it can be safely expanded with additional properties. * @param data data object * @method * @example modelMapper.createParams({}); **/ ModelMapper.prototype.createParams = function (data) { return this.ModelParams(data); }; /** * Performs update resource transforms on transforms an object so that it can be safely expanded with additional properties. * @param data data object * @method * @example modelMapper.updateParams({}); **/ ModelMapper.prototype.updateParams = function (data) { return this.ModelParams(data); }; /** * Performs remove resource transforms on transforms an object so that it can be safely expanded with additional properties. * @param data data object * @method * @example modelMapper.removeParams({}); **/ ModelMapper.prototype.removeParams = function (data) { return this.ModelParams(data); }; /** * Performs remove resource transforms on transforms an object so that it can be safely expanded with additional properties. * @param data data object * @method * @example modelMapper.batchRemoveParams({}); **/ ModelMapper.prototype.batchRemoveParams = function (data) { var _this = this; var items = []; data.forEach(function (item) { if (_this.utility.isObject(item)) { items.push(item[_this.idPropertyName]); } }); return items; }; return ModelMapper; }()); exports.ModelMapper = ModelMapper;