| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- const loggerFactory = require('@alias/logger');
- const logger = loggerFactory('growi:routes:apiv3:pages'); // eslint-disable-line no-unused-vars
- const express = require('express');
- const router = express.Router();
- /**
- * @swagger
- * tags:
- * name: Pages
- */
- module.exports = (crowi) => {
- const loginRequired = require('../../middlewares/login-required')(crowi, true);
- const adminRequired = require('../../middlewares/admin-required')(crowi);
- const csrf = require('../../middlewares/csrf')(crowi);
- const Page = crowi.model('Page');
- /**
- * @swagger
- *
- * /pages/recent:
- * get:
- * tags: [Pages]
- * description: Get recently updated pages
- * responses:
- * 200:
- * description: Return pages recently updated
- *
- */
- router.get('/recent', loginRequired, async(req, res) => {
- const limit = 20;
- const offset = parseInt(req.query.offset) || 0;
- const queryOptions = {
- offset,
- limit,
- includeTrashed: false,
- isRegExpEscapedFromPath: true,
- sort: 'updatedAt',
- desc: -1,
- };
- try {
- const result = await Page.findListWithDescendants('/', req.user, queryOptions);
- if (result.pages.length > limit) {
- result.pages.pop();
- }
- return res.apiv3(result);
- }
- catch (err) {
- res.code = 'unknown';
- logger.error('Failed to get recent pages', err);
- return res.apiv3Err(err, 500);
- }
- });
- /**
- * @swagger
- *
- * /pages/empty-trash:
- * delete:
- * tags: [Pages]
- * description: empty trash
- * responses:
- * 200:
- * description: Succeeded to remove all trash pages
- */
- router.delete('/empty-trash', loginRequired, adminRequired, csrf, async(req, res) => {
- try {
- const pages = await Page.deleteMany({
- path: { $in: /^\/trash/ },
- });
- return res.apiv3({ pages });
- }
- catch (err) {
- res.code = 'unknown';
- logger.error('Failed to delete trash pages', err);
- return res.apiv3Err(err, 500);
- }
- });
- return router;
- };
|