forked from DebaucheryLibrarian/traxxx
Moved tag filter modes to postgres function.
This commit is contained in:
@@ -857,7 +857,7 @@ exports.up = knex => Promise.resolve()
|
||||
ORDER BY tags.name;
|
||||
$$ LANGUAGE SQL STABLE;
|
||||
|
||||
CREATE FUNCTION actors_scenes(actor actors, selected_tags text[]) RETURNS SETOF releases AS $$
|
||||
CREATE FUNCTION actors_scenes(actor actors, selected_tags text[], mode text DEFAULT 'all') RETURNS SETOF releases AS $$
|
||||
SELECT releases.*
|
||||
FROM releases
|
||||
LEFT JOIN
|
||||
@@ -869,10 +869,15 @@ exports.up = knex => Promise.resolve()
|
||||
LEFT JOIN
|
||||
tags ON tags.id = releases_tags.tag_id
|
||||
WHERE actors.id = actor.id
|
||||
AND CASE
|
||||
WHEN mode = 'any' AND array_length(selected_tags, 1) > 0
|
||||
THEN tags.slug = ANY(selected_tags)
|
||||
ELSE true
|
||||
END
|
||||
GROUP BY releases.id
|
||||
HAVING CASE
|
||||
WHEN array_length(selected_tags, 1) > 0
|
||||
THEN COUNT(
|
||||
WHEN mode = 'all' AND array_length(selected_tags, 1) > 0
|
||||
THEN COUNT(
|
||||
CASE WHEN tags.slug = ANY(selected_tags)
|
||||
THEN true
|
||||
END
|
||||
|
||||
Reference in New Issue
Block a user