mirror of
https://github.com/magnum-opus-tender-hack/backend.git
synced 2025-02-16 17:40:32 +03:00
added offset:limit for search
This commit is contained in:
parent
0ff8e5674b
commit
e249aef809
|
@ -15,6 +15,8 @@ class QueryFilterSerializer(serializers.Serializer):
|
|||
|
||||
class SearchSerializer(serializers.Serializer):
|
||||
body = serializers.ListSerializer(child=QueryFilterSerializer())
|
||||
limit = serializers.IntegerField(default=5, min_value=1)
|
||||
offset = serializers.IntegerField(default=0, min_value=0)
|
||||
|
||||
def create(self, validated_data):
|
||||
raise NotImplementedError
|
||||
|
@ -37,22 +39,49 @@ class HintRequestSerializer(serializers.Serializer):
|
|||
content = serializers.CharField()
|
||||
|
||||
def create(self, validated_data):
|
||||
raise NotImplemented
|
||||
raise NotImplementedError
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
class HintResponseSerializer(serializers.Serializer):
|
||||
type = serializers.CharField()
|
||||
content = serializers.CharField()
|
||||
|
||||
def create(self, validated_data):
|
||||
raise NotImplementedError
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
class AutoCompleteRequestSerializer(serializers.Serializer):
|
||||
content = serializers.CharField(validators=[MinLengthValidator(3)])
|
||||
|
||||
def create(self, validated_data):
|
||||
raise NotImplementedError
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
class AutoCompleteSerializerNode(serializers.Serializer):
|
||||
coordinate = serializers.IntegerField(validators=[MinValueValidator(0)])
|
||||
value = HintResponseSerializer()
|
||||
|
||||
def create(self, validated_data):
|
||||
raise NotImplementedError
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
raise NotImplementedError
|
||||
|
||||
|
||||
class AutoCompleteResponseSerializer(serializers.Serializer):
|
||||
nodes = serializers.ListField(child=AutoCompleteSerializerNode())
|
||||
|
||||
def create(self, validated_data):
|
||||
raise NotImplementedError
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
raise NotImplementedError
|
||||
|
|
|
@ -30,7 +30,12 @@ class SearchApi(APIView):
|
|||
serializer = SearchSerializer(data=request.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
return Response(
|
||||
process_search(serializer.data["body"]), status=status.HTTP_200_OK
|
||||
process_search(
|
||||
serializer.data["body"],
|
||||
serializer.data["limit"],
|
||||
serializer.data["offset"],
|
||||
),
|
||||
status=status.HTTP_200_OK,
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -8,5 +8,5 @@ def get_hints(content: str) -> str:
|
|||
elif content in list(map(lambda category: category.name, Category.objects.all())):
|
||||
category = "Category"
|
||||
elif content in list(map(lambda char: char.value, Characteristic.objects.all())):
|
||||
category = Characteristic.objects.get(value=content).name
|
||||
category = Characteristic.objects.filter(value=content).first().name
|
||||
return category
|
||||
|
|
|
@ -123,4 +123,4 @@ def process_search(data: List[dict], limit=5, offset=0) -> List[dict]:
|
|||
qs = qs.filter(unit_characteristics__in=val)
|
||||
else:
|
||||
qs = qs.filter(characteristics__in=val)
|
||||
return [x.serialize_self() for x in qs[offset : offset + limit]]
|
||||
return [x.serialize_self() for x in qs[offset:offset+limit]]
|
||||
|
|
Loading…
Reference in New Issue
Block a user