Skip to content

Commit 5693470

Browse files
authored
transform input types also on user mutations (#6934)
1 parent 84896db commit 5693470

File tree

3 files changed

+50
-3
lines changed

3 files changed

+50
-3
lines changed

package-lock.json

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/ParseGraphQLServer.spec.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7235,7 +7235,9 @@ describe('ParseGraphQLServer', () => {
72357235
const clientMutationId = uuidv4();
72367236
const userSchema = new Parse.Schema('_User');
72377237
userSchema.addString('someField');
7238+
userSchema.addPointer('aPointer', '_User');
72387239
await userSchema.update();
7240+
72397241
await parseGraphQLServer.parseGraphQLSchema.databaseController.schemaCache.clear();
72407242
const result = await apolloClient.mutate({
72417243
mutation: gql`
@@ -7246,6 +7248,10 @@ describe('ParseGraphQLServer', () => {
72467248
sessionToken
72477249
user {
72487250
someField
7251+
aPointer {
7252+
id
7253+
username
7254+
}
72497255
}
72507256
}
72517257
}
@@ -7257,6 +7263,13 @@ describe('ParseGraphQLServer', () => {
72577263
fields: {
72587264
username: 'user1',
72597265
password: 'user1',
7266+
aPointer: {
7267+
createAndLink: {
7268+
username: 'user2',
7269+
password: 'user2',
7270+
someField: 'someValue2',
7271+
},
7272+
},
72607273
someField: 'someValue',
72617274
},
72627275
},
@@ -7266,6 +7279,10 @@ describe('ParseGraphQLServer', () => {
72667279
expect(result.data.signUp.clientMutationId).toEqual(clientMutationId);
72677280
expect(result.data.signUp.viewer.sessionToken).toBeDefined();
72687281
expect(result.data.signUp.viewer.user.someField).toEqual('someValue');
7282+
expect(result.data.signUp.viewer.user.aPointer.id).toBeDefined();
7283+
expect(result.data.signUp.viewer.user.aPointer.username).toEqual(
7284+
'user2'
7285+
);
72697286
expect(typeof result.data.signUp.viewer.sessionToken).toBe('string');
72707287
});
72717288

@@ -7282,6 +7299,7 @@ describe('ParseGraphQLServer', () => {
72827299
});
72837300

72847301
userSchema.addString('someField');
7302+
userSchema.addPointer('aPointer', '_User');
72857303
await userSchema.update();
72867304
await parseGraphQLServer.parseGraphQLSchema.databaseController.schemaCache.clear();
72877305
const result = await apolloClient.mutate({
@@ -7293,6 +7311,10 @@ describe('ParseGraphQLServer', () => {
72937311
sessionToken
72947312
user {
72957313
someField
7314+
aPointer {
7315+
id
7316+
username
7317+
}
72967318
}
72977319
}
72987320
}
@@ -7309,6 +7331,13 @@ describe('ParseGraphQLServer', () => {
73097331
},
73107332
fields: {
73117333
someField: 'someValue',
7334+
aPointer: {
7335+
createAndLink: {
7336+
username: 'user2',
7337+
password: 'user2',
7338+
someField: 'someValue2',
7339+
},
7340+
},
73127341
},
73137342
},
73147343
},
@@ -7324,6 +7353,10 @@ describe('ParseGraphQLServer', () => {
73247353
expect(typeof result.data.logInWith.viewer.sessionToken).toBe(
73257354
'string'
73267355
);
7356+
expect(result.data.logInWith.viewer.user.aPointer.id).toBeDefined();
7357+
expect(result.data.logInWith.viewer.user.aPointer.username).toEqual(
7358+
'user2'
7359+
);
73277360
});
73287361

73297362
it('should log the user in', async () => {

src/GraphQL/loaders/usersMutations.js

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import UsersRouter from '../../Routers/UsersRouter';
99
import * as objectsMutations from '../helpers/objectsMutations';
1010
import { OBJECT } from './defaultGraphQLTypes';
1111
import { getUserFromSessionToken } from './usersQueries';
12+
import { transformTypes } from '../transformers/mutation';
1213

1314
const usersRouter = new UsersRouter();
1415

@@ -41,9 +42,15 @@ const load = parseGraphQLSchema => {
4142
const { fields } = args;
4243
const { config, auth, info } = context;
4344

45+
const parseFields = await transformTypes('create', fields, {
46+
className: '_User',
47+
parseGraphQLSchema,
48+
req: { config, auth, info },
49+
});
50+
4451
const { sessionToken, objectId } = await objectsMutations.createObject(
4552
'_User',
46-
fields,
53+
parseFields,
4754
config,
4855
auth,
4956
info
@@ -119,9 +126,15 @@ const load = parseGraphQLSchema => {
119126
const { fields, authData } = args;
120127
const { config, auth, info } = context;
121128

129+
const parseFields = await transformTypes('create', fields, {
130+
className: '_User',
131+
parseGraphQLSchema,
132+
req: { config, auth, info },
133+
});
134+
122135
const { sessionToken, objectId } = await objectsMutations.createObject(
123136
'_User',
124-
{ ...fields, authData },
137+
{ ...parseFields, authData },
125138
config,
126139
auth,
127140
info

0 commit comments

Comments
 (0)