]> cat aescling's git repositories - mastodon.git/commitdiff
Re-add missing transaction around status-from-OStatus creation (#4603)
authorEugen Rochko <eugen@zeonfederated.com>
Mon, 14 Aug 2017 19:37:21 +0000 (21:37 +0200)
committerGitHub <noreply@github.com>
Mon, 14 Aug 2017 19:37:21 +0000 (21:37 +0200)
app/lib/ostatus/activity/creation.rb

index e22f746f2c839b538215b2986a3ed1c391980745..6ec2cdd561a3d66a34fa511100a295234682f13c 100644 (file)
@@ -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}"