77 GraphQLList ,
88)
99
10- from .resolvers import make_object_resolver , make_pk_resolver , make_insert_resolver , make_insert_one_resolver
11- from .args import make_args , make_pk_args , make_insert_args , make_insert_one_args
10+ from .resolvers import (
11+ make_object_resolver ,
12+ make_pk_resolver ,
13+ make_insert_resolver ,
14+ make_insert_one_resolver ,
15+ make_delete_resolver ,
16+ make_delete_by_pk_resolver ,
17+ )
18+ from .args import (
19+ make_args ,
20+ make_pk_args ,
21+ make_insert_args ,
22+ make_insert_one_args ,
23+ make_delete_args ,
24+ )
1225from .names import (
1326 get_model_pk_field_name ,
1427 get_model_insert_object_name ,
1528 get_model_insert_one_object_name ,
1629 get_table_name ,
30+ get_model_delete_name ,
31+ get_model_delete_by_pk_name ,
1732)
1833from .objects import build_object_type , build_mutation_response_type
1934from .types import Objects , Inputs
35+ from .helpers import get_table
2036
2137
2238def build_queries (model : DeclarativeMeta , objects : Objects , queries : GraphQLFieldMap , inputs : Inputs ) -> None :
@@ -27,24 +43,36 @@ def build_queries(model: DeclarativeMeta, objects: Objects, queries: GraphQLFiel
2743 GraphQLList (object_type ), args = make_args (model , inputs = inputs ), resolve = make_object_resolver (model )
2844 )
2945
30- pk_field_name = get_model_pk_field_name (model )
31- queries [pk_field_name ] = GraphQLField (object_type , args = make_pk_args (model ), resolve = make_pk_resolver (model ))
46+ if get_table (model ).primary_key :
47+ pk_field_name = get_model_pk_field_name (model )
48+ queries [pk_field_name ] = GraphQLField (object_type , args = make_pk_args (model ), resolve = make_pk_resolver (model ))
3249
3350
3451def build_mutations (model : DeclarativeMeta , objects : Objects , mutations : GraphQLFieldMap , inputs : Inputs ) -> None :
35- insert_type_name = get_model_insert_object_name (model )
3652 mutation_response_type = build_mutation_response_type (model , objects )
53+ object_type = objects [get_table_name (model )]
3754
55+ insert_type_name = get_model_insert_object_name (model )
3856 mutations [insert_type_name ] = GraphQLField (
3957 mutation_response_type , args = make_insert_args (model , inputs ), resolve = make_insert_resolver (model )
4058 )
4159
4260 insert_one_type_name = get_model_insert_one_object_name (model )
43- object_type = objects [get_table_name (model )]
4461 mutations [insert_one_type_name ] = GraphQLField (
4562 object_type , args = make_insert_one_args (model , inputs ), resolve = make_insert_one_resolver (model )
4663 )
4764
65+ delete_type_name = get_model_delete_name (model )
66+ mutations [delete_type_name ] = GraphQLField (
67+ mutation_response_type , args = make_delete_args (model , inputs ), resolve = make_delete_resolver (model )
68+ )
69+
70+ if get_table (model ).primary_key :
71+ delete_by_pk_type_name = get_model_delete_by_pk_name (model )
72+ mutations [delete_by_pk_type_name ] = GraphQLField (
73+ object_type , args = make_pk_args (model ), resolve = make_delete_by_pk_resolver (model )
74+ )
75+
4876
4977def build_schema (base : DeclarativeMeta ) -> GraphQLSchema :
5078 queries : GraphQLFieldMap = {}
0 commit comments