import Parse from 'parse/node'; import PromiseRouter from '../PromiseRouter'; import * as middleware from '../middlewares'; const GraphQLConfigPath = '/graphql-config'; export class GraphQLRouter extends PromiseRouter { async getGraphQLConfig(req) { const result = await req.config.parseGraphQLController.getGraphQLConfig(); return { response: result, }; } async updateGraphQLConfig(req) { if (req.auth.isReadOnly) { throw new Parse.Error( Parse.Error.OPERATION_FORBIDDEN, "read-only masterKey isn't allowed to update the GraphQL config." ); } const data = await req.config.parseGraphQLController.updateGraphQLConfig( req.body.params ); return { response: data, }; } mountRoutes() { this.route( 'GET', GraphQLConfigPath, middleware.promiseEnforceMasterKeyAccess, (req) => { return this.getGraphQLConfig(req); } ); this.route( 'PUT', GraphQLConfigPath, middleware.promiseEnforceMasterKeyAccess, (req) => { return this.updateGraphQLConfig(req); } ); } } export default GraphQLRouter;