about summary refs log tree commit diff
path: root/app/lib/inline_renderer.rb
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-07-07 04:02:06 +0200
committerGitHub <noreply@github.com>2017-07-07 04:02:06 +0200
commit8b2cad56374b2dbb6e7a445e7917810935c45536 (patch)
treebebba9b1e98d599b3caa249a8d98fad0cfd70437 /app/lib/inline_renderer.rb
parent2d6128672fcadeb29c99551a33648b4880969d22 (diff)
Refactor JSON templates to be generated with ActiveModelSerializers instead of Rabl (#4090)
Diffstat (limited to 'app/lib/inline_renderer.rb')
-rw-r--r--app/lib/inline_renderer.rb36
1 files changed, 28 insertions, 8 deletions
diff --git a/app/lib/inline_renderer.rb b/app/lib/inline_renderer.rb
index 8e04ad1d5..7cd9758ec 100644
--- a/app/lib/inline_renderer.rb
+++ b/app/lib/inline_renderer.rb
@@ -1,13 +1,33 @@
 # frozen_string_literal: true
 
 class InlineRenderer
-  def self.render(status, current_account, template)
-    Rabl::Renderer.new(
-      template,
-      status,
-      view_path: 'app/views',
-      format: :json,
-      scope: InlineRablScope.new(current_account)
-    ).render
+  def initialize(object, current_account, template)
+    @object          = object
+    @current_account = current_account
+    @template        = template
+  end
+
+  def render
+    case @template
+    when :status
+      serializer = REST::StatusSerializer
+    when :notification
+      serializer = REST::NotificationSerializer
+    else
+      return
+    end
+
+    serializable_resource = ActiveModelSerializers::SerializableResource.new(@object, serializer: serializer, scope: current_user, scope_name: :current_user)
+    serializable_resource.as_json
+  end
+
+  def self.render(object, current_account, template)
+    new(object, current_account, template).render
+  end
+
+  private
+
+  def current_user
+    @current_account&.user
   end
 end