about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/controllers/api/v1/statuses_controller.rb3
-rw-r--r--app/models/status.rb1
-rw-r--r--app/services/update_status_service.rb2
3 files changed, 5 insertions, 1 deletions
diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb
index c928a24de..eaac8e563 100644
--- a/app/controllers/api/v1/statuses_controller.rb
+++ b/app/controllers/api/v1/statuses_controller.rb
@@ -66,7 +66,8 @@ class Api::V1::StatusesController < Api::BaseController
       media_ids: status_params[:media_ids],
       sensitive: status_params[:sensitive],
       spoiler_text: status_params[:spoiler_text],
-      poll: status_params[:poll]
+      poll: status_params[:poll],
+      content_type: status_params[:content_type]
     )
 
     render json: @status, serializer: REST::StatusSerializer
diff --git a/app/models/status.rb b/app/models/status.rb
index e5a0beab6..236f95c1f 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -221,6 +221,7 @@ class Status < ApplicationRecord
       spoiler_text: spoiler_text,
       media_attachments_changed: media_attachments_changed,
       account_id: account_id || self.account_id,
+      content_type: content_type,
       created_at: at_time || edited_at
     )
   end
diff --git a/app/services/update_status_service.rb b/app/services/update_status_service.rb
index 238ef0755..63bd27989 100644
--- a/app/services/update_status_service.rb
+++ b/app/services/update_status_service.rb
@@ -13,6 +13,7 @@ class UpdateStatusService < BaseService
   # @option options [String] :spoiler_text
   # @option options [Boolean] :sensitive
   # @option options [String] :language
+  # @option options [String] :content_type
   def call(status, account_id, options = {})
     @status                    = status
     @options                   = options
@@ -95,6 +96,7 @@ class UpdateStatusService < BaseService
     @status.spoiler_text = @options[:spoiler_text] || ''
     @status.sensitive    = @options[:sensitive] || @options[:spoiler_text].present?
     @status.language     = valid_locale_or_nil(@options[:language] || @status.language || @status.account.user&.preferred_posting_language || I18n.default_locale)
+    @status.content_type = @options[:content_type] || @status.content_type
     @status.edited_at    = Time.now.utc
 
     @status.save!