diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-08-14 21:37:21 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-08-14 21:37:21 +0200 |
commit | 4fcbb1f8385dbcb0ca0e3b6127b75c9485243367 (patch) | |
tree | 3fbd157818d4a6c597d325b0b2dbb7752804e457 /app/lib/ostatus | |
parent | a855956185630742ad670f971337a3ff76fd8b32 (diff) |
Re-add missing transaction around status-from-OStatus creation (#4603)
Diffstat (limited to 'app/lib/ostatus')
-rw-r--r-- | app/lib/ostatus/activity/creation.rb | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/app/lib/ostatus/activity/creation.rb b/app/lib/ostatus/activity/creation.rb index e22f746f2..6ec2cdd56 100644 --- a/app/lib/ostatus/activity/creation.rb +++ b/app/lib/ostatus/activity/creation.rb @@ -16,24 +16,28 @@ class OStatus::Activity::Creation < OStatus::Activity::Base return [status, false] unless status.nil? - status = Status.create!( - uri: id, - url: url, - account: @account, - reblog: reblog, - text: content, - spoiler_text: content_warning, - created_at: published, - reply: thread?, - language: content_language, - visibility: visibility_scope, - conversation: find_or_create_conversation, - thread: thread? ? find_status(thread.first) : nil - ) - - save_mentions(status) - save_hashtags(status) - save_media(status) + cached_reblog = reblog + + ApplicationRecord.transaction do + status = Status.create!( + uri: id, + url: url, + account: @account, + reblog: cached_reblog, + text: content, + spoiler_text: content_warning, + created_at: published, + reply: thread?, + language: content_language, + visibility: visibility_scope, + conversation: find_or_create_conversation, + thread: thread? ? find_status(thread.first) : nil + ) + + save_mentions(status) + save_hashtags(status) + save_media(status) + end if thread? && status.thread.nil? Rails.logger.debug "Trying to attach #{status.id} (#{id}) to #{thread.first}" |