add support for title filtering on API
This commit is contained in:
parent
dd40fd7154
commit
77a8ffa6a9
@ -187,6 +187,8 @@ def get_workouts(auth_user: User) -> Union[Dict, HttpResponse]:
|
|||||||
:query integer per_page: number of workouts per page
|
:query integer per_page: number of workouts per page
|
||||||
(default: 5, max: 100)
|
(default: 5, max: 100)
|
||||||
:query integer sport_id: sport id
|
:query integer sport_id: sport id
|
||||||
|
:quert string title: any part (or all) of the workout title;
|
||||||
|
title matching is case-insensitive
|
||||||
:query string from: start date (format: ``%Y-%m-%d``)
|
:query string from: start date (format: ``%Y-%m-%d``)
|
||||||
:query string to: end date (format: ``%Y-%m-%d``)
|
:query string to: end date (format: ``%Y-%m-%d``)
|
||||||
:query float distance_from: minimal distance
|
:query float distance_from: minimal distance
|
||||||
@ -230,6 +232,7 @@ def get_workouts(auth_user: User) -> Union[Dict, HttpResponse]:
|
|||||||
)
|
)
|
||||||
order = params.get('order', 'desc')
|
order = params.get('order', 'desc')
|
||||||
sport_id = params.get('sport_id')
|
sport_id = params.get('sport_id')
|
||||||
|
title = params.get('title')
|
||||||
per_page = int(params.get('per_page', DEFAULT_WORKOUTS_PER_PAGE))
|
per_page = int(params.get('per_page', DEFAULT_WORKOUTS_PER_PAGE))
|
||||||
if per_page > MAX_WORKOUTS_PER_PAGE:
|
if per_page > MAX_WORKOUTS_PER_PAGE:
|
||||||
per_page = MAX_WORKOUTS_PER_PAGE
|
per_page = MAX_WORKOUTS_PER_PAGE
|
||||||
@ -237,6 +240,7 @@ def get_workouts(auth_user: User) -> Union[Dict, HttpResponse]:
|
|||||||
Workout.query.filter(
|
Workout.query.filter(
|
||||||
Workout.user_id == auth_user.id,
|
Workout.user_id == auth_user.id,
|
||||||
Workout.sport_id == sport_id if sport_id else True,
|
Workout.sport_id == sport_id if sport_id else True,
|
||||||
|
Workout.title.ilike(f"%{title}%") if title else True,
|
||||||
Workout.workout_date >= date_from if date_from else True,
|
Workout.workout_date >= date_from if date_from else True,
|
||||||
Workout.workout_date < date_to + timedelta(seconds=1)
|
Workout.workout_date < date_to + timedelta(seconds=1)
|
||||||
if date_to
|
if date_to
|
||||||
|
Loading…
Reference in New Issue
Block a user