logo

mastofe

My custom branche(s) on git.pleroma.social/pleroma/mastofe
commit: 44cb08297c4fd992f3438b8cac99e1364edd4847
parent: bd21afb5edf58a2ce93d0d61ac5ccbada5d857da
Author: Eugen Rochko <eugen@zeonfederated.com>
Date:   Sat, 27 May 2017 00:53:38 +0200

Fix some nil errors (#3338)

* Fix nil input not handled well in AuthorExtractor concern

* Fix hard error in ProcessFeedService when replied-to status has been deleted

* Fix nil errors in ProcessInteractionService when favourited status
cannot be found

Diffstat:

Mapp/services/concerns/author_extractor.rb2++
Mapp/services/process_feed_service.rb2+-
Mapp/services/process_interaction_service.rb6++++++
3 files changed, 9 insertions(+), 1 deletion(-)

diff --git a/app/services/concerns/author_extractor.rb b/app/services/concerns/author_extractor.rb @@ -2,6 +2,8 @@ module AuthorExtractor def author_from_xml(xml) + return nil if xml.nil? + # Try <email> for acct acct = xml.at_xpath('./xmlns:author/xmlns:email', xmlns: TagManager::XMLNS)&.content diff --git a/app/services/process_feed_service.rb b/app/services/process_feed_service.rb @@ -189,7 +189,7 @@ class ProcessFeedService < BaseService def find_status(uri) if TagManager.instance.local_id?(uri) local_id = TagManager.instance.unique_tag_to_local_id(uri, 'Status') - return Status.find(local_id) + return Status.find_by(id: local_id) end Status.find_by(uri: uri) diff --git a/app/services/process_interaction_service.rb b/app/services/process_interaction_service.rb @@ -108,12 +108,18 @@ class ProcessInteractionService < BaseService def favourite!(xml, from_account) current_status = status(xml) + + return if current_status.nil? + favourite = current_status.favourites.where(account: from_account).first_or_create!(account: from_account) NotifyService.new.call(current_status.account, favourite) end def unfavourite!(xml, from_account) current_status = status(xml) + + return if current_status.nil? + favourite = current_status.favourites.where(account: from_account).first favourite&.destroy end