Skip to content

Commit d8bd258

Browse files
committed
add update and delete mutations
1 parent 22acaa8 commit d8bd258

File tree

2 files changed

+71
-3
lines changed

2 files changed

+71
-3
lines changed

cookbook/ingredients/schema.py

Lines changed: 71 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,38 @@ class Arguments:
6666

6767
def mutate(self, info, name):
6868
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)
71101

72102

73103
class CreateIngredient(graphene.Mutation):
@@ -83,9 +113,47 @@ def mutate(self, info, **kwargs):
83113
kwargs['category'] = Category.objects.get(pk=kwargs['category'])
84114
ingredient = Ingredient.objects.create(**kwargs)
85115
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)
87151

88152

89153
class Mutation(object):
90154
create_category = CreateCategory.Field()
155+
update_category = UpdateCategory.Field()
156+
delete_category = DeleteCategory.Field()
91157
create_ingredient = CreateIngredient.Field()
158+
update_ingredient = UpdateIngredient.Field()
159+
delete_ingredient = DeleteIngredient.Field()

db.sqlite3

0 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)