From fea0840ea65afb2b29abb378bd3c96697e0bbf4b Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Thu, 30 Apr 2026 16:42:23 +0300 Subject: task ia: fix media listing/filtering semantics (favorites bool, filesize filters, permission scoping) --- internal/api/handlers.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'internal/api/handlers.go') diff --git a/internal/api/handlers.go b/internal/api/handlers.go index e964b92..46ab41e 100644 --- a/internal/api/handlers.go +++ b/internal/api/handlers.go @@ -352,10 +352,8 @@ func parseMediaListQuery(q url.Values) repository.MediaFilter { t := model.MediaType(v) filter.Type = &t } - if v := q.Get("favorites"); v != "" { - if uid, err := strconv.ParseInt(v, 10, 64); err == nil { - filter.Favorites = &uid - } + if v := q.Get("favorites"); v == "true" || v == "1" { + filter.Favorites = true } if v := q.Get("tags"); v != "" { filter.Tags = strings.Split(v, ",") @@ -370,6 +368,16 @@ func parseMediaListQuery(q url.Values) repository.MediaFilter { filter.MaxDuration = &f } } + if v := q.Get("filesize_min"); v != "" { + if n, err := strconv.ParseInt(v, 10, 64); err == nil { + filter.MinFileSize = &n + } + } + if v := q.Get("filesize_max"); v != "" { + if n, err := strconv.ParseInt(v, 10, 64); err == nil { + filter.MaxFileSize = &n + } + } if v := q.Get("limit"); v != "" { if n, err := strconv.Atoi(v); err == nil && n > 0 && n <= 1000 { filter.Limit = n -- cgit v1.2.3