Class: Immobilienscout24::Api::Request::Base
- Inherits:
-
Object
- Object
- Immobilienscout24::Api::Request::Base
- Defined in:
- lib/immobilienscout24/api/request/base.rb
Instance Attribute Summary collapse
-
#configuration ⇒ Object
readonly
Returns the value of attribute configuration.
-
#request ⇒ Object
readonly
Returns the value of attribute request.
Instance Method Summary collapse
- #configure ⇒ Object
- #configure_get_request ⇒ Object
- #configure_multipart_request ⇒ Object
- #configure_post_request ⇒ Object
- #content_type ⇒ Object
- #extension ⇒ Object
- #get? ⇒ Boolean
-
#initialize(request, configuration = {}) ⇒ Base
constructor
A new instance of Base.
- #multipart? ⇒ Boolean
- #path ⇒ Object
- #prepared_multipart_data ⇒ Object
- #raw_request? ⇒ Boolean
- #request_data ⇒ Object
- #request_method ⇒ Object
- #request_options ⇒ Object
- #serialized_data(data) ⇒ Object
- #set_accept_header ⇒ Object
- #set_content_type ⇒ Object
Constructor Details
#initialize(request, configuration = {}) ⇒ Base
Returns a new instance of Base.
10 11 12 13 |
# File 'lib/immobilienscout24/api/request/base.rb', line 10 def initialize(request, configuration = {}) @request = request @configuration = configuration end |
Instance Attribute Details
#configuration ⇒ Object (readonly)
Returns the value of attribute configuration.
8 9 10 |
# File 'lib/immobilienscout24/api/request/base.rb', line 8 def configuration @configuration end |
#request ⇒ Object (readonly)
Returns the value of attribute request.
7 8 9 |
# File 'lib/immobilienscout24/api/request/base.rb', line 7 def request @request end |
Instance Method Details
#configure ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/immobilienscout24/api/request/base.rb', line 27 def configure set_accept_header return configure_multipart_request if multipart? set_content_type return configure_get_request if get? configure_post_request end |
#configure_get_request ⇒ Object
52 53 54 55 |
# File 'lib/immobilienscout24/api/request/base.rb', line 52 def configure_get_request request.url(path, request_data) request end |
#configure_multipart_request ⇒ Object
46 47 48 49 50 |
# File 'lib/immobilienscout24/api/request/base.rb', line 46 def configure_multipart_request request.path = path request.body = prepared_multipart_data request end |
#configure_post_request ⇒ Object
57 58 59 60 61 62 63 64 65 66 |
# File 'lib/immobilienscout24/api/request/base.rb', line 57 def configure_post_request request.path = path if raw_request? request.body = request_data else request.body = serialized_data(request_data) unless request_data.nil? end request end |
#content_type ⇒ Object
19 20 21 |
# File 'lib/immobilienscout24/api/request/base.rb', line 19 def content_type raise NotImplementedError end |
#extension ⇒ Object
23 24 25 |
# File 'lib/immobilienscout24/api/request/base.rb', line 23 def extension raise NotImplementedError end |
#get? ⇒ Boolean
92 93 94 |
# File 'lib/immobilienscout24/api/request/base.rb', line 92 def get? request_method == :get end |
#multipart? ⇒ Boolean
72 73 74 |
# File 'lib/immobilienscout24/api/request/base.rb', line 72 def multipart? !![:multipart] end |
#path ⇒ Object
68 69 70 |
# File 'lib/immobilienscout24/api/request/base.rb', line 68 def path configuration[:path] end |
#prepared_multipart_data ⇒ Object
96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/immobilienscout24/api/request/base.rb', line 96 def prepared_multipart_data request_data.inject({}) do |memo, (key, value)| if !value.is_a?(Faraday::UploadIO) io_value = StringIO.new(serialized_data(value)) memo[key] = Faraday::UploadIO.new(io_value, content_type, "#{key}.#{extension}") else memo[key] = value end memo end end |
#raw_request? ⇒ Boolean
76 77 78 |
# File 'lib/immobilienscout24/api/request/base.rb', line 76 def raw_request? !![:raw_request] end |
#request_data ⇒ Object
80 81 82 |
# File 'lib/immobilienscout24/api/request/base.rb', line 80 def request_data configuration[:request_data] end |
#request_method ⇒ Object
88 89 90 |
# File 'lib/immobilienscout24/api/request/base.rb', line 88 def request_method configuration[:method] end |
#request_options ⇒ Object
84 85 86 |
# File 'lib/immobilienscout24/api/request/base.rb', line 84 def configuration[:request_options] end |
#serialized_data(data) ⇒ Object
15 16 17 |
# File 'lib/immobilienscout24/api/request/base.rb', line 15 def serialized_data(data) raise NotImplementedError end |
#set_accept_header ⇒ Object
38 39 40 |
# File 'lib/immobilienscout24/api/request/base.rb', line 38 def set_accept_header request.headers['Accept'] = content_type end |
#set_content_type ⇒ Object
42 43 44 |
# File 'lib/immobilienscout24/api/request/base.rb', line 42 def set_content_type request.headers['Content-Type'] = "#{content_type};charset=UTF-8" end |