widok
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
Jakub Kaniecki 2024-06-24 22:21:36 +02:00
parent a7c3ba3f14
commit 2af168fe7e

View File

@ -19,7 +19,25 @@ from jobposting.serializers import (
SkillSerializer,
SlimJobOffersSerializer,
MainJobOfferSerializer
)
)\
def remove_none_from_filters(filter: int|str, filter_type: str) -> int|str|None:
if filter_type == 'int':
if filter is not None or filter == '':
try:
filter = int(filter)
except ValueError:
filter = None
except TypeError:
filter = None
else:
filter = None
else:
if filter is not None or filter == '':
pass
else:
filter = None
return filter
class MyUserViewSet(viewsets.ModelViewSet):
@ -76,41 +94,21 @@ class JobOfferListView(APIView):
authentication_classes = []
permission_classes = []
def get(self, request, format=None):
dict_request = dict(request.query_params)
print(dict_request)
categories = dict_request.get('categories[]', None)
max_salary = request.query_params.get('max_salary', None)
min_salary = request.query_params.get('min_salary', None)
localization = request.query_params.get('localization', None)
max_salary = remove_none_from_filters(
request.query_params.get('max_salary', None), 'int')
min_salary = remove_none_from_filters(
request.query_params.get('min_salary', None), 'int')
localization = remove_none_from_filters(
request.query_params.get('localization', None), 'str')
name = remove_none_from_filters(
request.query_params.get('name', None), 'str')
name = request.query_params.get('name', None)
if name is not None or name != '':
pass
else:
name = None
if max_salary is not None or max_salary != '':
try:
max_salary = int(max_salary)
except ValueError:
max_salary = None
except TypeError:
max_salary = None
else:
max_salary = None
if min_salary is not None or min_salary != '':
try:
min_salary = int(min_salary)
except ValueError:
min_salary = None
except TypeError:
min_salary = None
else:
min_salary = None
if localization is not None or localization != '':
pass
else:
localization = None
filters = {
'name__icontains': name,
'min_salary__gte': min_salary,