update ORM, refactor models, add Page API endpoints
This commit is contained in:
@@ -14,39 +14,6 @@ class Misc extends Controller {
|
||||
hello: 'world',
|
||||
})
|
||||
}
|
||||
|
||||
async save_page(req, res) {
|
||||
// return res.status(400).message('Missing required field: some_field').api({})
|
||||
|
||||
// Name, Parent, originalID
|
||||
requried_fields = {
|
||||
Name: String,
|
||||
Parent: ObjectId,
|
||||
OriginalId: ObjectId
|
||||
}
|
||||
|
||||
requried_fields.name = req.name
|
||||
requried_fields.Parrent = req.Parrent
|
||||
requried_fields.OriginalId = req.OriginalId
|
||||
|
||||
if (!requried_fields.Name) {
|
||||
return res.status(400).message('Missing required field: Name').api({})
|
||||
} else if (!requried_fields.Parrent) {
|
||||
return res.status(400).message('Missing required field: Parent').api({})
|
||||
|
||||
} else if (!requried_fields.ObjectId) {
|
||||
return res.status(400).message('Missing required field: ObjectId').api({})
|
||||
}
|
||||
|
||||
if (req.body.PageId) {
|
||||
//use the page model to find by id and
|
||||
const page = await Page.findById(req.body.PageId)
|
||||
if (!page) {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = exports = Misc
|
||||
|
||||
62
app/controllers/api/v1/Page.controller.js
Normal file
62
app/controllers/api/v1/Page.controller.js
Normal file
@@ -0,0 +1,62 @@
|
||||
const Controller = require('libflitter/controller/Controller')
|
||||
const PageModel = require('../../../models/api/Page.model')
|
||||
|
||||
/*
|
||||
* Page Controller
|
||||
* -------------------------------------------------------------
|
||||
* Put some description here!
|
||||
*/
|
||||
class Page extends Controller {
|
||||
async get_page(req, res) {
|
||||
const PageId = req.params.PageId
|
||||
const user = req.user
|
||||
|
||||
const page = await PageModel.findOne({UUID: PageId})
|
||||
if ( !page ) return res.status(404).message('Page not found with that ID.').api({})
|
||||
if ( !page.accessible_by(user) ) return req.security.deny()
|
||||
|
||||
return res.api(page)
|
||||
}
|
||||
|
||||
async save_page(req, res) {
|
||||
const PageId = req.params.PageId
|
||||
|
||||
let page;
|
||||
if ( PageId ) {
|
||||
page = await PageModel.findOne({UUID: PageId})
|
||||
if ( !page ) return res.status(404).message('Page not found with that ID.').api({})
|
||||
if ( !page.accessible_by(req.user, 'update') ) return req.security.deny()
|
||||
} else {
|
||||
page = new PageModel
|
||||
page.CreatedUserId = req.user.id
|
||||
page.OrgUserId = req.user.id
|
||||
}
|
||||
|
||||
if ( !req.body.Name ) return res.status(400).message('Missing required: Name').api({})
|
||||
page.Name = req.body.Name
|
||||
|
||||
if ( 'IsPublic' in req.body ) {
|
||||
page.IsPublic = !!req.body.IsPublic
|
||||
}
|
||||
|
||||
if ( 'IsVisibleInMenu' in req.body ) {
|
||||
page.IsVisibleInMenu = !!req.body.IsVisibleInMenu
|
||||
}
|
||||
|
||||
let parent;
|
||||
if ( !req.body.ParentId ) return res.status(400).message('Missing required: ParentId').api({})
|
||||
else {
|
||||
parent = await PageModel.findOne({UUID: req.body.ParentId})
|
||||
if ( !parent ) return res.status(404).message('Parent page not found with that ID.').api({})
|
||||
if ( !parent.accessible_by(req.user, 'update') ) return req.security.kickout()
|
||||
}
|
||||
|
||||
page.UpdatedAt = new Date
|
||||
page.UpdateUserId = req.user.id
|
||||
|
||||
await page.save()
|
||||
return req.api(page)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = exports = Page
|
||||
Reference in New Issue
Block a user