diff --git a/app/controllers/api/v1/statuses_controller.rb b/app/controllers/api/v1/statuses_controller.rb index c928a24def..eaac8e5636 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 e5a0beab6e..236f95c1f7 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 238ef07556..63bd279891 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!