def serve_results(env)
request = Rack::Request.new(env)
id = request[:id]
page_struct = @storage.load(id)
unless page_struct
@storage.set_viewed(user(env), id)
id = ERB::Util.html_escape(request['id'])
user_info = ERB::Util.html_escape(user(env))
return [404, {}, ["Request not found: #{id} - user #{user_info}"]]
end
unless page_struct[:has_user_viewed]
page_struct[:client_timings] = TimerStruct::Client.init_from_form_data(env, page_struct)
page_struct[:has_user_viewed] = true
@storage.save(page_struct)
@storage.set_viewed(user(env), id)
end
if request.xhr?
result_json = page_struct.to_json
[200, { 'Content-Type' => 'application/json'}, [result_json]]
else
html = generate_html(page_struct, env)
[200, {'Content-Type' => 'text/html'}, [html]]
end
end