123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115 |
- const graphHelper = require('../../helpers/graph')
- /* global WIKI */
- module.exports = {
- Query: {
- async pages() { return {} }
- },
- Mutation: {
- async pages() { return {} }
- },
- PageQuery: {
- async history(obj, args, context, info) {
- return WIKI.models.pageHistory.getHistory({
- pageId: args.id,
- offsetPage: args.offsetPage || 0,
- offsetSize: args.offsetSize || 100
- })
- },
- async search (obj, args, context) {
- if (WIKI.data.searchEngine) {
- return WIKI.data.searchEngine.query(args.query, args)
- } else {
- return {
- results: [],
- suggestions: [],
- totalHits: 0
- }
- }
- },
- async list (obj, args, context, info) {
- return WIKI.models.pages.query().column([
- 'id',
- 'path',
- { locale: 'localeCode' },
- 'title',
- 'description',
- 'isPublished',
- 'isPrivate',
- 'privateNS',
- 'contentType',
- 'createdAt',
- 'updatedAt'
- ])
- },
- async single (obj, args, context, info) {
- let page = await WIKI.models.pages.getPageFromDb(args.id)
- if (page) {
- return {
- ...page,
- locale: page.localeCode,
- editor: page.editorKey
- }
- } else {
- throw new WIKI.Error.PageNotFound()
- }
- }
- },
- PageMutation: {
- async create(obj, args, context) {
- const page = await WIKI.models.pages.createPage({
- ...args,
- authorId: context.req.user.id
- })
- return {
- responseResult: graphHelper.generateSuccess('Page created successfully.'),
- page
- }
- },
- async delete(obj, args, context) {
- await WIKI.models.pages.deletePage({
- ...args,
- authorId: context.req.user.id
- })
- return {
- responseResult: graphHelper.generateSuccess('Page has been deleted.')
- }
- },
- async update(obj, args, context) {
- const page = await WIKI.models.pages.updatePage({
- ...args,
- authorId: context.req.user.id
- })
- return {
- responseResult: graphHelper.generateSuccess('Page has been updated.'),
- page
- }
- },
- async flushCache(obj, args, context) {
- try {
- await WIKI.models.pages.flushCache()
- return {
- responseResult: graphHelper.generateSuccess('Pages Cache has been flushed successfully.')
- }
- } catch (err) {
- return graphHelper.generateError(err)
- }
- },
- async migrateToLocale(obj, args, context) {
- try {
- return {
- responseResult: graphHelper.generateSuccess('Migrated all content to target locale successfully.')
- }
- } catch (err) {
- return graphHelper.generateError(err)
- }
- }
- },
- Page: {
- // comments(pg) {
- // return pg.$relatedQuery('comments')
- // }
- }
- }
|