GraphQL schema operations (#5993)

* Remove nested operations

* Improve error log

* Fix bug schema to load

* Fix ParseGraphQLSchema tests

* Fix tests

* Fix failing tests

* First verstion not complete of create class mutation

* Fix bug caused by circular dependency

* Renaming files

* Schema types should be loaded before parse classes

* Fix tests

* Create class mutation boilerplate

* Improve CreateClassSchemaInput fields names

* Remove fields

* Pointer and relation fields

* Improve pointer default type

* Class type

* Create class mutation resolver

* Schema field transformers

* Class types transformations

* First test

* Numbers test

* Boolean tests

* Date test

* Fix some get tests

* Test for created at and updated at

* File tests

* Test for objects

* Renaming reducerFabric to reducerGenerator

* Changing get tests for file and object

* Object composed queries test

* Array test

* Null field test

* Bytes test

* Geo Point test

* Polygons tests

* Remove create generic mutation

* Fix tests

* Create class test - isRequired and defaultValue will be added back later

* Enforce master key

* Fix tests

* Duplicated field test

* updateClass mutation

* Remove update generic mutation tests

* Remove update generic mutation

* deleteClass mutation

* Remove delete generic mutation tests

* Remove delete generic mutation

* class query

* Classes query

* Remove get generic query from tests

* Remove remaining generic operations and fix tests

* Fix last test

* Try to fix redis tests

* Fix postgres tests

* Update objectsMutations and objectsQueries files locations

* Rename classSchema files to schema files

* Rename ClassObject to ParseObject

* Fix names and paths

* Still some wrong names
This commit is contained in:
Antonio Davi Macedo Coelho de Castro
2019-09-01 22:11:03 -07:00
committed by GitHub
parent e404c43222
commit 5a482bd661
24 changed files with 3604 additions and 2147 deletions

View File

@@ -431,7 +431,7 @@ describe('schemas', () => {
defaultValue: false,
},
defaultZero: { type: 'Number', defaultValue: 0 },
relation: { type: 'Relation', targetClass: 'SomeClass' }
relation: { type: 'Relation', targetClass: 'SomeClass' },
},
},
}).then(async response => {
@@ -458,7 +458,7 @@ describe('schemas', () => {
defaultValue: false,
},
defaultZero: { type: 'Number', defaultValue: 0 },
relation: { type: 'Relation', targetClass: 'SomeClass' }
relation: { type: 'Relation', targetClass: 'SomeClass' },
},
classLevelPermissions: defaultClassLevelPermissions,
});
@@ -486,7 +486,7 @@ describe('schemas', () => {
});
});
it('try to set a relation field as a required field', async (done) => {
it('try to set a relation field as a required field', async done => {
try {
await request({
url: 'http://localhost:8378/1/schemas',
@@ -497,7 +497,11 @@ describe('schemas', () => {
className: 'NewClassWithRelationRequired',
fields: {
foo: { type: 'String' },
relation: { type: 'Relation', targetClass: 'SomeClass', required: true }
relation: {
type: 'Relation',
targetClass: 'SomeClass',
required: true,
},
},
},
});
@@ -508,7 +512,7 @@ describe('schemas', () => {
done();
});
it('try to set a relation field with a default value', async (done) => {
it('try to set a relation field with a default value', async done => {
try {
await request({
url: 'http://localhost:8378/1/schemas',
@@ -519,7 +523,11 @@ describe('schemas', () => {
className: 'NewClassRelationWithOptions',
fields: {
foo: { type: 'String' },
relation: { type: 'Relation', targetClass: 'SomeClass', defaultValue: { __type: 'Relation', className: '_User' } }
relation: {
type: 'Relation',
targetClass: 'SomeClass',
defaultValue: { __type: 'Relation', className: '_User' },
},
},
},
});
@@ -530,7 +538,7 @@ describe('schemas', () => {
done();
});
it('try to update schemas with a relation field with options', async (done) => {
it('try to update schemas with a relation field with options', async done => {
await request({
url: 'http://localhost:8378/1/schemas',
method: 'POST',
@@ -539,7 +547,7 @@ describe('schemas', () => {
body: {
className: 'NewClassRelationWithOptions',
fields: {
foo: { type: 'String' }
foo: { type: 'String' },
},
},
});
@@ -552,10 +560,14 @@ describe('schemas', () => {
body: {
className: 'NewClassRelationWithOptions',
fields: {
relation: { type: 'Relation', targetClass: 'SomeClass', required: true }
relation: {
type: 'Relation',
targetClass: 'SomeClass',
required: true,
},
},
_method: "PUT"
}
_method: 'PUT',
},
});
fail('should fail');
} catch (e) {
@@ -571,10 +583,14 @@ describe('schemas', () => {
body: {
className: 'NewClassRelationWithOptions',
fields: {
relation: { type: 'Relation', targetClass: 'SomeClass', defaultValue: { __type: 'Relation', className: '_User' } }
relation: {
type: 'Relation',
targetClass: 'SomeClass',
defaultValue: { __type: 'Relation', className: '_User' },
},
},
_method: "PUT"
}
_method: 'PUT',
},
});
fail('should fail');
} catch (e) {