From 4c6fa7b979301204d76f2bb40062bd2cb200ecd9 Mon Sep 17 00:00:00 2001 From: Jay Varner Date: Wed, 3 Sep 2025 18:51:21 -0400 Subject: [PATCH 1/2] Filter private repos on entity view --- app/controllers/entities_controller.rb | 2 +- app/models/published_entity.rb | 4 +++- app/views/entities/letters.json.jbuilder | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/app/controllers/entities_controller.rb b/app/controllers/entities_controller.rb index 14787c7..d756851 100644 --- a/app/controllers/entities_controller.rb +++ b/app/controllers/entities_controller.rb @@ -36,7 +36,7 @@ def show @entity = if request.host.include?('beckettapi') Entity.find(params[:id]) else - Entity.published.find(params[:id]) + PublishedEntity.find(params[:id]) end render end diff --git a/app/models/published_entity.rb b/app/models/published_entity.rb index 2b00d75..f74deb5 100644 --- a/app/models/published_entity.rb +++ b/app/models/published_entity.rb @@ -1,11 +1,13 @@ # frozen_string_literal: true -class PublishedEntity < ApplicationRecord +class PublishedEntity < Entity include EntityCommon include Searchable self.table_name = 'entities' + has_many :letters, -> { where(published: true).order('letters.date') }, through: :mentions, source: :letter + def self.default_scope where(published: true) end diff --git a/app/views/entities/letters.json.jbuilder b/app/views/entities/letters.json.jbuilder index 5c6f5de..3df1992 100644 --- a/app/views/entities/letters.json.jbuilder +++ b/app/views/entities/letters.json.jbuilder @@ -5,12 +5,12 @@ json.set! 'max_date', @max_date&.strftime('%Y-%m-%d') json.set! 'total_pages', @letters.total_pages json.letters do - @letters.each do |letter| + @letters.select(&:published).each do |letter| json.child! do json.set! 'id', letter.id json.set! 'label', letter.label json.set! 'recipient', letter.recipients.map(&:label).to_sentence - json.set! 'repository', letter.repositories.map(&:label).to_sentence + json.set! 'repository', letter.repositories.select(&:published).map(&:label).to_sentence json.set! 'date', letter.date&.strftime('%d %B %Y') next unless @relation == 'mention' From 2cb9116abbbb1fb40e3f1bef5e40d0dccf178d74 Mon Sep 17 00:00:00 2001 From: Jay Varner Date: Thu, 4 Sep 2025 09:19:46 -0400 Subject: [PATCH 2/2] Revert some changes --- app/controllers/entities_controller.rb | 4 ++-- app/models/published_entity.rb | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/app/controllers/entities_controller.rb b/app/controllers/entities_controller.rb index d756851..ef5d5c2 100644 --- a/app/controllers/entities_controller.rb +++ b/app/controllers/entities_controller.rb @@ -36,14 +36,14 @@ def show @entity = if request.host.include?('beckettapi') Entity.find(params[:id]) else - PublishedEntity.find(params[:id]) + Entity.published.find(params[:id]) end render end # GET /entities/autocomplete?search=* def autocomplete - query = strip_tags params[:searcn] + query = strip_tags params[:search] render json: Entity.search( query, fields: [:clean_label], diff --git a/app/models/published_entity.rb b/app/models/published_entity.rb index f74deb5..38d2b50 100644 --- a/app/models/published_entity.rb +++ b/app/models/published_entity.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class PublishedEntity < Entity +class PublishedEntity < ApplicationRecord include EntityCommon include Searchable