Răsfoiți Sursa

insert validation

itizawa 4 ani în urmă
părinte
comite
51daf77537
1 a modificat fișierele cu 16 adăugiri și 3 ștergeri
  1. 16 3
      src/server/routes/apiv3/share-links.js

+ 16 - 3
src/server/routes/apiv3/share-links.js

@@ -30,6 +30,10 @@ module.exports = (crowi) => {
   const ShareLink = crowi.model('ShareLink');
   const ShareLink = crowi.model('ShareLink');
   const Page = crowi.model('Page');
   const Page = crowi.model('Page');
 
 
+  validator.getShareLinks = [
+    // validate the page id is MongoId
+    body('relatedPage').isMongoId().withMessage('Page Id is required'),
+  ];
 
 
   /**
   /**
    * @swagger
    * @swagger
@@ -50,10 +54,19 @@ module.exports = (crowi) => {
    *          200:
    *          200:
    *            description: Succeeded to get share links
    *            description: Succeeded to get share links
    */
    */
-  router.get('/', loginRequired, async(req, res) => {
+  router.get('/', loginRequired, validator.getShareLinks, apiV3FormValidator, async(req, res) => {
     const { relatedPage } = req.query;
     const { relatedPage } = req.query;
+
+    const page = await Page.findByIdAndViewer(relatedPage, req.user);
+
+    if (page == null) {
+      const msg = 'Page is not found or forbidden';
+      logger.error('Error', msg);
+      return res.apiv3Err(new ErrorV3(msg, 'get-shareLink-failed'));
+    }
+
     try {
     try {
-      const shareLinksResult = await ShareLink.find({ relatedPage: { $in: relatedPage } }).populate({ path: 'relatedPage', select: 'path' });
+      const shareLinksResult = await ShareLink.find({ relatedPage }).populate({ path: 'relatedPage', select: 'path' });
       return res.apiv3({ shareLinksResult });
       return res.apiv3({ shareLinksResult });
     }
     }
     catch (err) {
     catch (err) {
@@ -110,7 +123,7 @@ module.exports = (crowi) => {
     if (page == null) {
     if (page == null) {
       const msg = 'Page is not found or forbidden';
       const msg = 'Page is not found or forbidden';
       logger.error('Error', msg);
       logger.error('Error', msg);
-      return res.apiv3Err(new ErrorV3(msg, 'get-shareLink-failed'));
+      return res.apiv3Err(new ErrorV3(msg, 'post-shareLink-failed'));
     }
     }
 
 
     const ShareLink = crowi.model('ShareLink');
     const ShareLink = crowi.model('ShareLink');