Module: ZendeskAPI::Server::Helper
- Defined in:
- lib/zendesk_api/server/helper.rb
Instance Method Summary (collapse)
- - (Object) client(params = params)
- - (Object) coerce_path(path)
- - (Object) execute_request
- - (Object) full_url
- - (Object) get_response
- - (Object) map_headers(headers)
- - (Object) set_request(request)
- - (Object) set_response(response)
Instance Method Details
- (Object) client(params = params)
98 99 100 101 102 103 104 105 106 |
# File 'lib/zendesk_api/server/helper.rb', line 98 def client(params = params) @client ||= ZendeskAPI::Client.new do |c| params.each do |key, value| c.send("#{key}=", value) end c.allow_http = App.development? end end |
- (Object) coerce_path(path)
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/zendesk_api/server/helper.rb', line 7 def coerce_path(path) if path =~ %r{(https?://)?(\w+)(\.zendesk\.com)?(/api/v2)?/(.*)} if $1 == "http://" @error = "Please enter a valid https URL" path elsif !$2 || $2.empty? @error = "Please enter a valid subdomain" path else params["url"] = "https://#{$2}.zendesk.com/api/v2" $5 end else @error = "Please enter a valid URL" path end end |
- (Object) execute_request
25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/zendesk_api/server/helper.rb', line 25 def execute_request unless @method && client.connection.respond_to?(@method) @error = "The input you entered was invalid" return end begin response = get_response rescue Faraday::Error::ConnectionFailed => e @error = "The connection failed" rescue Faraday::Error::ClientError => e set_response(e.response) if e.response rescue JSON::ParserError @error = "The JSON you attempted to send was invalid" rescue URI::InvalidURIError, ArgumentError @error = "Please enter a valid URL" else set_response(:body => response.body, :headers => response.env[:response_headers], :status => response.env[:status]) end end |
- (Object) full_url
3 4 5 |
# File 'lib/zendesk_api/server/helper.rb', line 3 def full_url [params["url"], @path].compact.join("/") end |
- (Object) get_response
48 49 50 51 52 53 54 55 56 57 58 59 60 |
# File 'lib/zendesk_api/server/helper.rb', line 48 def get_response client.connection.send(@method, @path) do |request| request.params = @url_params.inject({}) do |accum, h| accum.merge(h["name"] => h["value"]) end if @method != :get && @json && !@json.empty? request.body = JSON.parse(@json) end set_request(request.to_env(client.connection)) end end |
- (Object) map_headers(headers)
62 63 64 65 66 67 |
# File 'lib/zendesk_api/server/helper.rb', line 62 def map_headers(headers) headers.map do |k,v| name = k.split("-").map(&:capitalize).join("-") "#{name}: #{v}" end.join("\n") end |
- (Object) set_request(request)
69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# File 'lib/zendesk_api/server/helper.rb', line 69 def set_request(request) @html_request = <<-END HTTP/1.1 #{@method.to_s.upcase} #{request[:url]} #{map_headers(request[:request_headers])} END request_headers = request[:request_headers].dup request_headers.delete("Authorization") @user_request_hash = { :url => request[:url].to_s, :request_headers => request_headers } if @method != :get && @json && !@json.empty? parsed_json = CodeRay.scan(@json, :json).span @html_request << "\n\n#{parsed_json}" end end |
- (Object) set_response(response)
86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/zendesk_api/server/helper.rb', line 86 def set_response(response) @html_response =<<-END HTTP/1.1 #{response[:status]} #{map_headers(response[:headers])} #{CodeRay.scan(JSON.pretty_generate(response[:body]), :json).span} END @user_response_hash = { :status => response[:status], :headers => response[:headers], :body => response[:body] } end |