module LocalPac module App class LookupController < ApplicationController get '/' do redirect to('/proxy.pac') end get '/:name' do haml :lookup, layout: :application end post '/:name' do @file = local_storage.find(params[:name].to_s) @uri = Addressable::URI.heuristic_parse(params[:url].to_s) if @file.nil? fail Sinatra::NotFound, params[:name] else parser = LocalPac::ProxyPac::PacParser.new(file: @file) begin @result = parser.find(@uri) rescue Exceptions::PacFileInvalid fail I18n.t('errors.invalid_proxy_pac', name: params[:name] ) end end haml :lookup_result, layout: :application end end end end