Skip to content
This repository has been archived by the owner on Nov 29, 2019. It is now read-only.

Commit

Permalink
Init
Browse files Browse the repository at this point in the history
  • Loading branch information
kehers committed Jun 10, 2017
0 parents commit 72d8224
Show file tree
Hide file tree
Showing 22 changed files with 2,300 additions and 0 deletions.
15 changes: 15 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
root = true

[*]
indent_style = space
indent_size = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
trim_trailing_whitespace = false

[*.{html,css}]
indent_size = 2
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
notes.txt
documentation.markdown
demo.js
node_modules/
env.js
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Under construction. Check back later.
77 changes: 77 additions & 0 deletions app.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
var express = require('express')
, Liquid = require('shopify-liquid')
, engine = Liquid()
, moment = require('moment')
, session = require('express-session')
, sessionStore = require('connect-mongo')(session)
, bodyParser = require('body-parser')
, flash = require('flash')
, compression = require('compression')
//, favicon = require('serve-favicon')

// Libs
, env = require('./env.js')
, dbo = require('./lib/db.js')
;

dbo.connect(function(err){

if (err) {
// todo: Notify!!!
return process.exit(0);
}

// Filters
engine.registerFilter('remove', function(v, arg){
var arr = [];
for (var k in v) {
if (k != arg)
arr.push([k, '=', v[k]].join(''));
}

return arr.join('&');
});

// Config
var app = express();
app.listen(3000);

// Middlewares
var sess = {
secret: 's1asfas53qedw',
maxAge: 3600000 * 24 * 365,
store: new sessionStore({
db: dbo.db(),
ttl: 3600000 * 24 * 365
}),
resave: false,
saveUninitialized: false
}
app.use(session(sess));

app.engine('liquid', engine.express());
app.set('view engine', 'liquid');
app.set('views', __dirname + '/public_html');
app.use(flash());
app.use(compression());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(express.static(__dirname + '/public_html'));
// Cache control
app.use(function (req, res, next) {
res.header("Cache-Control", "no-cache, no-store, must-revalidate");
/*var secured = ['dashboard', 'access', 'edit', 'budget'];
var req_acc = ['dashboard', 'edit', 'budget'];
if (req.session.account) {
for (var page of secured) {
if (req.url.indexOf(page) != -1) {
return res.redirect('/');
break;
}
}*/
next();
});

// Routes
require('./routes/app.js')(app);

});
18 changes: 18 additions & 0 deletions lib/db.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
var dbClient = require('mongodb').MongoClient
, ObjectID = require('mongodb').ObjectID
, db = null
;

module.exports = {
id: ObjectID,
db: function() {
return db;
},
connect: function(fn) {
// Use connect method to connect to the Server
dbClient.connect(process.env.DB_URL, function(err, thisDb) {
db = thisDb;
return fn(err);
});
}
}
21 changes: 21 additions & 0 deletions lib/utils.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
// Inject some variables into template variables
exports.render = function(req, _obj) {
var obj = {};
var msgObj;
while (msgObj = req.session.flash.shift()) {
obj[msgObj.type] = msgObj.message;
}

if (null == _obj || "object" != typeof _obj) return obj;
for (var attr in _obj) {
if (_obj.hasOwnProperty(attr)) obj[attr] = _obj[attr];
}

if (req.session.account) {
for (var attr in req.session.account) {
obj['acc_'+attr] = req.session.account[attr];
}
}

return obj;
};
29 changes: 29 additions & 0 deletions models/logs.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
var dbo = require('../lib/db.js')
, moment = require('moment')
;

exports.feed = function(fn) {
dbo.db().collection('logs').find({}, {
sort: {date: -1}
}).toArray(function(err, docs) {
if (err) {
console.log(err);
return fn('Internal Error');
}

fn(null, docs);
});
}

exports.users = function(fn) {
dbo.db().collection('users').find({}, {
sort: {last_seen: -1}
}).toArray(function(err, docs) {
if (err) {
console.log(err);
return fn('Internal Error');
}

fn(null, docs);
});
}
Loading

0 comments on commit 72d8224

Please sign in to comment.