flowdock 0.7.0 → 0.7.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 2e8c2164455898ff017ff0cbe2a0fe9c0615de15
4
- data.tar.gz: 67af9f77904b26d42864b709d1a8ed112bc4009c
3
+ metadata.gz: 13576628fd2b05aaa9ece16cd6944c8d9b02224a
4
+ data.tar.gz: 4ca310fb95bf29d2c9342387623e62813a5609c2
5
5
  SHA512:
6
- metadata.gz: 20cf692d3e6f09405972d71b9888fd60c3eac5e27978a63c545f4e9d2ac782e390a33cf8773be14d5592d498f079557b92d195178c8d078711cf56c3469723a7
7
- data.tar.gz: fea63857c0f2130a68f79f634a9c17feba1b46022efe437adb383499d14136aad8cb421d5e2c71ca103f0e83b2a7a9b9b59606b16f9d8a89dc183be1ebc47681
6
+ metadata.gz: 10b82d9fdabb95fa80af828f6593bde4d143813aed8646724db51ae8614d00512348c36f7bef486f6173a7a6101a203539cd584b32b29651b87b1537b596e89b
7
+ data.tar.gz: f58a5de79dbb5de06e4ab85eb28b83987634a675b903bcc3631297add7b263e87b20c78fa46fc1efe45621d75e27f434907ffff380cedb41442b29489428ad9e
data/README.md CHANGED
@@ -176,7 +176,7 @@ There are separate gems for deployment notifications:
176
176
  * [mina-flowdock](https://github.com/elskwid/mina-flowdock)
177
177
 
178
178
  ## Changelog
179
-
179
+ * 0.7.0 - Added `post_to_thread`
180
180
  * 0.5.0 - Added `Flowdock::Client` that authenticates using user credentials and can be used to interact with the API. Better threads support for both `Flow` and `Client` so that comments can be made.
181
181
 
182
182
  ## Copyright
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.0
1
+ 0.7.1
@@ -2,16 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
- # stub: flowdock 0.7.0 ruby lib
5
+ # stub: flowdock 0.7.1 ruby lib
6
6
 
7
7
  Gem::Specification.new do |s|
8
8
  s.name = "flowdock"
9
- s.version = "0.7.0"
9
+ s.version = "0.7.1"
10
10
 
11
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
12
  s.require_paths = ["lib"]
13
13
  s.authors = ["Antti Pitk\u{e4}nen"]
14
- s.date = "2015-07-21"
14
+ s.date = "2015-11-17"
15
15
  s.email = "team@flowdock.com"
16
16
  s.extra_rdoc_files = [
17
17
  "LICENSE",
@@ -34,7 +34,7 @@ Gem::Specification.new do |s|
34
34
  ]
35
35
  s.homepage = "http://github.com/flowdock/flowdock-api"
36
36
  s.licenses = ["MIT"]
37
- s.rubygems_version = "2.4.1"
37
+ s.rubygems_version = "2.4.8"
38
38
  s.summary = "Ruby Gem for using Flowdock's API"
39
39
 
40
40
  if s.respond_to? :specification_version then
@@ -6,6 +6,7 @@ module Flowdock
6
6
  FLOWDOCK_API_URL = "https://api.flowdock.com/v1"
7
7
 
8
8
  class InvalidParameterError < StandardError; end
9
+ class NotFoundError < StandardError; end
9
10
  class ApiError < StandardError; end
10
11
 
11
12
  module Helpers
@@ -14,7 +15,14 @@ module Flowdock
14
15
  end
15
16
 
16
17
  def handle_response(resp)
17
- json = MultiJson.decode(resp.body || '{}')
18
+ body = (resp.body.nil? || resp.body.strip.empty?) ? '{}' : resp.body
19
+
20
+ json = MultiJson.decode(body)
21
+
22
+ if resp.code == 404
23
+ raise NotFoundError, "Flowdock API returned error:\nStatus: #{resp.code}\n Message: #{json["message"]}"
24
+ end
25
+
18
26
  unless resp.code >= 200 && resp.code < 300
19
27
  errors = json["errors"].map {|k,v| "#{k}: #{v.join(',')}"}.join("\n") unless json["errors"].nil?
20
28
  raise ApiError, "Flowdock API returned error:\nStatus: #{resp.code}\n Message: #{json["message"]}\n Errors:\n#{errors}"
@@ -21,6 +21,25 @@ describe Flowdock do
21
21
  end
22
22
  end
23
23
 
24
+ describe "handle_response" do
25
+ it "parses a response body that contains an empty string" do
26
+ class TestResponse
27
+ attr_reader :body, :code
28
+
29
+ def initialize
30
+ @body = ""
31
+ @code = 200
32
+ end
33
+ end
34
+
35
+ class TestHelper
36
+ include Flowdock::Helpers
37
+ end
38
+
39
+ expect(TestHelper.new.handle_response(TestResponse.new)).to eq({})
40
+ end
41
+ end
42
+
24
43
  describe "with sending Team Inbox messages" do
25
44
  before(:each) do
26
45
  @token = "test"
@@ -224,6 +243,25 @@ describe Flowdock do
224
243
  @flow.push_to_team_inbox(:subject => "Hello World", :content => @example_content).should be_false
225
244
  }.should raise_error(Flowdock::ApiError)
226
245
  end
246
+
247
+ it "should raise error if backend returns 404 NotFound" do
248
+ lambda {
249
+ stub_request(:post, push_to_team_inbox_url(@token)).
250
+ with(:body => {
251
+ :source => "myapp",
252
+ :project => "myproject",
253
+ :format => "html",
254
+ :from_name => "Eric Example",
255
+ :from_address => "eric@example.com",
256
+ :reply_to => "john@example.com",
257
+ :subject => "Hello World",
258
+ :content => @example_content
259
+ }).
260
+ to_return(:body => "{}", :status => 404)
261
+
262
+ @flow.push_to_team_inbox(:subject => "Hello World", :content => @example_content).should be_false
263
+ }.should raise_error(Flowdock::NotFoundError)
264
+ end
227
265
  end
228
266
 
229
267
  describe "with sending Chat messages" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flowdock
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Antti Pitkänen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-21 00:00:00.000000000 Z
11
+ date: 2015-11-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: httparty
@@ -163,7 +163,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
163
163
  version: '0'
164
164
  requirements: []
165
165
  rubyforge_project:
166
- rubygems_version: 2.4.1
166
+ rubygems_version: 2.4.8
167
167
  signing_key:
168
168
  specification_version: 4
169
169
  summary: Ruby Gem for using Flowdock's API