pipeline_deals_api 0.1.18 → 0.1.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a102a75d1dcf19f3d3e1a118cdb690246d6e94db6326ad1329a3f0cdd7838fd0
4
- data.tar.gz: f32ef9a9fb586dbfbc0cef684428ce4f92cafe4ff70dca6eee1d82dc44cc1e03
3
+ metadata.gz: 205db4fb0a665d6a5b1d449741b66118afbcaa67fdbaabb5ab6de7410b3a5286
4
+ data.tar.gz: ddfebff9c033c18262460613bcf6d37f74a16793a08ff0d492d46afe354be45a
5
5
  SHA512:
6
- metadata.gz: 66845537fd22648ead18957fd5ac9efa942d20b857e7a58a2f690476f17821e525a1469a4d48d5356027b28da795936a08d5a883bccca0a6621a102677aae715
7
- data.tar.gz: 457f72cb646dfcd3d3f3ca1b6403c33bc1616eaf53929f08f69986c1b8df7acf953407fadffa03ea6c8494bf21c7fa34fbac143b3d229770305003330a5f41e8
6
+ metadata.gz: 79ce5f70011459d9eba95a6dce09128ee22fd1c81d404514e17110dac3ef67a3daaecbbd82a86a425c43c1f23e64cc7fafe3bdacc45b9961529252bbaca06ef6
7
+ data.tar.gz: e744dc4a716c2b79f661bc1352c9ec569e7327a4d029ca0c6211fa9976ed0873a7f003dca8b997f6344872925aee764f89f41b5e5b2f0046768dfb55e5ebbe2a
@@ -1,3 +1,5 @@
1
+ require 'json'
2
+ require 'rest-client'
1
3
  require 'pipeline_deals_api/clients/helper'
2
4
  require 'pipeline_deals_api/clients/deal'
3
5
  require 'pipeline_deals_api/configuration'
@@ -21,7 +21,11 @@ module PipelineDealsApi
21
21
  extend Forwardable
22
22
  attr_reader :credentials
23
23
 
24
- def_delegators :deal_client, :create_deal, :list_deals
24
+ def_delegators :deal_client,
25
+ :create_deal,
26
+ :list_deals,
27
+ :get_deal,
28
+ :update_deal
25
29
 
26
30
  def initialize(api_key:, app_key: nil)
27
31
  @credentials = Credentials.new(
@@ -7,15 +7,24 @@ module PipelineDealsApi
7
7
  @http_client = http_client
8
8
  end
9
9
 
10
- def create_deal(body)
10
+ def create_deal(body = {})
11
11
  body = wrap_body(body, :deal)
12
12
  http_client.post('/deals.json', body)
13
13
  end
14
14
 
15
- def list_deals(body)
15
+ def list_deals(body = {})
16
16
  http_client.get('/deals.json', body)
17
17
  end
18
18
 
19
+ def get_deal(id, body = {})
20
+ http_client.get("/deals/#{id}.json", body)
21
+ end
22
+
23
+ def update_deal(id, body = {})
24
+ body = wrap_body(body, :deal)
25
+ http_client.put("/deals/#{id}.json", body)
26
+ end
27
+
19
28
  private
20
29
 
21
30
  attr_reader :http_client
@@ -1,5 +1,7 @@
1
1
  module PipelineDealsApi
2
2
  class HttpClient
3
+ attr_reader :credentials
4
+
3
5
  def initialize(credentials:)
4
6
  @credentials = credentials
5
7
  end
@@ -25,9 +27,16 @@ module PipelineDealsApi
25
27
  attr_reader :http_client
26
28
 
27
29
  def http_request(method, url = '', body = {}, headers = {})
28
- body = with_default_body(body).to_json
30
+ url = "#{Configuration::API_URL}#{url}"
31
+ body = with_default_body(body)
29
32
  headers = with_default_headers(headers)
30
- resp = RestClient.send(method, url, body, headers)
33
+ case method
34
+ when :post, :put
35
+ resp = RestClient.send(method, url, body, headers)
36
+ else
37
+ payload = headers.merge({params: body})
38
+ resp = RestClient.send(method, url, payload)
39
+ end
31
40
  handle_response(Response.new(resp))
32
41
  rescue RestClient::ExceptionWithResponse => e
33
42
  resp = Response.new(e.response)
@@ -44,6 +53,7 @@ module PipelineDealsApi
44
53
  when 402
45
54
  raise PaymentRequiredError.new('402 - Payment Required', resp)
46
55
  when 403
56
+ raise ForbiddenError.new('403 - Forbidden', resp)
47
57
  when 404
48
58
  raise NotFoundError.new('404 - Not Found', resp)
49
59
  when 405
@@ -69,14 +79,12 @@ module PipelineDealsApi
69
79
  else
70
80
  raise ClientError.new("#{resp.code} - Client Error", resp) if resp.code >= 400 && resp.code < 500
71
81
  raise ServerError.new("#{resp.code} - Server Error", resp) if resp.code >= 500 && resp.code < 600
72
- raise UnknownError.new("#{resp.code} - Unhandled Response error", resp)
82
+ raise UnknownError.new("#{resp.code} - Unhandled Response Error", resp)
73
83
  end
74
84
  end
75
85
 
76
86
  def with_default_headers(headers = {})
77
87
  defaults = {
78
- content_type: :json,
79
- accept: :json
80
88
  }
81
89
 
82
90
  defaults.merge(headers)
@@ -105,7 +113,7 @@ module PipelineDealsApi
105
113
  end
106
114
 
107
115
  def json
108
- @json ||= JSON.parse(response.body)
116
+ @json ||= JSON.parse(@response.body)
109
117
  end
110
118
  end
111
119
 
@@ -1,3 +1,3 @@
1
1
  module PipelineDealsApi
2
- VERSION = "0.1.18"
2
+ VERSION = "0.1.19"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pipeline_deals_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.18
4
+ version: 0.1.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Sinner
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-05-30 00:00:00.000000000 Z
11
+ date: 2018-05-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client