Skip to content

Commit 322fb86

Browse files
committedApr 10, 2012
Merge branch 'routes'
2 parents 36b7b1e + 962f959 commit 322fb86

File tree

8 files changed

+119
-100
lines changed

8 files changed

+119
-100
lines changed
 

‎app.js

+5-7
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,11 @@ require('./data/config.js');
5858

5959
// Routes
6060

61-
app.get('/', require('./routes/index.js'));
62-
app.get('/about', require('./routes/about.js'));
63-
app.get('/ask', require('./routes/ask.js'));
64-
app.post('/ask', require('./routes/create.js'));
65-
app.get('/wat/:id', require('./routes/wat.js'));
66-
app.get('/search', require('./routes/search.js'));
67-
app.get('/searchpartial', require('./routes/searchpartial.js'));
61+
require('./routes/index.js')(app);
62+
require('./routes/about.js')(app);
63+
require('./routes/ask.js')(app);
64+
require('./routes/wat.js')(app);
65+
require('./routes/search.js')(app);
6866

6967
// Start server
7068

‎routes/about.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1-
module.exports = function (req, res) {
2-
res.render('about', { title: 'About | say wat?' });
3-
};
1+
var routes = function (app) {
2+
app.get('/about', function (req, res) {
3+
res.render('about', { title: 'About | say wat?' });
4+
});
5+
};
6+
7+
module.exports = routes;

‎routes/ask.js

+52-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,52 @@
1-
module.exports = function (req, res) {
2-
res.render('ask', { title: 'Ask Question', phrase: req.query.phrase || '' });
3-
};
1+
var mongoose = require('mongoose')
2+
, url = require('url')
3+
, flow = require('flow')
4+
, Wat = mongoose.model('Wat')
5+
, User = mongoose.model('User')
6+
, routes
7+
;
8+
9+
routes = function (app) {
10+
app.get('/ask', function (req, res) {
11+
res.render('ask', { title: 'Ask Question', phrase: req.query.phrase || '' });
12+
});
13+
14+
app.post('/ask', function (req, res) {
15+
if (!req.body.phrase || req.body.phrase.length === 0) { return res.send('No phrase entered'); }
16+
if (!req.body.example || req.body.example.sentence === 0) { return res.send('No example entered'); }
17+
if (!req.body.region || req.body.region.length === 0) { return res.send('No region entered'); }
18+
19+
var currentUser;
20+
21+
flow.exec(
22+
function () {
23+
// User auth is not currently set up, using test data until this is done
24+
User.find({ displayName: 'csainty' }, this);
25+
},
26+
function (err, result) {
27+
if (!result) { return res.send('No user found'); }
28+
29+
currentUser = result[0];
30+
Wat.find({ phrase: req.body.phrase }, this);
31+
},
32+
function (err, result) {
33+
if (err) { console.log(err); return res.send('No likey'); }
34+
if (result.length !== 0) {
35+
return res.send('Someone beat you to it! ' + req.body.phrase + ' has already been asked about.');
36+
}
37+
38+
var newWat = new Wat({
39+
_user: currentUser,
40+
phrase: req.body.phrase,
41+
region: req.body.region,
42+
example: req.body.example
43+
});
44+
45+
newWat.save(this);
46+
}, function (err, wat) {
47+
if (err || !wat) { return res.redirect('/ask'); }
48+
res.redirect('/wat/' + wat._id);
49+
});
50+
});
51+
};
52+
module.exports = routes;

‎routes/create.js

-43
This file was deleted.

‎routes/index.js

+7-3
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1-
module.exports = function (req, res) {
2-
res.render('index', { title: 'say wat?', layout: 'typeahead-layout' });
3-
};
1+
var routes = function (app) {
2+
app.get('/', function (req, res) {
3+
res.render('index', { title: 'say wat?', layout: 'typeahead-layout' });
4+
});
5+
};
6+
7+
module.exports = routes;

‎routes/search.js

+30-12
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,36 @@
11
var mongoose = require('mongoose')
22
, url = require('url')
33
, Wat = mongoose.model('Wat')
4+
, routes
45
;
56

6-
module.exports = function (req, res) {
7-
if (!req.query.q || req.query.q.length === 0) { return res.redirect('/'); }
7+
routes = function (app) {
8+
app.get('/search', function (req, res) {
9+
if (!req.query.q || req.query.q.length === 0) { return res.redirect('/'); }
810

9-
Wat
10-
.find({ phrase: req.query.q })
11-
.populate('_user')
12-
.run(function (err, results) {
13-
if (err) { return res.redirect('/error'); }
14-
if (req.accepts('json')) { return res.json(results); }
15-
if (results.length === 0) { return res.redirect(url.format({ pathname: '/ask', query: { phrase: req.query.q } })); }
16-
res.render('search', { title: 'say wat?', results: results, query: req.query.q });
17-
});
18-
};
11+
Wat
12+
.find({ phrase: req.query.q })
13+
.populate('_user')
14+
.run(function (err, results) {
15+
if (err) { return res.redirect('/error'); }
16+
if (req.accepts('json')) { return res.json(results); }
17+
if (results.length === 0) { return res.redirect(url.format({ pathname: '/ask', query: { phrase: req.query.q } })); }
18+
res.render('search', { title: 'say wat?', results: results, query: req.query.q });
19+
});
20+
});
21+
22+
app.get('/searchpartial', function (req, res) {
23+
if (!req.query.q || req.query.q.length === 0) { return res.redirect('/'); }
24+
25+
Wat
26+
.$where('this.phrase.indexOf("' + req.query.q + '") != -1').exec(function (err, results) {
27+
if (err) { return res.redirect('/error'); }
28+
if (req.accepts('json')) { return res.json(results); }
29+
if (results.length === 0) { return res.redirect(url.format({ pathname: '/ask', query: { phrase: req.query.q } })); }
30+
res.render('search', { title: 'say wat?', results: results, query: req.query.q });
31+
});
32+
});
33+
};
34+
35+
36+
module.exports = routes;

‎routes/searchpartial.js

-16
This file was deleted.

‎routes/wat.js

+18-13
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,24 @@
11
var mongoose = require('mongoose')
22
, Wat = mongoose.model('Wat')
3+
, routes
34
;
45

5-
module.exports = function (req, res) {
6-
if (!req.params.id) { return res.redirect('/'); }
6+
routes = function (app) {
7+
app.get('/wat/:id', function (req, res) {
8+
if (!req.params.id) { return res.redirect('/'); }
79

8-
Wat
9-
.findById(req.params.id)
10-
.populate('_user')
11-
.populate('answers._user')
12-
.run(function (err, wat) {
13-
if (err) { return res.redirect('/error'); }
14-
if (!wat) { return res.redirect('/'); }
10+
Wat
11+
.findById(req.params.id)
12+
.populate('_user')
13+
.populate('answers._user')
14+
.run(function (err, wat) {
15+
if (err) { return res.redirect('/error'); }
16+
if (!wat) { return res.redirect('/'); }
1517

16-
if (req.accepts('json')) { return res.json(wat); }
17-
res.render('wat', { title: 'say wat?', id: req.params.id, wat: wat });
18-
});
19-
};
18+
if (req.accepts('json')) { return res.json(wat); }
19+
res.render('wat', { title: 'say wat?', id: req.params.id, wat: wat });
20+
});
21+
});
22+
};
23+
24+
module.exports = routes;

0 commit comments

Comments
 (0)
Please sign in to comment.