Class: ArcgisServerRestProxy

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

Instance Method Summary collapse

Instance Method Details

#call(env) ⇒ Object



5
6
7
# File 'lib/arcgis_server_rest_proxy.rb', line 5

def call(env)    
  call_proxy!(Rack::Request.new(env))
end

#call_proxy!(request) ⇒ Object



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

def call_proxy!(request)
  url = request.params.delete('url')
  proxy_response = HTTParty.get(url, :query => { :f => :json })
  response = Rack::Response.new(proxy_response.body, proxy_response.code, {})
  # HTTParty returns request headers in lowercase
  if proxy_response.code == 200
    if proxy_response.headers['cache-control']
      response.headers['Cache-Control'] = proxy_response.headers['cache-control'].to_s.sub(/private/, 'public')
    else
      response.headers['Cache-Control'] = "public, max-age=#{1.day}"
    end
  end
  response.to_a
end