def resolve_checkins(self, info, id: str = None, scope: str = None, created_by: str = None): user = info.context.user qs = CheckIn.objects.all() if id: qs = qs.filter(id=id) if scope == "friends": if not user.is_authenticated: return qs.none() qs = qs.filter(created_by__in=Follower.objects.filter( from_user=user.id)) # there's not yet privacy scope elif scope == "public": pass elif scope: raise NotImplementedError if created_by: qs = qs.filter(created_by=created_by) qs = qs.order_by("-created_at") qs = optimize_queryset(qs, info, "checkins") return qs
def resolve_spirit_types(self, info, id: str = None, query: str = None): qs = SpiritType.objects.all() if id: qs = qs.filter(id=id) if query: qs = qs.filter(name__istartswith=query) qs = optimize_queryset(qs, info, "spirit_types") return qs.order_by("name")
def resolve_flavor_profiles(self, info, id: str = None, query: str = None): qs = FlavorProfile.objects.all() if id: qs = qs.filter(id=id) if query: qs = qs.filter(name__istartswith=query) qs = optimize_queryset(qs, info, "flavor_profiles") return qs.order_by("name")
def resolve_distilleries(self, info, id: str = None, query: str = None): qs = Distillery.objects.all() if id: qs = qs.filter(id=id) if query: qs = qs.filter(name__istartswith=query) qs = optimize_queryset(qs, info, "distilleries") return qs.order_by("name")
def resolve_locations(self, info, id: str = None, query: str = None): qs = Location.objects.all() if id: qs = qs.filter(id=id) if query: qs = qs.filter(name__istartswith=query) qs = optimize_queryset(qs, info, "locations") return qs.order_by("name")
def resolve_regions( self, info, id: str = None, country: str = None, query: str = None ): qs = Region.objects.all() if id: qs = qs.filter(id=id) if country: qs = qs.filter(country=country) if query: qs = qs.filter(name__istartswith=query) qs = optimize_queryset(qs, info, "countries") return qs.order_by("regions")
def resolve_users( self, info, id: str = None, query: str = None, scope: str = None, **kwargs ): user = info.context.user qs = User.objects.all() if id: qs = qs.filter(from_user_id=id) if query: qs = qs.filter(name__istartswith=query) if scope == "followers": if not user.is_authenticated: qs = qs.none() else: qs = qs.filter( id__in=Follower.objects.filter(to_user_id=user.id).values_list( "from_user_id" ) ) elif scope == "following": if not user.is_authenticated: qs = qs.none() else: qs = qs.filter( id__in=Follower.objects.filter(from_user_id=user.id).values_list( "to_user_id" ) ) elif scope: qs = qs.none() qs = optimize_queryset(qs, info, "users") return qs