about summary refs log tree commit diff
path: root/app/serializers
diff options
context:
space:
mode:
authormultiple creatures <dev@multiple-creature.party>2020-01-11 02:41:35 -0600
committermultiple creatures <dev@multiple-creature.party>2020-01-11 02:41:35 -0600
commitff67dbed2b2878ba0d8032bdde08e06bc0eead3e (patch)
tree805919a162596e67dc8803f9db7892eefc289ea4 /app/serializers
parentd9a9a18afae94ec0a2160e746265e47d7b639eaf (diff)
pass monsterfork api exposure setting to all serializers + add `MONSTERFORK_API_FORCE_*` env vars to set api compatability modes for clients/apps
Diffstat (limited to 'app/serializers')
-rw-r--r--app/serializers/rest/account_serializer.rb6
-rw-r--r--app/serializers/rest/status_serializer.rb8
2 files changed, 13 insertions, 1 deletions
diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb
index 54308af1b..a8b905b16 100644
--- a/app/serializers/rest/account_serializer.rb
+++ b/app/serializers/rest/account_serializer.rb
@@ -87,4 +87,10 @@ class REST::AccountSerializer < ActiveModel::Serializer
     return if name.blank?
     object.user.vars["_they:are:#{name}"]
   end
+
+  private
+
+  def monsterfork_api
+    instance_options[:monsterfork_api] || !current_user.nil? && current_user.monsterfork_api.to_sym
+  end
 end
diff --git a/app/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb
index 88581471b..8e322b5ec 100644
--- a/app/serializers/rest/status_serializer.rb
+++ b/app/serializers/rest/status_serializer.rb
@@ -72,7 +72,7 @@ class REST::StatusSerializer < ActiveModel::Serializer
   def visibility
     if object.limited_visibility?
       'private'
-    elsif current_user? && current_user.monsterfork_api != 'full' && object.local_visibility?
+    elsif monsterfork_api == :full && object.local_visibility?
       'unlisted'
     else
       object.visibility
@@ -191,4 +191,10 @@ class REST::StatusSerializer < ActiveModel::Serializer
       tag_url(object)
     end
   end
+
+  private
+
+  def monsterfork_api
+    instance_options[:monsterfork_api] || current_user? && current_user.monsterfork_api.to_sym
+  end
 end