frontapp 0.0.4 → 0.0.5

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
  SHA1:
3
- metadata.gz: 30c294b8a64f472bccb85eaa37ce15f5a4faf3f1
4
- data.tar.gz: 5a6238b190bb7b819513d3f566cc91b84b66aa21
3
+ metadata.gz: e74de615d1ace8618f995ce0726d5bfd7c04db4a
4
+ data.tar.gz: 75e276ab77531bfa9b62f06133d6c9a4f5d1aa57
5
5
  SHA512:
6
- metadata.gz: 582723123712778cb32bb9646072d8b3e36cee516d4ae98f97b38ac5df43c09dd5290a8a878372a59219beb021e34b838f132e59d0f7e8f1af3bc197aa328022
7
- data.tar.gz: cca450fe1e520dae490052adba3f514c250a07e6b3a4ac3a3747ecfc0d434259e232f9cd45d02a018f5a1ecfe4c1268b306b6c76b17a330441c22453a41dd0d9
6
+ metadata.gz: cff32f334a4226301d08f8e35f84e22c43e490bfbd50dae690726130a84d4db21626a63369fa9edb4352d9e5688480d165dbdb4092ec2c7c2b604e710e7373e5
7
+ data.tar.gz: 5bda12ca94202746d869934855e0fb979aea48eef57c0c95f502963b0f07f7e4ffe2a74b1fbf3f387fc8f94b7477d984dcbe9374d36bc7bfe48c0040ac1c7296
@@ -15,6 +15,8 @@ require_relative 'client/teammates.rb'
15
15
  require_relative 'client/teams.rb'
16
16
  require_relative 'client/topics.rb'
17
17
  require_relative 'client/exports.rb'
18
+ require_relative 'error'
19
+ require_relative 'version'
18
20
 
19
21
  module Frontapp
20
22
  class Client
@@ -36,10 +38,11 @@ module Frontapp
36
38
 
37
39
  def initialize(options={})
38
40
  auth_token = options[:auth_token]
41
+ user_agent = options[:user_agent] || "Frontapp Ruby Gem #{VERSION}"
39
42
  @headers = HTTP.headers({
40
- "Accept" => "application/json",
41
- "Authorization" => "Bearer #{auth_token}",
42
- "Content-Type" => "multipart/form-data; boundary=----BoundaryString"
43
+ Accept: "application/json",
44
+ Authorization: "Bearer #{auth_token}",
45
+ "User-Agent": user_agent
43
46
  })
44
47
  end
45
48
 
@@ -64,6 +67,9 @@ module Frontapp
64
67
 
65
68
  def get(path)
66
69
  res = @headers.get("#{base_url}#{path}")
70
+ if !res.status.success?
71
+ raise Error.from_response(res)
72
+ end
67
73
  JSON.parse(res.to_s)
68
74
  end
69
75
 
@@ -71,7 +77,7 @@ module Frontapp
71
77
  res = @headers.post("#{base_url}#{path}", json: body)
72
78
  response = JSON.parse(res.to_s)
73
79
  if !res.status.success?
74
- raise "Response: #{res.inspect}\n Body: #{res.body}\nRequest: #{body.to_json.inspect}"
80
+ raise Error.from_response(res)
75
81
  end
76
82
  response
77
83
  end
@@ -79,21 +85,21 @@ module Frontapp
79
85
  def create_without_response(path, body)
80
86
  res = @headers.post("#{base_url}#{path}", json: body)
81
87
  if !res.status.success?
82
- raise "Response: #{res.inspect}\n Body: #{res.body}\nRequest: #{body.to_json.inspect}"
88
+ raise Error.from_response(res)
83
89
  end
84
90
  end
85
91
 
86
92
  def update(path, body)
87
93
  res = @headers.patch("#{base_url}#{path}", json: body)
88
94
  if !res.status.success?
89
- raise "Response: #{res.inspect}\n Body: #{res.body}\nRequest: #{body.to_json.inspect}"
95
+ raise Error.from_response(res)
90
96
  end
91
97
  end
92
98
 
93
99
  def delete(path, body = {})
94
100
  res = @headers.delete("#{base_url}#{path}", json: body)
95
101
  if !res.status.success?
96
- raise "Response: #{res.inspect}\n Body: #{res.body}\nRequest: #{body.to_json.inspect}"
102
+ raise Error.from_response(res)
97
103
  end
98
104
  end
99
105
 
@@ -120,4 +126,4 @@ module Frontapp
120
126
  end
121
127
 
122
128
  end
123
- end
129
+ end
@@ -0,0 +1,22 @@
1
+ module Frontapp
2
+ class Error < StandardError
3
+ def self.from_response(response)
4
+ error_class = case response.status
5
+ when 400 then BadRequestError
6
+ when 404 then NotFoundError
7
+ when 409 then ConflictError
8
+ else self.class
9
+ end
10
+ error_class.new(response)
11
+ end
12
+
13
+ def initialize(response)
14
+ @response = response
15
+ super("Response: #{response.inspect}\nBody: #{response.body}")
16
+ end
17
+ end
18
+
19
+ class BadRequestError < Error; end
20
+ class NotFoundError < Error; end
21
+ class ConflictError < Error; end
22
+ end
@@ -0,0 +1,3 @@
1
+ module Frontapp
2
+ VERSION = "0.0.5"
3
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: frontapp
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Niels van der Zanden
@@ -88,7 +88,9 @@ files:
88
88
  - lib/frontapp/client/teammates.rb
89
89
  - lib/frontapp/client/teams.rb
90
90
  - lib/frontapp/client/topics.rb
91
+ - lib/frontapp/error.rb
91
92
  - lib/frontapp/utils/hash.rb
93
+ - lib/frontapp/version.rb
92
94
  homepage: https://github.com/phusion/frontapp
93
95
  licenses:
94
96
  - MIT