From 65e13cfacf0d1a862fbc4da44ad84b1522b01b34 Mon Sep 17 00:00:00 2001 From: ThibG Date: Mon, 4 Nov 2019 13:02:01 +0100 Subject: Add abilityto add oneself to lists (#12271) * Add ability to add oneself to lists * Change search results to include oneself when searching through followers * Mark follow relation as optional in ListAccount --- app/models/account.rb | 4 +++- app/models/list_account.rb | 6 +++--- app/services/account_search_service.rb | 2 +- 3 files changed, 7 insertions(+), 5 deletions(-) (limited to 'app') diff --git a/app/models/account.rb b/app/models/account.rb index 05936def3..cae82da16 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -429,6 +429,8 @@ class Account < ApplicationRecord SELECT target_account_id FROM follows WHERE account_id = ? + UNION ALL + SELECT ? ) SELECT accounts.*, @@ -444,7 +446,7 @@ class Account < ApplicationRecord LIMIT ? OFFSET ? SQL - records = find_by_sql([sql, account.id, account.id, account.id, limit, offset]) + records = find_by_sql([sql, account.id, account.id, account.id, account.id, limit, offset]) else sql = <<-SQL.squish SELECT diff --git a/app/models/list_account.rb b/app/models/list_account.rb index 87b498224..785923c4c 100644 --- a/app/models/list_account.rb +++ b/app/models/list_account.rb @@ -6,13 +6,13 @@ # id :bigint(8) not null, primary key # list_id :bigint(8) not null # account_id :bigint(8) not null -# follow_id :bigint(8) not null +# follow_id :bigint(8) # class ListAccount < ApplicationRecord belongs_to :list belongs_to :account - belongs_to :follow + belongs_to :follow, optional: true validates :account_id, uniqueness: { scope: :list_id } @@ -21,6 +21,6 @@ class ListAccount < ApplicationRecord private def set_follow - self.follow = Follow.find_by(account_id: list.account_id, target_account_id: account.id) + self.follow = Follow.find_by!(account_id: list.account_id, target_account_id: account.id) unless list.account_id == account.id end end diff --git a/app/services/account_search_service.rb b/app/services/account_search_service.rb index 40c5f8590..7e74cc893 100644 --- a/app/services/account_search_service.rb +++ b/app/services/account_search_service.rb @@ -127,7 +127,7 @@ class AccountSearchService < BaseService end def following_ids - @following_ids ||= account.active_relationships.pluck(:target_account_id) + @following_ids ||= account.active_relationships.pluck(:target_account_id) + [account.id] end def limit_for_non_exact_results -- cgit