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
JavaScript
"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;