/
data-filter-resolver.js
95 lines (87 loc) · 2.12 KB
/
data-filter-resolver.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
// 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 (/\//.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
};