feat: add singleByPath GraphQL resolver (#6011)

Co-authored-by: k k <kleangseu@yahoo.com>
This commit is contained in:
Leangseu Kim 2023-01-29 21:43:55 -05:00 committed by GitHub
parent 1da80eaab8
commit 0d914b061e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 0 deletions

View File

@ -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
*/ */

View File

@ -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(