Module: Karatekit::Connection
Overview
Network layer for API clients.
Constant Summary collapse
- CONVENIENCE_HEADERS =
Set.new([:accept, :content_type])
Instance Method Summary collapse
-
#agent ⇒ Sawyer::Agent
Hypermedia agent for the kampfsport.center API.
-
#delete(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP DELETE request.
-
#get(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP GET request.
-
#head(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP HEAD request.
-
#last_response ⇒ Sawyer::Response
Response for last HTTP request.
-
#paginate(url, options = {}, &block) ⇒ Sawyer::Resource
Make one or more HTTP GET requests, optionally fetching the next page of results from URL in Link response header based on value in Karatekit::Configurable#auto_paginate.
-
#patch(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP PATCH request.
-
#post(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP POST request.
-
#put(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP PUT request.
-
#root ⇒ Sawyer::Resource
Fetch the root resource for the API.
Methods included from Authentication
Instance Method Details
#agent ⇒ Sawyer::Agent
Hypermedia agent for the kampfsport.center API
104 105 106 107 108 109 110 111 |
# File 'lib/karatekit/connection.rb', line 104 def agent @agent ||= Sawyer::Agent.new(endpoint, ) do |http| http.headers[:accept] = default_media_type http.headers[:content_type] = "application/json" http.headers[:user_agent] = user_agent http. 'Token', @access_token end end |
#delete(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP DELETE request
54 55 56 |
# File 'lib/karatekit/connection.rb', line 54 def delete(url, = {}) request :delete, url, end |
#get(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP GET request
18 19 20 |
# File 'lib/karatekit/connection.rb', line 18 def get(url, = {}) request :get, url, parse_query_and_convenience_headers() end |
#head(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP HEAD request
63 64 65 |
# File 'lib/karatekit/connection.rb', line 63 def head(url, = {}) request :head, url, parse_query_and_convenience_headers() end |
#last_response ⇒ Sawyer::Response
Response for last HTTP request
123 124 125 |
# File 'lib/karatekit/connection.rb', line 123 def last_response @last_response if defined? @last_response end |
#paginate(url, options = {}, &block) ⇒ Sawyer::Resource
Make one or more HTTP GET requests, optionally fetching the next page of results from URL in Link response header based on value in Karatekit::Configurable#auto_paginate.
78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/karatekit/connection.rb', line 78 def paginate(url, = {}, &block) opts = parse_query_and_convenience_headers() if @auto_paginate || @per_page opts[:query][:per_page] ||= @per_page || (@auto_paginate ? 100 : nil) end data = request(:get, url, opts.dup) if @auto_paginate while @last_response.rels[:next] && rate_limit.remaining > 0 @last_response = @last_response.rels[:next].get(:headers => opts[:headers]) if block_given? yield(data, @last_response) else data.concat(@last_response.data) if @last_response.data.is_a?(Array) end end end data end |
#patch(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP PATCH request
45 46 47 |
# File 'lib/karatekit/connection.rb', line 45 def patch(url, = {}) request :patch, url, end |
#post(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP POST request
27 28 29 |
# File 'lib/karatekit/connection.rb', line 27 def post(url, = {}) request :post, url, end |
#put(url, options = {}) ⇒ Sawyer::Resource
Make a HTTP PUT request
36 37 38 |
# File 'lib/karatekit/connection.rb', line 36 def put(url, = {}) request :put, url, end |
#root ⇒ Sawyer::Resource
Fetch the root resource for the API
116 117 118 |
# File 'lib/karatekit/connection.rb', line 116 def root get "/" end |