Skip to content

Commit

Permalink
added winks model
Browse files Browse the repository at this point in the history
  • Loading branch information
SarahMPearson committed Sep 6, 2014
1 parent 2f19aea commit 780735f
Show file tree
Hide file tree
Showing 7 changed files with 101 additions and 45 deletions.
26 changes: 26 additions & 0 deletions app/controllers/messages.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
'use strict';

var User = require('../models/user'),
Message = require('../models/message'),
moment = require('moment');

exports.send = function(req, res){
User.findById(req.params.userId, function(err, receiver){
res.locals.user.send(receiver, req.body, function(){
res.redirect('/users/' + receiver.alias);
});
});
};

exports.messages = function(req, res){
res.locals.user.messages(function(err, msgs){
res.render('users/messages', {msgs:msgs, moment:moment});
});
};

exports.message = function(req, res){
Message.read(req.params.msgId, function(err, msg){
res.render('users/message', {msg:msg, moment:moment});
});
};

22 changes: 0 additions & 22 deletions app/controllers/users.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
'use strict';

var User = require('../models/user'),
Message = require('../models/message'),
moment = require('moment'),
mp = require('multiparty');

exports.new = function(req, res){
Expand Down Expand Up @@ -89,26 +87,6 @@ exports.initUpdate = function(req, res){
});
};

exports.send = function(req, res){
User.findById(req.params.userId, function(err, receiver){
res.locals.user.send(receiver, req.body, function(){
res.redirect('/users/' + receiver.alias);
});
});
};

exports.messages = function(req, res){
res.locals.user.messages(function(err, msgs){
res.render('users/messages', {msgs:msgs, moment:moment});
});
};

exports.message = function(req, res){
Message.read(req.params.msgId, function(err, msg){
res.render('users/message', {msg:msg, moment:moment});
});
};

exports.alias = function(req, res){
User.findOne({alias:req.params.alias}, function(err, client){
if(client){
Expand Down
46 changes: 46 additions & 0 deletions app/models/wink.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
'use strict';
var async = require('async');

function Wink(senderId, receiverId){
this.senderId = senderId;
this.receiverId = receiverId;
this.count = 1;
this.isRead = false;
}

Object.defineProperty(Wink, 'collection', {
get: function(){return global.mongodb.collection('winks');}
});

Wink.send = function(senderId, receiverId, cb){
Wink.collection.findOne(senderId, receiverId, function(err, wink){
if(wink){
Wink.collection.update({_id:wink._id}, {$set:{isRead:false}, $inc:{count:1}}, cb);
}else{
var w = new Wink(senderId, receiverId);
Wink.collection.save(w, cb);
}
});
};

Wink.findAllByOwner = function(receiverId, cb){
Wink.collection.find({receiverId:receiverId, isRead:false}).toArray(function(err, winks){
async.each(winks, iterator2, function(){
async.map(winks, iterator, cb);
});
});
};

module.exports = Wink;

function iterator(wink, cb){
require('./user').findById(wink.senderId, function(err, sender){
wink.sender = sender;
cb(null, wink);
});
}
function iterator2(wink, cb){
Wink.collection.update({_id:wink._id}, {$set:{isRead:true}}, function(){
cb(null);
});
}
7 changes: 4 additions & 3 deletions app/routes/routes.js
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@ var morgan = require('morgan'),
debug = require('../lib/debug'),
home = require('../controllers/home'),
gifts = require('../controllers/gifts'),
messages = require('../controllers/messages'),
users = require('../controllers/users');

module.exports = function(app, express){
Expand Down Expand Up @@ -48,9 +49,9 @@ module.exports = function(app, express){
app.put('/profile/about', users.contact);
app.get('/users/:alias', users.alias);
app.get('/gifts', gifts.index);
app.post('/messages/:userId', users.send);
app.get('/messages/:msgId', users.message);
app.get('/messages', users.messages);
app.post('/messages/:userId', messages.send);
app.get('/messages/:msgId', messages.message);
app.get('/messages', messages.messages);

console.log('Express: Routes Loaded');
};
Expand Down
2 changes: 1 addition & 1 deletion app/static/css/style.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion app/static/css/style.less
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ div.c-wrapper{
background-image: url('/img/cart.jpg');
background-size: cover;
width: 100%;
height: 800px;
height: 500px;
background-repeat: no-repeat;
margin: 0;
}
Expand Down
41 changes: 23 additions & 18 deletions app/views/users/gifts.jade
Original file line number Diff line number Diff line change
@@ -1,24 +1,29 @@
extends ../shared/template
block content
.row
.col-xs-6.col-xs-offset-3.gifts
table#index.table.table-bordered.table-hover
thead
th Name
th Photo
th Price
tbody
each gift in gifts
tr
td
form(method='post', action='/cart')
input(type='hidden', name='giftId', value=gift._id)
button.btn.btn-default.btn-(data-toggle='modal', data-target='#gift')= gift.name
include checkout
td#giftImg
img(src=gift.photo)
td $#{gift.price.toFixed(2)}
.col-xs-3
.col-xs-12
.panel.panel-success
.panel-heading
h3.panel-title Gift Options
.panel-body
.table-responsive
table.table.table-hover.table-bordered#giftsTable
thead
th Name
th Photo
th Price
tbody
each gift in gifts
tr
td
form(method='post', action='/cart')
input(type='hidden', name='giftId', value=gift._id)
button.btn.btn-default.btn-(data-toggle='modal', data-target='#gift')= gift.name
include checkout
td#giftImg
img(src=gift.photo)
td $#{gift.price.toFixed(2)}
.col-xs-12


block scripts
Expand Down

0 comments on commit 780735f

Please sign in to comment.