Skip to content

Commit 6e017cb

Browse files
committed
Patch for synap
1 parent 321c4a9 commit 6e017cb

File tree

4 files changed

+26
-11
lines changed

4 files changed

+26
-11
lines changed

src/Controllers/DatabaseController.js

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,16 @@ import _ from 'lodash';
1010
import intersect from 'intersect';
1111
// @flow-disable-next
1212
import deepcopy from 'deepcopy';
13+
import SchemaCache from '../Adapters/Cache/SchemaCache';
14+
import MongoStorageAdapter from '../Adapters/Storage/Mongo/MongoStorageAdapter';
15+
import PostgresStorageAdapter from '../Adapters/Storage/Postgres/PostgresStorageAdapter';
16+
import type { FullQueryOptions, QueryOptions } from '../Adapters/Storage/StorageAdapter';
17+
import { StorageAdapter } from '../Adapters/Storage/StorageAdapter';
1318
import logger from '../logger';
19+
import type { ParseServerOptions } from '../Options';
1420
import Utils from '../Utils';
1521
import * as SchemaController from './SchemaController';
16-
import { StorageAdapter } from '../Adapters/Storage/StorageAdapter';
17-
import MongoStorageAdapter from '../Adapters/Storage/Mongo/MongoStorageAdapter';
18-
import PostgresStorageAdapter from '../Adapters/Storage/Postgres/PostgresStorageAdapter';
19-
import SchemaCache from '../Adapters/Cache/SchemaCache';
2022
import type { LoadSchemaOptions } from './types';
21-
import type { ParseServerOptions } from '../Options';
22-
import type { QueryOptions, FullQueryOptions } from '../Adapters/Storage/StorageAdapter';
2323

2424
function addWriteACL(query, acl) {
2525
const newQuery = _.cloneDeep(query);
@@ -1319,7 +1319,7 @@ class DatabaseController {
13191319
return this.adapter.distinct(className, schema, query, distinct);
13201320
}
13211321
} else if (pipeline) {
1322-
if (!classExists) {
1322+
if (!classExists || className === '_Join:users:_Role') {
13231323
return [];
13241324
} else {
13251325
return this.adapter.aggregate(

src/GraphQL/parseGraphQLUtils.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export function toGraphQLError(error) {
1616
code = Parse.Error.INTERNAL_SERVER_ERROR;
1717
message = 'Internal server error';
1818
}
19-
return new GraphQLError(message, { extensions: { code } });
19+
return new GraphQLError(message, { extensions: { code, parseError: error } });
2020
}
2121

2222
export const extractKeysAndInclude = selectedFields => {

src/ParseServerRESTController.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,9 +111,19 @@ function ParseServerRESTController(applicationId, router) {
111111
}
112112

113113
return new Promise((resolve, reject) => {
114+
let body = data;
115+
116+
if (options.context !== null && typeof options.context === 'object') {
117+
body = {
118+
...data,
119+
_context: options.context,
120+
};
121+
delete options.context;
122+
}
123+
114124
getAuth(options, config).then(auth => {
115125
const request = {
116-
body: data,
126+
body,
117127
config,
118128
auth,
119129
info: {

src/RestWrite.js

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,10 @@ var Parse = require('parse/node');
1313
var triggers = require('./triggers');
1414
var ClientSDK = require('./ClientSDK');
1515
const util = require('util');
16-
import RestQuery from './RestQuery';
1716
import _ from 'lodash';
18-
import logger from './logger';
1917
import { requiredColumns } from './Controllers/SchemaController';
18+
import logger from './logger';
19+
import RestQuery from './RestQuery';
2020

2121
// query and data are both provided in REST API format. So data
2222
// types are encoded by plain old objects.
@@ -42,6 +42,11 @@ function RestWrite(config, auth, className, query, data, originalData, clientSDK
4242
this.runOptions = {};
4343
this.context = context || {};
4444

45+
if (!!data && data._context && data._context instanceof Object) {
46+
this.context = data._context;
47+
delete data._context;
48+
}
49+
4550
if (action) {
4651
this.runOptions.action = action;
4752
}

0 commit comments

Comments
 (0)