wikijs-fork/server/graph/resolvers/site.js

72 lines
2.2 KiB
JavaScript
Raw Normal View History

2018-12-24 06:03:10 +00:00
const graphHelper = require('../../helpers/graph')
/* global WIKI */
module.exports = {
Query: {
async site() { return {} }
},
Mutation: {
async site() { return {} }
},
SiteQuery: {
async config(obj, args, context, info) {
return {
host: WIKI.config.host,
title: WIKI.config.title,
company: WIKI.config.company,
2020-02-23 20:20:55 +00:00
contentLicense: WIKI.config.contentLicense,
logoUrl: WIKI.config.logoUrl,
2018-12-24 06:03:10 +00:00
...WIKI.config.seo,
...WIKI.config.features,
...WIKI.config.security
2018-12-24 06:03:10 +00:00
}
}
},
SiteMutation: {
async updateConfig(obj, args, context) {
try {
WIKI.config.host = args.host
WIKI.config.title = args.title
WIKI.config.company = args.company
2020-02-23 20:20:55 +00:00
WIKI.config.contentLicense = args.contentLicense
2018-12-24 06:03:10 +00:00
WIKI.config.seo = {
description: args.description,
robots: args.robots,
analyticsService: args.analyticsService,
analyticsId: args.analyticsId
2018-12-24 06:03:10 +00:00
}
WIKI.config.logoUrl = args.logoUrl
2018-12-24 06:03:10 +00:00
WIKI.config.features = {
featurePageRatings: args.featurePageRatings,
featurePageComments: args.featurePageComments,
featurePersonalWikis: args.featurePersonalWikis
}
WIKI.config.security = {
securityIframe: args.securityIframe,
securityReferrerPolicy: args.securityReferrerPolicy,
securityTrustProxy: args.securityTrustProxy,
2019-10-12 18:41:45 +00:00
securitySRI: args.securitySRI,
securityHSTS: args.securityHSTS,
securityHSTSDuration: args.securityHSTSDuration,
securityCSP: args.securityCSP,
securityCSPDirectives: args.securityCSPDirectives
}
2020-02-23 20:20:55 +00:00
await WIKI.configSvc.saveToDb(['host', 'title', 'company', 'contentLicense', 'seo', 'logoUrl', 'features', 'security'])
2018-12-24 06:03:10 +00:00
if (WIKI.config.security.securityTrustProxy) {
WIKI.app.enable('trust proxy')
} else {
WIKI.app.disable('trust proxy')
}
2018-12-24 06:03:10 +00:00
return {
responseResult: graphHelper.generateSuccess('Site configuration updated successfully')
}
} catch (err) {
return graphHelper.generateError(err)
}
}
}
}