transform input types also on user mutations (#6934)
This commit is contained in:
3
package-lock.json
generated
3
package-lock.json
generated
@@ -5248,7 +5248,8 @@
|
|||||||
"crypto-js": {
|
"crypto-js": {
|
||||||
"version": "4.0.0",
|
"version": "4.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-4.0.0.tgz",
|
||||||
"integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg=="
|
"integrity": "sha512-bzHZN8Pn+gS7DQA6n+iUmBfl0hO5DJq++QP3U6uTucDtk/0iGpXd/Gg7CGR0p8tJhofJyaKoWBuJI4eAO00BBg==",
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"css-select": {
|
"css-select": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
|
|||||||
@@ -7235,7 +7235,9 @@ describe('ParseGraphQLServer', () => {
|
|||||||
const clientMutationId = uuidv4();
|
const clientMutationId = uuidv4();
|
||||||
const userSchema = new Parse.Schema('_User');
|
const userSchema = new Parse.Schema('_User');
|
||||||
userSchema.addString('someField');
|
userSchema.addString('someField');
|
||||||
|
userSchema.addPointer('aPointer', '_User');
|
||||||
await userSchema.update();
|
await userSchema.update();
|
||||||
|
|
||||||
await parseGraphQLServer.parseGraphQLSchema.databaseController.schemaCache.clear();
|
await parseGraphQLServer.parseGraphQLSchema.databaseController.schemaCache.clear();
|
||||||
const result = await apolloClient.mutate({
|
const result = await apolloClient.mutate({
|
||||||
mutation: gql`
|
mutation: gql`
|
||||||
@@ -7246,6 +7248,10 @@ describe('ParseGraphQLServer', () => {
|
|||||||
sessionToken
|
sessionToken
|
||||||
user {
|
user {
|
||||||
someField
|
someField
|
||||||
|
aPointer {
|
||||||
|
id
|
||||||
|
username
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7257,6 +7263,13 @@ describe('ParseGraphQLServer', () => {
|
|||||||
fields: {
|
fields: {
|
||||||
username: 'user1',
|
username: 'user1',
|
||||||
password: 'user1',
|
password: 'user1',
|
||||||
|
aPointer: {
|
||||||
|
createAndLink: {
|
||||||
|
username: 'user2',
|
||||||
|
password: 'user2',
|
||||||
|
someField: 'someValue2',
|
||||||
|
},
|
||||||
|
},
|
||||||
someField: 'someValue',
|
someField: 'someValue',
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -7266,6 +7279,10 @@ describe('ParseGraphQLServer', () => {
|
|||||||
expect(result.data.signUp.clientMutationId).toEqual(clientMutationId);
|
expect(result.data.signUp.clientMutationId).toEqual(clientMutationId);
|
||||||
expect(result.data.signUp.viewer.sessionToken).toBeDefined();
|
expect(result.data.signUp.viewer.sessionToken).toBeDefined();
|
||||||
expect(result.data.signUp.viewer.user.someField).toEqual('someValue');
|
expect(result.data.signUp.viewer.user.someField).toEqual('someValue');
|
||||||
|
expect(result.data.signUp.viewer.user.aPointer.id).toBeDefined();
|
||||||
|
expect(result.data.signUp.viewer.user.aPointer.username).toEqual(
|
||||||
|
'user2'
|
||||||
|
);
|
||||||
expect(typeof result.data.signUp.viewer.sessionToken).toBe('string');
|
expect(typeof result.data.signUp.viewer.sessionToken).toBe('string');
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -7282,6 +7299,7 @@ describe('ParseGraphQLServer', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
userSchema.addString('someField');
|
userSchema.addString('someField');
|
||||||
|
userSchema.addPointer('aPointer', '_User');
|
||||||
await userSchema.update();
|
await userSchema.update();
|
||||||
await parseGraphQLServer.parseGraphQLSchema.databaseController.schemaCache.clear();
|
await parseGraphQLServer.parseGraphQLSchema.databaseController.schemaCache.clear();
|
||||||
const result = await apolloClient.mutate({
|
const result = await apolloClient.mutate({
|
||||||
@@ -7293,6 +7311,10 @@ describe('ParseGraphQLServer', () => {
|
|||||||
sessionToken
|
sessionToken
|
||||||
user {
|
user {
|
||||||
someField
|
someField
|
||||||
|
aPointer {
|
||||||
|
id
|
||||||
|
username
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7309,6 +7331,13 @@ describe('ParseGraphQLServer', () => {
|
|||||||
},
|
},
|
||||||
fields: {
|
fields: {
|
||||||
someField: 'someValue',
|
someField: 'someValue',
|
||||||
|
aPointer: {
|
||||||
|
createAndLink: {
|
||||||
|
username: 'user2',
|
||||||
|
password: 'user2',
|
||||||
|
someField: 'someValue2',
|
||||||
|
},
|
||||||
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -7324,6 +7353,10 @@ describe('ParseGraphQLServer', () => {
|
|||||||
expect(typeof result.data.logInWith.viewer.sessionToken).toBe(
|
expect(typeof result.data.logInWith.viewer.sessionToken).toBe(
|
||||||
'string'
|
'string'
|
||||||
);
|
);
|
||||||
|
expect(result.data.logInWith.viewer.user.aPointer.id).toBeDefined();
|
||||||
|
expect(result.data.logInWith.viewer.user.aPointer.username).toEqual(
|
||||||
|
'user2'
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should log the user in', async () => {
|
it('should log the user in', async () => {
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import UsersRouter from '../../Routers/UsersRouter';
|
|||||||
import * as objectsMutations from '../helpers/objectsMutations';
|
import * as objectsMutations from '../helpers/objectsMutations';
|
||||||
import { OBJECT } from './defaultGraphQLTypes';
|
import { OBJECT } from './defaultGraphQLTypes';
|
||||||
import { getUserFromSessionToken } from './usersQueries';
|
import { getUserFromSessionToken } from './usersQueries';
|
||||||
|
import { transformTypes } from '../transformers/mutation';
|
||||||
|
|
||||||
const usersRouter = new UsersRouter();
|
const usersRouter = new UsersRouter();
|
||||||
|
|
||||||
@@ -41,9 +42,15 @@ const load = parseGraphQLSchema => {
|
|||||||
const { fields } = args;
|
const { fields } = args;
|
||||||
const { config, auth, info } = context;
|
const { config, auth, info } = context;
|
||||||
|
|
||||||
|
const parseFields = await transformTypes('create', fields, {
|
||||||
|
className: '_User',
|
||||||
|
parseGraphQLSchema,
|
||||||
|
req: { config, auth, info },
|
||||||
|
});
|
||||||
|
|
||||||
const { sessionToken, objectId } = await objectsMutations.createObject(
|
const { sessionToken, objectId } = await objectsMutations.createObject(
|
||||||
'_User',
|
'_User',
|
||||||
fields,
|
parseFields,
|
||||||
config,
|
config,
|
||||||
auth,
|
auth,
|
||||||
info
|
info
|
||||||
@@ -119,9 +126,15 @@ const load = parseGraphQLSchema => {
|
|||||||
const { fields, authData } = args;
|
const { fields, authData } = args;
|
||||||
const { config, auth, info } = context;
|
const { config, auth, info } = context;
|
||||||
|
|
||||||
|
const parseFields = await transformTypes('create', fields, {
|
||||||
|
className: '_User',
|
||||||
|
parseGraphQLSchema,
|
||||||
|
req: { config, auth, info },
|
||||||
|
});
|
||||||
|
|
||||||
const { sessionToken, objectId } = await objectsMutations.createObject(
|
const { sessionToken, objectId } = await objectsMutations.createObject(
|
||||||
'_User',
|
'_User',
|
||||||
{ ...fields, authData },
|
{ ...parseFields, authData },
|
||||||
config,
|
config,
|
||||||
auth,
|
auth,
|
||||||
info
|
info
|
||||||
|
|||||||
Reference in New Issue
Block a user