浏览代码

feat: add singleByPath GraphQL resolver (#6011)

Co-authored-by: k k <kleangseu@yahoo.com>
Leangseu Kim 2 年之前
父节点
当前提交
0d914b061e
共有 2 个文件被更改,包括 29 次插入0 次删除
  1. 24 0
      server/graph/resolvers/page.js
  2. 5 0
      server/graph/schemas/page.graphql

+ 24 - 0
server/graph/resolvers/page.js

@@ -170,6 +170,30 @@ module.exports = {
         throw new WIKI.Error.PageNotFound()
         throw new WIKI.Error.PageNotFound()
       }
       }
     },
     },
+    async singleByPath(obj, args, context, info) {
+      let page = await WIKI.models.pages.getPageFromDb({
+        path: args.path,
+        locale: args.locale,
+      });
+      if (page) {
+        if (WIKI.auth.checkAccess(context.req.user, ['manage:pages', 'delete:pages'], {
+          path: page.path,
+          locale: page.localeCode
+        })) {
+          return {
+            ...page,
+            locale: page.localeCode,
+            editor: page.editorKey,
+            scriptJs: page.extra.js,
+            scriptCss: page.extra.css
+          }
+        } else {
+          throw new WIKI.Error.PageViewForbidden()
+        }
+      } else {
+        throw new WIKI.Error.PageNotFound()
+      }
+    },
     /**
     /**
      * FETCH TAGS
      * FETCH TAGS
      */
      */

+ 5 - 0
server/graph/schemas/page.graphql

@@ -46,6 +46,11 @@ type PageQuery {
     id: Int!
     id: Int!
   ): Page @auth(requires: ["read:pages", "manage:system"])
   ): Page @auth(requires: ["read:pages", "manage:system"])
 
 
+  singleByPath(
+    path: String!
+    locale: String!
+  ): Page @auth(requires: ["read:pages", "manage:system"])
+
   tags: [PageTag]! @auth(requires: ["manage:system", "read:pages"])
   tags: [PageTag]! @auth(requires: ["manage:system", "read:pages"])
 
 
   searchTags(
   searchTags(