Class: Bunq::Resource
- Inherits:
-
Object
- Object
- Bunq::Resource
- Defined in:
- lib/bunq/resource.rb
Constant Summary collapse
- APPLICATION_JSON =
'application/json'
- NO_PARAMS =
{}.freeze
Instance Method Summary collapse
- #append(path) ⇒ Object
- #get(params = {}, &block) ⇒ Object
-
#initialize(client, path) ⇒ Resource
constructor
A new instance of Resource.
- #post(payload, skip_verify: false, encrypt: false, custom_headers: {}, &block) ⇒ Object
- #put(payload, encrypt: false, &block) ⇒ Object
- #with_session(&block) ⇒ Object
Constructor Details
#initialize(client, path) ⇒ Resource
Returns a new instance of Resource.
13 14 15 16 |
# File 'lib/bunq/resource.rb', line 13 def initialize(client, path) @client = client @path = path end |
Instance Method Details
#append(path) ⇒ Object
58 59 60 |
# File 'lib/bunq/resource.rb', line 58 def append(path) Bunq::Resource.new(client, @path + path) end |
#get(params = {}, &block) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/bunq/resource.rb', line 18 def get(params = {}, &block) resource.get({params: params}.merge(bunq_request_headers('GET', params))) do |response, request, result| verify_and_handle_response(response, request, result, &block) end rescue RestClient::Exceptions::Timeout raise Bunq::Timeout end |
#post(payload, skip_verify: false, encrypt: false, custom_headers: {}, &block) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/bunq/resource.rb', line 26 def post(payload, skip_verify: false, encrypt: false, custom_headers: {}, &block) custom_headers = JSON.parse(custom_headers.to_json) body = post_body(payload, custom_headers) body, headers = client.encryptor.encrypt(body) if encrypt headers = headers.to_h.merge(custom_headers) headers = bunq_request_headers('POST', NO_PARAMS, body, headers) resource.post(body, headers) do |response, request, result| if skip_verify handle_response(response, request, result, &block) else verify_and_handle_response(response, request, result, &block) end end rescue RestClient::Exceptions::Timeout raise Bunq::Timeout end |
#put(payload, encrypt: false, &block) ⇒ Object
45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/bunq/resource.rb', line 45 def put(payload, encrypt: false, &block) body = JSON.generate(payload) body, headers = client.encryptor.encrypt(body) if encrypt headers = bunq_request_headers('PUT', NO_PARAMS, body, headers || {}) resource.put(body, headers) do |response, request, result| verify_and_handle_response(response, request, result, &block) end rescue RestClient::Exceptions::Timeout raise Bunq::Timeout end |
#with_session(&block) ⇒ Object
62 63 64 |
# File 'lib/bunq/resource.rb', line 62 def with_session(&block) client.with_session(&block) end |