groovehq 1.0.2 → 1.0.3
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 +4 -4
- data/.gitignore +2 -0
- data/lib/groovehq/client/tickets.rb +1 -1
- data/lib/groovehq/resource.rb +3 -3
- data/lib/groovehq/version.rb +1 -1
- data/spec/groovehq/client/connection_spec.rb +26 -25
- data/spec/groovehq/resource_collection_spec.rb +3 -3
- data/spec/groovehq/resource_spec.rb +7 -5
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f1d33c98f5eeed19a68361f560b4144aa2d62b5e
|
4
|
+
data.tar.gz: 8f7114a49e403d5400483235fbe06f8813cb5b9d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17d1e534f9be1813e1a14d2ec9af872e9d795db2253fcd16f4e702a74d742fa1c4461abb20634a3a8b0f0704836500e8c40bc5bbb3a4759d5d4c7fd323de7cee
|
7
|
+
data.tar.gz: caf3432e838bfc7dea918292024db05dc050e59e54e0e17d2c723ae0e635aa8ee28023b3bc3d92d99f80469bd1ddc4c107d08ffa97f565bd9668078a0fc420c7
|
data/.gitignore
CHANGED
@@ -36,7 +36,7 @@ module GrooveHQ
|
|
36
36
|
end
|
37
37
|
|
38
38
|
def update_ticket_priority(ticket_number, priority)
|
39
|
-
put("/tickets/#{ticket_number}/
|
39
|
+
put("/tickets/#{ticket_number}/priority", priority: priority)
|
40
40
|
end
|
41
41
|
|
42
42
|
def update_ticket_assigned_group(ticket_number, assigned_group)
|
data/lib/groovehq/resource.rb
CHANGED
@@ -10,8 +10,8 @@ module GrooveHQ
|
|
10
10
|
|
11
11
|
data = data.with_indifferent_access
|
12
12
|
|
13
|
-
links = data.delete(:links) {
|
14
|
-
links[:self] = data.delete(:href) if data.has_key?(:href)
|
13
|
+
links = data.delete(:links) { ActiveSupport::HashWithIndifferentAccess.new }
|
14
|
+
links[:self] = { href: data.delete(:href) } if data.has_key?(:href)
|
15
15
|
|
16
16
|
@data = OpenStruct.new(data.with_indifferent_access)
|
17
17
|
|
@@ -20,7 +20,7 @@ module GrooveHQ
|
|
20
20
|
|
21
21
|
def parse_links(links)
|
22
22
|
(links || {}).each_with_object({}) do |(relation, value), result|
|
23
|
-
result[relation] = Relation.new(@client, value[
|
23
|
+
result[relation] = Relation.new(@client, value[:href])
|
24
24
|
end
|
25
25
|
end
|
26
26
|
|
data/lib/groovehq/version.rb
CHANGED
@@ -3,14 +3,28 @@ require 'spec_helper'
|
|
3
3
|
describe GrooveHQ::Client::Connection do
|
4
4
|
|
5
5
|
let(:client) { GrooveHQ::Client.new("phantogram") }
|
6
|
+
let(:api_groovehq_url) { "https://api.groovehq.com/v1" }
|
7
|
+
|
8
|
+
before(:each) do
|
9
|
+
stub_request(:get, "#{api_groovehq_url}#{resource_path}").to_return(body: response)
|
10
|
+
end
|
11
|
+
|
12
|
+
subject { client.get(resource_path) }
|
13
|
+
|
14
|
+
context "empty response" do
|
15
|
+
|
16
|
+
let(:resource_path) { "/tickets" }
|
17
|
+
let(:response) { '' }
|
18
|
+
|
19
|
+
it "returns nil" do
|
20
|
+
expect(subject).to eql(nil)
|
21
|
+
end
|
6
22
|
|
7
|
-
it "returns nil for empty response" do
|
8
|
-
stub_request(:get, "https://api.groovehq.com/v1/tickets").to_return(body: "")
|
9
|
-
expect(client.get("/tickets")).to eql(nil)
|
10
23
|
end
|
11
24
|
|
12
25
|
context "nested hash as response with single root key" do
|
13
26
|
|
27
|
+
let(:resource_path) { "/tickets/1" }
|
14
28
|
let(:response) do
|
15
29
|
{
|
16
30
|
ticket: {
|
@@ -25,38 +39,32 @@ describe GrooveHQ::Client::Connection do
|
|
25
39
|
}.to_json
|
26
40
|
end
|
27
41
|
|
28
|
-
before(:each) do
|
29
|
-
stub_request(:get, "https://api.groovehq.com/v1/tickets/1").to_return(body: response)
|
30
|
-
end
|
31
|
-
|
32
42
|
it "returns resource for single root key" do
|
33
|
-
expect(
|
43
|
+
expect(subject).to be_instance_of(GrooveHQ::Resource)
|
34
44
|
end
|
35
45
|
|
36
46
|
it "returns resource with correct relations" do
|
37
|
-
expect(
|
47
|
+
expect(subject.rels[:assignee].href).to eql("https://api.groovehq.com/v1/agents/matt@groovehq.com")
|
38
48
|
end
|
39
49
|
|
40
50
|
end
|
41
51
|
|
42
52
|
context "single key-value pair in response" do
|
43
53
|
|
54
|
+
let(:resource_path) { "/tickets/1/state" }
|
44
55
|
let(:response) do
|
45
56
|
{ state: "open" }.to_json
|
46
57
|
end
|
47
58
|
|
48
|
-
before(:each) do
|
49
|
-
stub_request(:get, "https://api.groovehq.com/v1/tickets/1/state").to_return(body: response)
|
50
|
-
end
|
51
|
-
|
52
59
|
it "returns response as it is" do
|
53
|
-
expect(
|
60
|
+
expect(subject).to eql "open"
|
54
61
|
end
|
55
62
|
|
56
63
|
end
|
57
64
|
|
58
65
|
context "multiple root key-value pairs in response" do
|
59
66
|
|
67
|
+
let(:resource_path) { "/tickets/count" }
|
60
68
|
let(:response) do
|
61
69
|
{
|
62
70
|
"728525" => 1,
|
@@ -65,18 +73,15 @@ describe GrooveHQ::Client::Connection do
|
|
65
73
|
}.to_json
|
66
74
|
end
|
67
75
|
|
68
|
-
before(:each) do
|
69
|
-
stub_request(:get, "https://api.groovehq.com/v1/tickets/count").to_return(body: response)
|
70
|
-
end
|
71
|
-
|
72
76
|
it "returns response as it is" do
|
73
|
-
expect(
|
77
|
+
expect(subject.data.to_h.keys.count).to eql 3
|
74
78
|
end
|
75
79
|
|
76
80
|
end
|
77
81
|
|
78
82
|
context "array of hashes in response" do
|
79
83
|
|
84
|
+
let(:resource_path) { "/tickets" }
|
80
85
|
let(:response) do
|
81
86
|
{
|
82
87
|
tickets: [
|
@@ -93,16 +98,12 @@ describe GrooveHQ::Client::Connection do
|
|
93
98
|
}.to_json
|
94
99
|
end
|
95
100
|
|
96
|
-
before(:each) do
|
97
|
-
stub_request(:get, "https://api.groovehq.com/v1/tickets").to_return(body: response)
|
98
|
-
end
|
99
|
-
|
100
101
|
it "builds array of resources from response" do
|
101
|
-
expect(
|
102
|
+
expect(subject.data[:collection].count).to eql 3
|
102
103
|
end
|
103
104
|
|
104
105
|
it "returns relations for pagination" do
|
105
|
-
expect(
|
106
|
+
expect(subject.rels[:next]).to be_instance_of(GrooveHQ::Relation)
|
106
107
|
end
|
107
108
|
|
108
109
|
end
|
@@ -7,7 +7,7 @@ describe GrooveHQ::Resource do
|
|
7
7
|
context "#data" do
|
8
8
|
|
9
9
|
it "returns empty data for invalid input" do
|
10
|
-
resource = GrooveHQ::ResourceCollection.new(
|
10
|
+
resource = GrooveHQ::ResourceCollection.new(client, "")
|
11
11
|
expect(resource.count).to eql(0)
|
12
12
|
end
|
13
13
|
|
@@ -15,7 +15,7 @@ describe GrooveHQ::Resource do
|
|
15
15
|
data = {
|
16
16
|
tickets: [ { name: "When I am small" } ]
|
17
17
|
}
|
18
|
-
resource = GrooveHQ::ResourceCollection.new(
|
18
|
+
resource = GrooveHQ::ResourceCollection.new(client, data)
|
19
19
|
expect(resource.first.name).to eql "When I am small"
|
20
20
|
end
|
21
21
|
|
@@ -35,7 +35,7 @@ describe GrooveHQ::Resource do
|
|
35
35
|
}
|
36
36
|
}
|
37
37
|
}
|
38
|
-
resource = GrooveHQ::ResourceCollection.new(
|
38
|
+
resource = GrooveHQ::ResourceCollection.new(client, data)
|
39
39
|
expect(resource.rels[:next]).to be_instance_of(GrooveHQ::Relation)
|
40
40
|
end
|
41
41
|
|
@@ -7,7 +7,7 @@ describe GrooveHQ::Resource do
|
|
7
7
|
context "#data" do
|
8
8
|
|
9
9
|
it "returns empty data for invalid input" do
|
10
|
-
resource = GrooveHQ::Resource.new(
|
10
|
+
resource = GrooveHQ::Resource.new(client, "")
|
11
11
|
expect(resource.data.to_h).to eql({})
|
12
12
|
end
|
13
13
|
|
@@ -15,7 +15,7 @@ describe GrooveHQ::Resource do
|
|
15
15
|
data = {
|
16
16
|
name: "When I am small"
|
17
17
|
}
|
18
|
-
resource = GrooveHQ::Resource.new(
|
18
|
+
resource = GrooveHQ::Resource.new(client, data)
|
19
19
|
expect(resource.data[:name]).to eql "When I am small"
|
20
20
|
end
|
21
21
|
|
@@ -23,7 +23,7 @@ describe GrooveHQ::Resource do
|
|
23
23
|
data = {
|
24
24
|
name: "When I am small"
|
25
25
|
}
|
26
|
-
resource = GrooveHQ::Resource.new(
|
26
|
+
resource = GrooveHQ::Resource.new(client, data)
|
27
27
|
expect(resource.name).to eql "When I am small"
|
28
28
|
end
|
29
29
|
end
|
@@ -38,16 +38,18 @@ describe GrooveHQ::Resource do
|
|
38
38
|
}
|
39
39
|
}
|
40
40
|
}
|
41
|
-
resource = GrooveHQ::Resource.new(
|
41
|
+
resource = GrooveHQ::Resource.new(client, data)
|
42
42
|
expect(resource.rels[:assignee]).to be_instance_of(GrooveHQ::Relation)
|
43
|
+
expect(resource.rels[:assignee].href).to eq("https://api.groovehq.com/v1/agents/matt@groovehq.com")
|
43
44
|
end
|
44
45
|
|
45
46
|
it "parses self relation correctly" do
|
46
47
|
data = {
|
47
48
|
href: "https://api.groovehq.com/v1/agents/matt@groovehq.com"
|
48
49
|
}
|
49
|
-
resource = GrooveHQ::Resource.new(
|
50
|
+
resource = GrooveHQ::Resource.new(client, data)
|
50
51
|
expect(resource.rels[:self]).to be_instance_of(GrooveHQ::Relation)
|
52
|
+
expect(resource.rels[:self].href).to eq("https://api.groovehq.com/v1/agents/matt@groovehq.com")
|
51
53
|
end
|
52
54
|
|
53
55
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: groovehq
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kirill Shirinkin
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-08-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: httparty
|
@@ -119,7 +119,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
119
119
|
version: '0'
|
120
120
|
requirements: []
|
121
121
|
rubyforge_project:
|
122
|
-
rubygems_version: 2.
|
122
|
+
rubygems_version: 2.4.8
|
123
123
|
signing_key:
|
124
124
|
specification_version: 4
|
125
125
|
summary: Client library for GrooveHQ API.
|
@@ -128,4 +128,3 @@ test_files:
|
|
128
128
|
- spec/groovehq/resource_collection_spec.rb
|
129
129
|
- spec/groovehq/resource_spec.rb
|
130
130
|
- spec/spec_helper.rb
|
131
|
-
has_rdoc:
|