@themost/data
Version:
MOST Web Framework Codename Blueshift - Data module
99 lines (90 loc) • 2.25 kB
JavaScript
// MOST Web Framework 2.0 Codename Blueshift BSD-3-Clause license Copyright (c) 2017-2022, THEMOST LP All rights reserved
/*eslint no-var: "off"*/
// noinspection ES6ConvertVarToLetConst
var {FunctionContext} = require('./functions');
/**
* @module @themost/data/data-filter-resolver
* @ignore
*/
/**
* @ignore
* @class
* @abstract
* @constructor
* @augments DataModel
*/
function DataFilterResolver() {
//
}
DataFilterResolver.prototype.resolveMember = function(member, callback) {
if (typeof member !== 'string') {
return callback(null, member);
}
if (/\//.test(member)) {
var arr = member.split('/');
callback(null, arr.slice(arr.length-2).join('.'));
}
else {
callback(null, this.viewAdapter.concat('.', member))
}
};
DataFilterResolver.prototype.resolveMethod = function(name, args, callback) {
callback = callback || function() { };
if (typeof DataFilterResolver.prototype[name] === 'function') {
var a = args || [];
a.push(callback);
try {
return DataFilterResolver.prototype[name].apply(this, a);
}
catch(e) {
return callback(e);
}
}
callback();
};
/**
* @param {Function} callback
*/
DataFilterResolver.prototype.me = function(callback) {
var fx = new FunctionContext(this.context, this);
fx.user().then(function(value) {
callback(null, value)
}).catch(function(err) {
callback(err);
});
};
/**
* @param {Function} callback
*/
DataFilterResolver.prototype.now = function(callback) {
callback(null, new Date());
};
/**
* @param {Function} callback
*/
DataFilterResolver.prototype.today = function(callback) {
var res = new Date();
res.setHours(0,0,0,0);
callback(null, res);
};
/**
* @param {Function} callback
*/
DataFilterResolver.prototype.lang = function(callback) {
let culture = this.context.culture();
if (culture) {
return callback(null, culture.substr(0,2));
}
else {
return callback(null, 'en');
}
};
/**
* @param {Function} callback
*/
DataFilterResolver.prototype.user = function(callback) {
return this.me(callback);
};
module.exports = {
DataFilterResolver
};