@@ -66,8 +66,38 @@ class Arguments:
66
66
67
67
def mutate (self , info , name ):
68
68
category = Category .objects .create (name = name )
69
- ok = True
70
- return CreateCategory (category = category ,ok = ok )
69
+ ok = True
70
+ return CreateCategory (category = category , ok = ok )
71
+
72
+
73
+ class UpdateCategory (graphene .Mutation ):
74
+ class Arguments :
75
+ id = graphene .Int (required = True )
76
+ name = graphene .String ()
77
+
78
+ category = graphene .Field (lambda : CategoryType )
79
+ ok = graphene .Boolean ()
80
+
81
+ def mutate (self , info , ** kwargs ):
82
+ id = kwargs .get ('id' )
83
+ ok = False
84
+ kwargs .pop ('id' )
85
+ if len (kwargs ):
86
+ ok = Category .objects .filter (pk = id ).update (** kwargs )
87
+ category = Category .objects .get (pk = id )
88
+ return UpdateCategory (category = category , ok = ok )
89
+
90
+
91
+ class DeleteCategory (graphene .Mutation ):
92
+ class Arguments :
93
+ id = graphene .Int (required = True )
94
+
95
+ ok = graphene .Boolean ()
96
+
97
+ def mutate (self , info , ** kwargs ):
98
+ id = kwargs .get ('id' )
99
+ ok = Category .objects .get (pk = id ).delete ()
100
+ return DeleteCategory (ok = ok )
71
101
72
102
73
103
class CreateIngredient (graphene .Mutation ):
@@ -83,9 +113,47 @@ def mutate(self, info, **kwargs):
83
113
kwargs ['category' ] = Category .objects .get (pk = kwargs ['category' ])
84
114
ingredient = Ingredient .objects .create (** kwargs )
85
115
ok = True
86
- return CreateIngredient (ingredient = ingredient ,ok = ok )
116
+ return CreateIngredient (ingredient = ingredient , ok = ok )
117
+
118
+
119
+ class UpdateIngredient (graphene .Mutation ):
120
+ class Arguments :
121
+ id = graphene .Int (required = True )
122
+ name = graphene .String ()
123
+ notes = graphene .String ()
124
+ category = graphene .Int ()
125
+
126
+ ingredient = graphene .Field (lambda : IngredientType )
127
+ ok = graphene .Boolean ()
128
+
129
+ def mutate (self , info , ** kwargs ):
130
+ id = kwargs .get ('id' )
131
+ ok = False
132
+ kwargs .pop ('id' )
133
+ if kwargs .get ('category' ):
134
+ kwargs ['category' ] = Category .objects .get (pk = kwargs ['category' ])
135
+ if len (kwargs ):
136
+ ok = Ingredient .objects .filter (pk = id ).update (** kwargs )
137
+ ingredient = Ingredient .objects .get (pk = id )
138
+ return UpdateIngredient (ingredient = ingredient , ok = ok )
139
+
140
+
141
+ class DeleteIngredient (graphene .Mutation ):
142
+ class Arguments :
143
+ id = graphene .Int (required = True )
144
+
145
+ ok = graphene .Boolean ()
146
+
147
+ def mutate (self , info , ** kwargs ):
148
+ id = kwargs .get ('id' )
149
+ ok = Ingredient .objects .get (pk = id ).delete ()
150
+ return DeleteIngredient (ok = ok )
87
151
88
152
89
153
class Mutation (object ):
90
154
create_category = CreateCategory .Field ()
155
+ update_category = UpdateCategory .Field ()
156
+ delete_category = DeleteCategory .Field ()
91
157
create_ingredient = CreateIngredient .Field ()
158
+ update_ingredient = UpdateIngredient .Field ()
159
+ delete_ingredient = DeleteIngredient .Field ()
0 commit comments