1
0
mirror of https://github.com/stolksdorf/homebrewery.git synced 2025-12-12 23:45:57 +00:00

Cleaned up the server file and added methodfs and statics to the model

This commit is contained in:
Scott Tolksdorf
2016-11-14 22:30:28 -05:00
parent 6672dff938
commit 8b3f9ac76a
5 changed files with 113 additions and 98 deletions

125
server.js
View File

@@ -35,85 +35,66 @@ var sanitizeBrew = function(brew){
};
app.get('/edit/:id', (req, res, next)=>{
HomebrewModel.find({editId : req.params.id}, (err, brews)=>{
if(err || !brews.length){
return res.status(400).send(`Can't get that`);
}
req.brew = brews[0].toJSON();
return next();
})
});
//Share Page
app.get('/share/:id', (req, res, next)=>{
HomebrewModel.find({shareId : req.params.id}, (err, brews)=>{
if(err || !brews.length){
return res.status(400).send(`Can't get that`);
}
const brew = brews[0];
brew.lastViewed = new Date();
brew.views = brew.views + 1;
brew.save();
req.brew = sanitizeBrew(brew.toJSON());
return next();
})
});
//Share Page
app.get('/print/:id', (req, res, next)=>{
HomebrewModel.find({shareId : req.params.id}, (err, brews)=>{
if(err || !brews.length){
return res.status(400).send(`Can't get that`);
}
req.brew = sanitizeBrew(brews[0].toJSON());
return next();
})
});
/*
//Print Page
var Markdown = require('naturalcrit/markdown.js');
var PHBStyle = '<style>' + require('fs').readFileSync('./phb.standalone.css', 'utf8') + '</style>'
app.get('/print/:id', function(req, res){
HomebrewModel.find({shareId : req.params.id}, function(err, objs){
var brew = {};
if(objs.length){
brew = objs[0];
}
if(err || !objs.length){
brew.text = '# Oops \n We could not find a brew with that id. **Sorry!**';
}
var content = _.map(brew.text.split('\\page'), function(pageText, index){
return `<div class="phb print" id="p${index+1}">` + Markdown.render(pageText) + '</div>';
}).join('\n');
var dialog = '';
if(req.query && req.query.dialog) dialog = 'onload="window.print()"';
var title = '<title>' + brew.title + '</title>';
var page = `<html><head>${title} ${PHBStyle}</head><body ${dialog}>${content}</body></html>`
return res.send(page)
});
});
*/
//Source page
String.prototype.replaceAll = function(s,r){return this.split(s).join(r)}
app.get('/source/:id', (req, res)=>{
HomebrewModel.find({shareId : req.params.id}, (err, brews)=>{
if(err || !brews.length) return res.status(404).send('Could not find Homebrew with that id');
const text = brews[0].text.replaceAll('<', '&lt;').replaceAll('>', '&gt;');
return res.send(`<code><pre>${text}</pre></code>`);
});
HomebrewModel.get({shareId : req.params.id})
.then((brew)=>{
const text = brew.text.replaceAll('<', '&lt;').replaceAll('>', '&gt;');
return res.send(`<code><pre>${text}</pre></code>`);
})
.catch((err)=>{
console.log(err);
return res.status(404).send('Could not find Homebrew with that id');
})
});
app.get('/edit/:id', (req, res, next)=>{
HomebrewModel.get({editId : req.params.id})
.then((brew)=>{
req.brew = brew.sanatize();
return next();
})
.catch((err)=>{
console.log(err);
return res.status(400).send(`Can't get that`);
});
});
//Share Page
app.get('/share/:id', (req, res, next)=>{
HomebrewModel.get({shareId : req.params.id})
.then((brew)=>{
return brew.increaseView();
})
.then((brew)=>{
req.brew = brew.sanatize(true);
return next();
})
.catch((err)=>{
console.log(err);
return res.status(400).send(`Can't get that`);
});
});
//Print Page
app.get('/print/:id', (req, res, next)=>{
HomebrewModel.get({shareId : req.params.id})
.then((brew)=>{
req.brew = brew.sanatize(true);
return next();
})
.catch((err)=>{
console.log(err);
return res.status(400).send(`Can't get that`);
});
});
//Render Page
app.use((req, res) => {
vitreumRender({