@@ -16,12 +16,43 @@ class Meta:
16
16
17
17
18
18
class Query (object ):
19
+ category = graphene .Field (CategoryType ,
20
+ id = graphene .Int (),
21
+ name = graphene .String ())
19
22
all_categories = graphene .List (CategoryType )
23
+
24
+
25
+ ingredient = graphene .Field (IngredientType ,
26
+ id = graphene .Int (),
27
+ name = graphene .String ())
20
28
all_ingredients = graphene .List (IngredientType )
21
29
22
30
def resolve_all_categories (self , info , ** kwargs ):
23
31
return Category .objects .all ()
24
32
25
33
def resolve_all_ingredients (self , info , ** kwargs ):
26
- # We can easily optimize query count in the resolve method
27
- return Ingredient .objects .select_related ('category' ).all ()
34
+ return Ingredient .objects .all ()
35
+
36
+ def resolve_category (self , info , ** kwargs ):
37
+ id = kwargs .get ('id' )
38
+ name = kwargs .get ('name' )
39
+
40
+ if id is not None :
41
+ return Category .objects .get (pk = id )
42
+
43
+ if name is not None :
44
+ return Category .objects .get (name = name )
45
+
46
+ return None
47
+
48
+ def resolve_ingredient (self , info , ** kwargs ):
49
+ id = kwargs .get ('id' )
50
+ name = kwargs .get ('name' )
51
+
52
+ if id is not None :
53
+ return Ingredient .objects .get (pk = id )
54
+
55
+ if name is not None :
56
+ return Ingredient .objects .get (name = name )
57
+
58
+ return None
0 commit comments