fix: improve type safety in media item search queries
- Change library_id parameter from interface{} to pgtype.UUID
- Add explicit UUID type casting in SQL queries
- Fix SearchMediaItemsParams to use strongly-typed UUID
- Prevents potential type assertion errors and improves type safety
- Ensures proper NULL handling for optional library_id filter
This commit is contained in:
@@ -6931,7 +6931,7 @@ JOIN libraries l ON mi.library_id = l.id
|
|||||||
JOIN library_types lt ON l.library_type_id = lt.id
|
JOIN library_types lt ON l.library_type_id = lt.id
|
||||||
LEFT JOIN library_visibility lv ON l.id = lv.library_id AND lv.user_id = $1
|
LEFT JOIN library_visibility lv ON l.id = lv.library_id AND lv.user_id = $1
|
||||||
WHERE COALESCE(lv.is_visible, true) = true
|
WHERE COALESCE(lv.is_visible, true) = true
|
||||||
AND ($2 IS NULL OR mi.library_id = $2)
|
AND ($2::uuid IS NULL OR mi.library_id = $2::uuid)
|
||||||
AND (
|
AND (
|
||||||
mi.title ILIKE $3 OR
|
mi.title ILIKE $3 OR
|
||||||
mi.author ILIKE $3 OR
|
mi.author ILIKE $3 OR
|
||||||
@@ -6953,7 +6953,7 @@ LIMIT $5 OFFSET $4
|
|||||||
|
|
||||||
type SearchMediaItemsParams struct {
|
type SearchMediaItemsParams struct {
|
||||||
UserID pgtype.UUID `db:"user_id" json:"user_id"`
|
UserID pgtype.UUID `db:"user_id" json:"user_id"`
|
||||||
LibraryID interface{} `db:"library_id" json:"library_id"`
|
LibraryID pgtype.UUID `db:"library_id" json:"library_id"`
|
||||||
SearchPattern pgtype.Text `db:"search_pattern" json:"search_pattern"`
|
SearchPattern pgtype.Text `db:"search_pattern" json:"search_pattern"`
|
||||||
Offset pgtype.Int4 `db:"offset" json:"offset"`
|
Offset pgtype.Int4 `db:"offset" json:"offset"`
|
||||||
Limit pgtype.Int4 `db:"limit" json:"limit"`
|
Limit pgtype.Int4 `db:"limit" json:"limit"`
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -397,7 +397,7 @@ JOIN libraries l ON mi.library_id = l.id
|
|||||||
JOIN library_types lt ON l.library_type_id = lt.id
|
JOIN library_types lt ON l.library_type_id = lt.id
|
||||||
LEFT JOIN library_visibility lv ON l.id = lv.library_id AND lv.user_id = sqlc.narg('user_id')
|
LEFT JOIN library_visibility lv ON l.id = lv.library_id AND lv.user_id = sqlc.narg('user_id')
|
||||||
WHERE COALESCE(lv.is_visible, true) = true
|
WHERE COALESCE(lv.is_visible, true) = true
|
||||||
AND (sqlc.narg('library_id') IS NULL OR mi.library_id = sqlc.narg('library_id'))
|
AND (sqlc.narg('library_id')::uuid IS NULL OR mi.library_id = sqlc.narg('library_id')::uuid)
|
||||||
AND (
|
AND (
|
||||||
mi.title ILIKE sqlc.narg('search_pattern') OR
|
mi.title ILIKE sqlc.narg('search_pattern') OR
|
||||||
mi.author ILIKE sqlc.narg('search_pattern') OR
|
mi.author ILIKE sqlc.narg('search_pattern') OR
|
||||||
|
|||||||
Reference in New Issue
Block a user