The code powering m.abunchtell.com https://m.abunchtell.com
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

50 rivejä
1.6 KiB

  1. # frozen_string_literal: true
  2. class InitialStateSerializer < ActiveModel::Serializer
  3. attributes :meta, :compose, :accounts,
  4. :media_attachments, :settings
  5. def meta
  6. store = {
  7. streaming_api_base_url: Rails.configuration.x.streaming_api_base_url,
  8. access_token: object.token,
  9. locale: I18n.locale,
  10. domain: Rails.configuration.x.local_domain,
  11. admin: object.admin&.id,
  12. }
  13. if object.current_account
  14. store[:me] = object.current_account.id
  15. store[:boost_modal] = object.current_account.user.setting_boost_modal
  16. store[:delete_modal] = object.current_account.user.setting_delete_modal
  17. store[:auto_play_gif] = object.current_account.user.setting_auto_play_gif
  18. store[:system_font_ui] = object.current_account.user.setting_system_font_ui
  19. end
  20. store
  21. end
  22. def compose
  23. store = {}
  24. if object.current_account
  25. store[:me] = object.current_account.id
  26. store[:default_privacy] = object.current_account.user.setting_default_privacy
  27. store[:default_sensitive] = object.current_account.user.setting_default_sensitive
  28. end
  29. store
  30. end
  31. def accounts
  32. store = {}
  33. store[object.current_account.id] = ActiveModelSerializers::SerializableResource.new(object.current_account, serializer: REST::AccountSerializer) if object.current_account
  34. store[object.admin.id] = ActiveModelSerializers::SerializableResource.new(object.admin, serializer: REST::AccountSerializer) if object.admin
  35. store
  36. end
  37. def media_attachments
  38. { accept_content_types: MediaAttachment::IMAGE_MIME_TYPES + MediaAttachment::VIDEO_MIME_TYPES }
  39. end
  40. end