diff options
author | ThibG <thib@sitedethib.com> | 2019-03-16 17:10:27 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-03-16 17:10:27 +0100 |
commit | 6af2300454c960ef83f7b7d31e9b829e0d5a8e38 (patch) | |
tree | 97325ab7ad5a572170637da7a72ba72b7231a02f /app/services/post_status_service.rb | |
parent | c2fa0f7c40bcc4064e8baaa221665eadd391c001 (diff) | |
parent | 0fbe90e2d3cfc2c5d1fd12ea564daa52a83ec0ac (diff) |
Merge pull request #961 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/services/post_status_service.rb')
-rw-r--r-- | app/services/post_status_service.rb | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/app/services/post_status_service.rb b/app/services/post_status_service.rb index b9952369d..820c553c9 100644 --- a/app/services/post_status_service.rb +++ b/app/services/post_status_service.rb @@ -29,7 +29,6 @@ class PostStatusService < BaseService return idempotency_duplicate if idempotency_given? && idempotency_duplicate? validate_media! - validate_poll! preprocess_attributes! if scheduled? @@ -74,6 +73,7 @@ class PostStatusService < BaseService def schedule_status! status_for_validation = @account.statuses.build(status_attributes) + if status_for_validation.valid? status_for_validation.destroy @@ -110,12 +110,6 @@ class PostStatusService < BaseService raise Mastodon::ValidationError, I18n.t('media_attachments.validations.images_and_video') if @media.size > 1 && @media.find(&:video?) end - def validate_poll! - return if @options[:poll].blank? - - @poll = @account.polls.new(@options[:poll]) - end - def language_from_option(str) ISO_639.find(str)&.alpha2 end @@ -168,13 +162,13 @@ class PostStatusService < BaseService text: @text, media_attachments: @media || [], thread: @in_reply_to, - owned_poll: @poll, + owned_poll_attributes: poll_attributes, sensitive: (@options[:sensitive].nil? ? @account.user&.setting_default_sensitive : @options[:sensitive]) || @options[:spoiler_text].present?, spoiler_text: @options[:spoiler_text] || '', visibility: @visibility, language: language_from_option(@options[:language]) || @account.user&.setting_default_language&.presence || LanguageDetector.instance.detect(@text, @account), application: @options[:application], - } + }.compact end def scheduled_status_attributes @@ -185,6 +179,12 @@ class PostStatusService < BaseService } end + def poll_attributes + return if @options[:poll].blank? + + @options[:poll].merge(account: @account) + end + def scheduled_options @options.tap do |options_hash| options_hash[:in_reply_to_id] = options_hash.delete(:thread)&.id |