import graphene from graphene_django import DjangoObjectType from .models import Device as DeviceModel from .models import Edition as EditionModel from .models import Game as GameModel from .models import Platform as PlatformModel from .models import Purchase as PurchaseModel from .models import Session as SessionModel class Game(DjangoObjectType): class Meta: model = GameModel fields = "__all__" class Edition(DjangoObjectType): class Meta: model = EditionModel fields = "__all__" class Purchase(DjangoObjectType): class Meta: model = PurchaseModel fields = "__all__" class Session(DjangoObjectType): class Meta: model = SessionModel fields = "__all__" class Platform(DjangoObjectType): class Meta: model = PlatformModel fields = "__all__" class Device(DjangoObjectType): class Meta: model = DeviceModel fields = "__all__" class Query(graphene.ObjectType): games = graphene.List(Game) game_by_name = graphene.Field(Game, name=graphene.String(required=True)) purchases = graphene.List(Purchase) editions = graphene.List(Edition) sessions = graphene.List(Session) platforms = graphene.List(Platform) devices = graphene.List(Device) def resolve_games(self, info, **kwargs): return GameModel.objects.all() def resolve_game_by_name(self, info, name): try: return GameModel.objects.get(name=name) except GameModel.DoesNotExist: return None def resolve_editions(self, info, **kwargs): return EditionModel.objects.all() def resolve_purchases(self, info, **kwargs): return PurchaseModel.objects.all() def resolve_sessions(self, info, **kwargs): return SessionModel.objects.all() def resolve_platforms(self, info, **kwargs): return PlatformModel.objects.all() def resolve_devices(self, info, **kwargs): return DeviceModel.objects.all() schema = graphene.Schema(query=Query)