Class: Shugoi::RenderEndpoint

Inherits:
Object
  • Object
show all
Defined in:
lib/shugoi/render_endpoint.rb

Instance Method Summary collapse

Constructor Details

#initialize(renderer, pow) ⇒ RenderEndpoint

Returns a new instance of RenderEndpoint.



5
6
7
8
# File 'lib/shugoi/render_endpoint.rb', line 5

def initialize(renderer, pow)
  @renderer = renderer
  @pow = pow
end

Instance Method Details

#call(env, query) ⇒ Object



10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/shugoi/render_endpoint.rb', line 10

def call(env, query)
  ip = (env["HTTP_X_FORWARDED_FOR"].to_s.split(",")[0] || "").strip
  ip = env["REMOTE_ADDR"].to_s if ip.empty?
  data = @renderer.render_data(query["token"].to_s, query["mid"].to_s, query["grant"].to_s, ip)
  headers = { "content-type" => "application/json" }
  if data[:html]
    data[:html] = RenderHandler.inject_referrer_policy(data[:html])
    headers.merge!("referrer-policy" => "strict-origin-when-cross-origin",
                   "cache-control" => "no-store, no-cache, must-revalidate, no-transform",
                   "pragma" => "no-cache", "set-cookie" => @pow.sg_authorized_cookie)
  end
  [200, headers, [JSON.generate(data)]]
end