diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2017-07-08 14:51:05 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-08 14:51:05 +0200 |
commit | 864e3f8d9ca652e10a28bddbb0d0df629d2849d4 (patch) | |
tree | 3fb2f9c97fca49cc467622ab532252f8044146f6 /app/serializers/initial_state_serializer.rb | |
parent | 102466ac5842b20f32a9c5e2fa3f35414c34574b (diff) |
Replace OEmbed and initial state Rabl templates with serializers (#4110)
* Replace OEmbed Rabl template with serializer * Replace initial state rabl with serializer
Diffstat (limited to 'app/serializers/initial_state_serializer.rb')
-rw-r--r-- | app/serializers/initial_state_serializer.rb | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb new file mode 100644 index 000000000..84f9e23a6 --- /dev/null +++ b/app/serializers/initial_state_serializer.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +class InitialStateSerializer < ActiveModel::Serializer + attributes :meta, :compose, :accounts, + :media_attachments, :settings + + def meta + { + streaming_api_base_url: Rails.configuration.x.streaming_api_base_url, + access_token: object.token, + locale: I18n.locale, + domain: Rails.configuration.x.local_domain, + me: object.current_account.id, + admin: object.admin&.id, + boost_modal: object.current_account.user.setting_boost_modal, + delete_modal: object.current_account.user.setting_delete_modal, + auto_play_gif: object.current_account.user.setting_auto_play_gif, + system_font_ui: object.current_account.user.setting_system_font_ui, + } + end + + def compose + { + me: object.current_account.id, + default_privacy: object.current_account.user.setting_default_privacy, + } + end + + def accounts + store = {} + store[object.current_account.id] = ActiveModelSerializers::SerializableResource.new(object.current_account, serializer: REST::AccountSerializer) + store[object.admin.id] = ActiveModelSerializers::SerializableResource.new(object.admin, serializer: REST::AccountSerializer) unless object.admin.nil? + store + end + + def media_attachments + { accept_content_types: MediaAttachment::IMAGE_MIME_TYPES + MediaAttachment::VIDEO_MIME_TYPES } + end +end |