Skip to content

Commit

Permalink
added filters
Browse files Browse the repository at this point in the history
  • Loading branch information
jhnnsrs committed Jun 30, 2024
1 parent 95b0bba commit 004c348
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 14 deletions.
34 changes: 28 additions & 6 deletions kammer/filters.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,39 @@
from typing import Optional

import strawberry
from komment import models, scalars, enums
import strawberry_django
from kammer import enums, models, scalars
from strawberry import auto
from typing import Optional
from strawberry_django.filters import FilterLookup
import strawberry_django


@strawberry_django.filter(models.Comment)
class CommentFilter:
name: Optional[FilterLookup[str]] | None
@strawberry_django.filter(models.Message)
class MessageFilter:
ids: list[strawberry.ID] | None
search: Optional[str] | None

def filter_ids(self, queryset, info):
if self.ids is None:
return queryset
return queryset.filter(id__in=self.ids)

def filter_search(self, queryset, info):
if self.search is None:
return queryset
return queryset.filter(text__icontains=self.search)


@strawberry_django.filter(models.Room)
class RoomFilter:
search: Optional[str] | None
ids: list[strawberry.ID] | None

def filter_ids(self, queryset, info):
if self.ids is None:
return queryset
return queryset.filter(id__in=self.ids)

def filter_search(self, queryset, info):
if self.search is None:
return queryset
return queryset.filter(title__icontains=self.search)
4 changes: 4 additions & 0 deletions kammer/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,10 @@ class Room(models.Model):
help_text="The users that have pinned the workspace",
)

@property
def messages(self):
return Message.objects.filter(agent__room=self).all()


class Agent(models.Model):
room = models.ForeignKey(Room, on_delete=models.CASCADE)
Expand Down
13 changes: 5 additions & 8 deletions kammer/types.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,31 +13,28 @@
from strawberry.experimental import pydantic


@strawberry_django.type(models.Structure)
@strawberry_django.type(models.Structure, pagination=True)
class Structure:
id: strawberry.ID
object: strawberry.ID
identifier: str


@strawberry_django.type(models.Room)
@strawberry_django.type(models.Room, pagination=True, filters=filters.RoomFilter)
class Room:
id: strawberry.ID
title: str
description: str
messages: list["Message"]

@strawberry_django.field()
def messages(self, info) -> list["Message"]:
return models.Message.objects.filter(agent__room=self).all()


@strawberry_django.type(models.Agent)
@strawberry_django.type(models.Agent, pagination=True)
class Agent:
id: strawberry.ID
room: Room


@strawberry_django.type(models.Message)
@strawberry_django.type(models.Message, pagination=True, filters=filters.MessageFilter)
class Message:
id: strawberry.ID
title: str
Expand Down

0 comments on commit 004c348

Please sign in to comment.