-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathdata.js
50 lines (43 loc) · 1.49 KB
/
data.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
// data manager - includes and merges all data.js files per website (primarily used for cruds)
// (c)copyright 2015 by Gerald Wodni <[email protected]>
"use strict";
var mysql = require("mysql");
var moment = require("moment");
var _ = require("underscore");
module.exports = function _data( k ) {
var websites = {};
var dateTimeFormat = 'YYYY-MM-DD HH:mm:ss';
function load( website ) {
var files = k.hierarchy.paths( website, "data.js" ).reverse();
var data = {
sql: {
dateTimeFormat: dateTimeFormat,
now: function() { return moment().format( dateTimeFormat ); },
nowUtc: function() { return moment().utc().format( dateTimeFormat ); }
}
};
for( var i = 0; i < files.length; i++ ) {
var file = require( "./" + files[i] );
_.extend( data, file.setup( {
rdb: k.rdb,
users: k.users,
crud: k.crud,
hierarchyData: data,
websiteDir: k.hierarchy.websiteDir( website ),
getDb: function() {
return k.db.get( website );
}
}) );
}
websites[ website ] = data;
}
function get( website ) {
if( !(website in websites ) )
throw new Error( "No Data found for website '" + website + "'" );
return websites[ website ];
}
return {
load: load,
get: get
}
}