From 0ff94f88c2282e64426bfa49e733672eac3841e8 Mon Sep 17 00:00:00 2001 From: Noah Durbin <13364668+noahdurbin@users.noreply.github.com> Date: Thu, 12 Sep 2024 18:56:35 -0600 Subject: [PATCH] feaat: top 5 links can now filter by multiple links --- app/controllers/api/v1/links_controller.rb | 6 +++++- dump.rdb | Bin 566 -> 566 bytes spec/requests/api/v1/links_request_spec.rb | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/v1/links_controller.rb b/app/controllers/api/v1/links_controller.rb index 2092d93..41ddf4b 100644 --- a/app/controllers/api/v1/links_controller.rb +++ b/app/controllers/api/v1/links_controller.rb @@ -29,7 +29,11 @@ def show def top_links query = Link.where(private: false).order(click_count: :desc).limit(5) - query = query.joins(:tags).where(tags: { name: params[:tag] }) if params[:tag].present? + if params[:tag].present? + tags = params[:tag].split(',').map(&:strip) + query = query.joins(:tags).where(tags: { name: tags }) + query = query.group('links.id').having('COUNT(DISTINCT tags.id) = ?', tags.size) + end links = query.distinct diff --git a/dump.rdb b/dump.rdb index 6bdd47bae0b282e4db13f3dcb4f4e8f07e24fa0d..bb50ed93845da2763191f5348c3e7a720d794b9b 100644 GIT binary patch delta 22 ecmdnSvW;be0n`4TjYfYMIWBL~d1522^8x^9$q8xz delta 22 ecmdnSvW;be0n