diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..bf7525f --- /dev/null +++ b/.gitignore @@ -0,0 +1,41 @@ +# Logs +logs +*.log +npm-debug.log* + +# Runtime data +pids +*.pid +*.seed +*.pid.lock + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules +jspm_packages + +# Optional npm cache directory +.npm + +# Optional eslint cache +.eslintcache + +# Optional REPL history +.node_repl_history diff --git a/README.md b/README.md index fbdcfd1..76ae559 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,5 @@ # openworktime time traking web app for work projects [frontend: angular + materializecss. backend: nodejs+express+mongodb] + + +![Alt text](https://raw.githubusercontent.com/idoctnef/openworktime/master/screenshot2.png "developing in progress") diff --git a/config.js b/config.js new file mode 100644 index 0000000..e83b101 --- /dev/null +++ b/config.js @@ -0,0 +1,9 @@ +module.exports = { + + /*'secret': process.env.SECRET, + 'database': process.env.MONGO_DSN,*/ + 'secret': 'secretfortoken', + 'database': 'mongodb://localhost/comunalcar', + "port" : process.env.PORT || 3000 + +}; diff --git a/controllers/travelController.js b/controllers/travelController.js new file mode 100644 index 0000000..1baaebb --- /dev/null +++ b/controllers/travelController.js @@ -0,0 +1,102 @@ +//File: controllers/travelController.js +var mongoose = require('mongoose'); +var travelModel = mongoose.model('travelModel'); + +var userModel = mongoose.model('userModel'); + +//GET +exports.findAllTravels = function(req, res) { + + travelModel.find(function(err, travels) { + if(err) res.send(500, err.message); + + res.status(200).jsonp(travels); + }); + + +}; + +//GET +exports.findById = function(req, res) { + travelModel.findById(req.params.id, function(err, travel) { + if(err) return res.send(500, err.message); + + console.log('GET /travel/' + req.params.id); + res.status(200).jsonp(travel); + }); +}; + +exports.findAllTravelsFromUsername = function(req, res) { + travelModel.find({ + owner: req.params.username + }, function(err, travels) { + + if (err) throw err; + + if (!travels) { + res.json({ success: false, message: 'no travels for user' }); + } else if (travels) { + console.log(travels); + // return the information including token as JSON + res.jsonp(travels); + + + } + + }); +}; + +exports.addTravel = function(req, res) { + console.log('POST new travel, title: ' + req.body.title); + var travel = new travelModel({ + title: req.body.title, + description: req.body.description, + owner: req.body.owner, + from: req.body.from, + to: req.body.to, + date: req.body.date, + periodic: req.body.periodic, + generateddate: req.body.generateddate, + seats: req.body.seats, + package: req.body.package, + icon: req.body.icon, + phone: req.body.phone, + telegram: req.body.telegram, + collectivized: req.body.collectivized, + modality: req.body.modality + }); + + travel.save(function(err, travel) { + if(err) return res.send(500, err.message); + res.status(200).jsonp(travel); + }); +}; + +//PUT +exports.updateTravel = function(req, res) { + ActivityModel.findById(req.params.id, function(err, tvshow) { + tvshow.title = req.body.petId; + tvshow.year = req.body.year; + tvshow.country = req.body.country; + tvshow.poster = req.body.poster; + tvshow.seasons = req.body.seasons; + tvshow.genre = req.body.genre; + tvshow.summary = req.body.summary; + + tvshow.save(function(err) { + if(err) return res.send(500, err.message); + res.status(200).jsonp(tvshow); + }); + }); +}; + +//DELETE +exports.deleteTravel = function(req, res) { + ActivityModel.findById(req.params.id, function(err, activity) { + activity.remove(function(err) { + if(err) return res.send(500, err.message); + res.status(200).jsonp(req.params.id); + console.log('DELETE /activities/' + req.params.id); + }) + }); +}; diff --git a/controllers/userController.js b/controllers/userController.js new file mode 100644 index 0000000..9846848 --- /dev/null +++ b/controllers/userController.js @@ -0,0 +1,154 @@ +//File: controllers/userController.js +var mongoose = require('mongoose'); +var userModel = mongoose.model('userModel'); + +/* */ +var jwt = require('jsonwebtoken'); // used to create, sign, and verify tokens +var express = require("express"); +var app = express(); +var config = require('../config'); // get our config file +app.set('superSecret', config.secret); // secret variable +/* */ + +//GET - Return all Users in the DB +exports.findAllUsers = function(req, res) { + userModel.find(function(err, users) { + if(err) res.send(500, err.message); + + //password deletion + for(var i=0; i