1
0
Fork 0
mirror of https://github.com/codex-team/codex.docs.git synced 2025-07-19 13:19:42 +02:00

Page showing, page edit, move API to /api/ (#10)

This commit is contained in:
Peter Savchenko 2018-10-15 22:06:01 +03:00 committed by GitHub
parent ff09f695d0
commit 730eff7995
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
18 changed files with 316 additions and 133 deletions

View file

@ -1,6 +1,5 @@
const express = require('express');
const router = express.Router();
const multer = require('multer')();
const Pages = require('../controllers/pages');
/**
@ -10,116 +9,46 @@ router.get('/page/new', async (req, res) => {
let pagesAvailable = await Pages.getAll();
res.render('pages/form', {
pagesAvailable
pagesAvailable,
page: null
});
});
/**
* GET /page/:id
*
* Return PageData of page with given id
* Edit page form
*/
router.get('/page/:id', async (req, res) => {
try {
const page = await Pages.get(req.params.id);
router.get('/page/edit/:id', async (req, res, next) => {
const pageId = req.params.id;
res.json({
success: true,
result: page.data
});
} catch (err) {
res.status(400).json({
success: false,
error: err.message
try {
let page = await Pages.get(pageId);
let pagesAvailable = await Pages.getAll();
res.render('pages/form', {
pagesAvailable,
page
});
} catch (error) {
res.status(404);
next(error);
}
});
/**
* GET /pages
*
* Return PageData for all pages
* View page
*/
router.get('/pages', async (req, res) => {
try {
const pages = await Pages.getAll();
res.json({
success: true,
result: pages
});
} catch (err) {
res.status(400).json({
success: false,
error: err.message
});
}
});
/**
* PUT /page
*
* Create new page in the database
*/
router.put('/page', multer.any(), async (req, res) => {
try {
const {title, body, parent} = req.body;
const page = await Pages.insert({title, body, parent});
res.json({
success: true,
result: page
});
} catch (err) {
res.status(400).json({
success: false,
error: err.message
});
}
});
/**
* POST /page/:id
*
* Update page data in the database
*/
router.post('/page/:id', multer.any(), async (req, res) => {
const {id} = req.params;
router.get('/page/:id', async (req, res, next) => {
const pageId = req.params.id;
try {
const {title, body, parent} = req.body;
const page = await Pages.update(id, {title, body, parent});
let page = await Pages.get(pageId);
res.json({
success: true,
result: page
});
} catch (err) {
res.status(400).json({
success: false,
error: err.message
});
}
});
/**
* DELETE /page/:id
*
* Remove page from the database
*/
router.delete('/page/:id', async (req, res) => {
try {
const page = await Pages.remove(req.params.id);
res.json({
success: true,
result: page
});
} catch (err) {
res.status(400).json({
success: false,
error: err.message
res.render('pages/page', {
page
});
} catch (error) {
res.status(404);
next(error);
}
});