12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 |
- const graphHelper = require('../../helpers/graph')
- const _ = require('lodash')
- /* 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,
- contentLicense: WIKI.config.contentLicense,
- logoUrl: WIKI.config.logoUrl,
- ...WIKI.config.seo,
- ...WIKI.config.features,
- ...WIKI.config.security
- }
- }
- },
- SiteMutation: {
- async updateConfig(obj, args, context) {
- let siteHost = _.trim(args.host)
- if (siteHost.endsWith('/')) {
- siteHost = siteHost.splice(0, -1)
- }
- try {
- WIKI.config.host = siteHost
- WIKI.config.title = _.trim(args.title)
- WIKI.config.company = _.trim(args.company)
- WIKI.config.contentLicense = args.contentLicense
- WIKI.config.seo = {
- description: args.description,
- robots: args.robots,
- analyticsService: args.analyticsService,
- analyticsId: args.analyticsId
- }
- WIKI.config.logoUrl = _.trim(args.logoUrl)
- WIKI.config.features = {
- featurePageRatings: args.featurePageRatings,
- featurePageComments: args.featurePageComments,
- featurePersonalWikis: args.featurePersonalWikis
- }
- WIKI.config.security = {
- securityIframe: args.securityIframe,
- securityReferrerPolicy: args.securityReferrerPolicy,
- securityTrustProxy: args.securityTrustProxy,
- securitySRI: args.securitySRI,
- securityHSTS: args.securityHSTS,
- securityHSTSDuration: args.securityHSTSDuration,
- securityCSP: args.securityCSP,
- securityCSPDirectives: args.securityCSPDirectives
- }
- await WIKI.configSvc.saveToDb(['host', 'title', 'company', 'contentLicense', 'seo', 'logoUrl', 'features', 'security'])
- if (WIKI.config.security.securityTrustProxy) {
- WIKI.app.enable('trust proxy')
- } else {
- WIKI.app.disable('trust proxy')
- }
- return {
- responseResult: graphHelper.generateSuccess('Site configuration updated successfully')
- }
- } catch (err) {
- return graphHelper.generateError(err)
- }
- }
- }
- }
|