Skip to content

Commit

Permalink
Add a preferences API so apps can share basic behaviours (mastodon#10109
Browse files Browse the repository at this point in the history
)
  • Loading branch information
Gargron authored Mar 15, 2019
1 parent 2f4d7ab commit 7264773
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 0 deletions.
12 changes: 12 additions & 0 deletions app/controllers/api/v1/preferences_controller.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# frozen_string_literal: true

class Api::V1::PreferencesController < Api::BaseController
before_action -> { doorkeeper_authorize! :read, :'read:accounts' }
before_action :require_user!

respond_to :json

def index
render json: current_account, serializer: REST::PreferencesSerializer
end
end
30 changes: 30 additions & 0 deletions app/serializers/rest/preferences_serializer.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# frozen_string_literal: true

class REST::PreferencesSerializer < ActiveModel::Serializer
attribute :posting_default_privacy, key: 'posting:default:visibility'
attribute :posting_default_sensitive, key: 'posting:default:sensitive'
attribute :posting_default_language, key: 'posting:default:language'

attribute :reading_default_sensitive_media, key: 'reading:expand:media'
attribute :reading_default_sensitive_text, key: 'reading:expand:spoilers'

def posting_default_privacy
object.user.setting_default_privacy
end

def posting_default_sensitive
object.user.setting_default_sensitive
end

def posting_default_language
object.user.setting_default_language.presence
end

def reading_default_sensitive_media
object.user.setting_display_media
end

def reading_default_sensitive_text
object.user.setting_expand_spoilers
end
end
1 change: 1 addition & 0 deletions config/routes.rb
Original file line number Diff line number Diff line change
Expand Up @@ -286,6 +286,7 @@
resources :custom_emojis, only: [:index]
resources :suggestions, only: [:index, :destroy]
resources :scheduled_statuses, only: [:index, :show, :update, :destroy]
resources :preferences, only: [:index]

resources :conversations, only: [:index, :destroy] do
member do
Expand Down

0 comments on commit 7264773

Please sign in to comment.