Big Bang
This commit is contained in:
73
app/controllers/dash/v1.controller.js
Normal file
73
app/controllers/dash/v1.controller.js
Normal file
@@ -0,0 +1,73 @@
|
||||
/*
|
||||
* v1 Controller
|
||||
* -------------------------------------------------------------
|
||||
* Put some description here!
|
||||
*/
|
||||
const Project = _flitter.model('v1:Project')
|
||||
const Out = _flitter.model('v1:Out')
|
||||
class v1 {
|
||||
|
||||
/*
|
||||
* Serve the main page.
|
||||
*/
|
||||
async main(req, res){
|
||||
|
||||
const projects = await Project.find({ archived: false, user_id: req.session.auth.uuid })
|
||||
|
||||
/*
|
||||
* Return the main view.
|
||||
* It must be passed the response.
|
||||
* View parameters can be passed as an optional third
|
||||
* argument to the view() method.
|
||||
*/
|
||||
return _flitter.view(res, 'dash_v1:main', { projects })
|
||||
}
|
||||
|
||||
new_project_show(req, res, next){
|
||||
return _flitter.view(res, 'dash_v1:project', {})
|
||||
}
|
||||
|
||||
async new_project_do(req, res, next){
|
||||
if ( !req.body.name ){
|
||||
return view(res, 'dash_v1:project', {errors: ['Project name is required.']})
|
||||
}
|
||||
|
||||
const project = new Project({
|
||||
name: req.body.name,
|
||||
user_id: req.session.auth.uuid,
|
||||
data: JSON.stringify({
|
||||
created: Date.now(),
|
||||
modified: Date.now()
|
||||
}),
|
||||
shared_user_ids: [],
|
||||
})
|
||||
|
||||
await project.save()
|
||||
|
||||
return res.redirect('/dash/v1')
|
||||
}
|
||||
|
||||
async project_view(req, res, next){
|
||||
const project = await Project.findById(req.params.id)
|
||||
const outs = await Out.find({ project_id: project.id }).sort('-created')
|
||||
|
||||
if ( !project ){
|
||||
_flitter.error(res, 404, 'Project not found.')
|
||||
}
|
||||
|
||||
return _flitter.view(res, 'dash_v1:view', { project, outs })
|
||||
}
|
||||
|
||||
async out_view(req, res, next){
|
||||
const out = await Out.findById(req.params.id)
|
||||
|
||||
console.log(out.data)
|
||||
|
||||
const pretty = JSON.stringify(JSON.parse(out.data), null, 4)
|
||||
|
||||
// TODO permission access check
|
||||
return _flitter.view(res, 'dash_v1:out', {out, prettyd:pretty});
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = exports = v1
|
||||
Reference in New Issue
Block a user