commit: 8fe36654efff73cb9b6800f7d1a57e6466f2ded3
parent: 8ee1af95306e4016644ddfd257929eb61851d8fa
Author: Keiji, Yoshimi <walf443@gmail.com>
Date: Wed, 26 Apr 2017 10:47:44 +0900
attach_media should be in transaction of creation status (#2426)
Diffstat:
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb
@@ -20,15 +20,17 @@ class PostStatusService < BaseService
end
media = validate_media!(options[:media_ids])
- status = account.statuses.create!(text: text,
- thread: in_reply_to,
- sensitive: options[:sensitive],
- spoiler_text: options[:spoiler_text] || '',
- visibility: options[:visibility],
- language: detect_language_for(text, account),
- application: options[:application])
-
- attach_media(status, media)
+ status = nil
+ ApplicationRecord.transaction do
+ status = account.statuses.create!(text: text,
+ thread: in_reply_to,
+ sensitive: options[:sensitive],
+ spoiler_text: options[:spoiler_text] || '',
+ visibility: options[:visibility],
+ language: detect_language_for(text, account),
+ application: options[:application])
+ attach_media(status, media)
+ end
process_mentions_service.call(status)
process_hashtags_service.call(status)