pipekit 1.0.2 → 1.2.0
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/lib/pipekit.rb +1 -0
- data/lib/pipekit/config.rb +2 -1
- data/lib/pipekit/organization.rb +5 -0
- data/lib/pipekit/request.rb +15 -12
- data/lib/pipekit/result.rb +6 -5
- data/lib/pipekit/version.rb +1 -1
- data/pipekit.gemspec +1 -0
- metadata +18 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e34407109d67d8d9635733ffba1eccc11f6c6e32
|
4
|
+
data.tar.gz: 33ddaa1c5efbf60e1814db4c61dfd80cd39f4bbd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d5e5629813863251130adf800fe0502651123b5ca3f387459e603f87612e3e95d79352a9ecf290057378b15a7d12b27b82a8ab2f710eb66caf109cdc57cb57e0
|
7
|
+
data.tar.gz: f0b7531452f1bccbb2c9d3f50862c572451c7a976cee387de3969a7eaeb254a36f53af32eb9d1d251baca151cf4ba918f1309a3569f64e6de7ca102035cc2444
|
data/lib/pipekit.rb
CHANGED
data/lib/pipekit/config.rb
CHANGED
@@ -46,7 +46,8 @@ module Pipekit
|
|
46
46
|
# # => "value_not_there"
|
47
47
|
def field_value(resource, field, value)
|
48
48
|
custom_field_values(resource, field)
|
49
|
-
.
|
49
|
+
.reduce({}) { |result, (k,v)| result.tap { |result| result[k.to_s] = v } }
|
50
|
+
.fetch(value.to_s, value)
|
50
51
|
end
|
51
52
|
|
52
53
|
# Finds the Pipedrive field value ID from the config if one exists for that
|
data/lib/pipekit/request.rb
CHANGED
@@ -35,14 +35,9 @@ module Pipekit
|
|
35
35
|
# This also uses the "request_all_pages" config option when set to do
|
36
36
|
# multiple requests, getting around Pipedrive's pagination
|
37
37
|
def search_by_field(field:, value:)
|
38
|
-
query =
|
39
|
-
field_key: Config.field_id(resource, field),
|
40
|
-
return_item_ids: true,
|
41
|
-
term: Config.field_value_id(resource, field, value),
|
42
|
-
exact_match: 1
|
43
|
-
}
|
38
|
+
query = search_by_field_query(field, value)
|
44
39
|
|
45
|
-
get_request("/searchResults/field", query).response
|
40
|
+
get_request("/searchResults/field", query).response
|
46
41
|
end
|
47
42
|
|
48
43
|
# Public: Pipedrive GET API call - does a GET request to the Pipedrive API
|
@@ -69,18 +64,16 @@ module Pipekit
|
|
69
64
|
response_from self.class.post(uri, options(body: data))
|
70
65
|
end
|
71
66
|
|
72
|
-
private
|
73
|
-
|
74
67
|
attr_reader :resource
|
75
68
|
|
76
69
|
def _get(uri, query, result)
|
77
|
-
return result.response
|
70
|
+
return result.response unless result.fetch_next_request?
|
78
71
|
_get(uri, query, result + get_request(uri, query, result.next_start))
|
79
72
|
end
|
80
73
|
|
81
74
|
def get_request(uri, query, start = 0)
|
82
75
|
response = self.class.get(uri, options(query: {limit: pagination_limit, start: start}.merge(query)))
|
83
|
-
Result.new(response)
|
76
|
+
Result.new(resource, response)
|
84
77
|
end
|
85
78
|
|
86
79
|
def response_from(response_data)
|
@@ -113,8 +106,8 @@ module Pipekit
|
|
113
106
|
# meaning you don't have to worry about the custom IDs
|
114
107
|
def parse_body(body)
|
115
108
|
body.reduce({}) do |result, (field, value)|
|
116
|
-
field = Config.field_id(resource, field)
|
117
109
|
value = Config.field_value_id(resource, field, value)
|
110
|
+
field = Config.field_id(resource, field)
|
118
111
|
result.tap { |result| result[field] = value }
|
119
112
|
end
|
120
113
|
end
|
@@ -123,5 +116,15 @@ module Pipekit
|
|
123
116
|
Config.fetch(:pagination_limit, DEFAULT_PAGINATION_LIMIT)
|
124
117
|
end
|
125
118
|
|
119
|
+
def search_by_field_query(field = nil, value = nil)
|
120
|
+
{
|
121
|
+
field_type: "#{resource}Field",
|
122
|
+
field_key: Config.field_id(resource, field),
|
123
|
+
return_item_ids: true,
|
124
|
+
term: Config.field_value_id(resource, field, value),
|
125
|
+
exact_match: 1
|
126
|
+
}
|
127
|
+
end
|
128
|
+
|
126
129
|
end
|
127
130
|
end
|
data/lib/pipekit/result.rb
CHANGED
@@ -2,19 +2,20 @@
|
|
2
2
|
module Pipekit
|
3
3
|
class Result
|
4
4
|
|
5
|
-
def initialize(response_data)
|
5
|
+
def initialize(resource, response_data)
|
6
6
|
@response_data = response_data
|
7
|
+
@resource = resource
|
7
8
|
raise UnsuccessfulRequestError.new(response_data) unless success?
|
8
9
|
end
|
9
10
|
|
10
|
-
def response
|
11
|
+
def response
|
11
12
|
raise ResourceNotFoundError.new(response_data) unless resource_found?
|
12
13
|
return Response.new(resource, response_body) unless response_body.is_a? Array
|
13
14
|
response_body.map { |data| Response.new(resource, data) }
|
14
15
|
end
|
15
16
|
|
16
17
|
def +(other)
|
17
|
-
self.class.new(other.merged_response(response_body))
|
18
|
+
self.class.new(resource, other.merged_response(response_body))
|
18
19
|
end
|
19
20
|
|
20
21
|
def fetch_next_request?
|
@@ -26,7 +27,7 @@ module Pipekit
|
|
26
27
|
end
|
27
28
|
|
28
29
|
def self.response(resource, response_data)
|
29
|
-
new(response_data).response
|
30
|
+
new(resource, response_data).response
|
30
31
|
end
|
31
32
|
|
32
33
|
protected
|
@@ -39,7 +40,7 @@ module Pipekit
|
|
39
40
|
|
40
41
|
private
|
41
42
|
|
42
|
-
attr_reader :response_data
|
43
|
+
attr_reader :response_data, :resource
|
43
44
|
|
44
45
|
def pagination_data
|
45
46
|
response_data
|
data/lib/pipekit/version.rb
CHANGED
data/pipekit.gemspec
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pipekit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jafrog
|
@@ -11,7 +11,7 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: exe
|
13
13
|
cert_chain: []
|
14
|
-
date: 2016-
|
14
|
+
date: 2016-11-10 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: httparty
|
@@ -27,6 +27,20 @@ dependencies:
|
|
27
27
|
- - ">="
|
28
28
|
- !ruby/object:Gem::Version
|
29
29
|
version: '0'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: rack
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
requirements:
|
34
|
+
- - ">="
|
35
|
+
- !ruby/object:Gem::Version
|
36
|
+
version: '0'
|
37
|
+
type: :runtime
|
38
|
+
prerelease: false
|
39
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
|
+
requirements:
|
41
|
+
- - ">="
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
30
44
|
- !ruby/object:Gem::Dependency
|
31
45
|
name: bundler
|
32
46
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,6 +137,7 @@ files:
|
|
123
137
|
- lib/pipekit/deal_field.rb
|
124
138
|
- lib/pipekit/field_repository.rb
|
125
139
|
- lib/pipekit/note.rb
|
140
|
+
- lib/pipekit/organization.rb
|
126
141
|
- lib/pipekit/person.rb
|
127
142
|
- lib/pipekit/person_field.rb
|
128
143
|
- lib/pipekit/repository.rb
|
@@ -152,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
152
167
|
version: '0'
|
153
168
|
requirements: []
|
154
169
|
rubyforge_project:
|
155
|
-
rubygems_version: 2.
|
170
|
+
rubygems_version: 2.5.1
|
156
171
|
signing_key:
|
157
172
|
specification_version: 4
|
158
173
|
summary: Pipedrive API client for Ruby.
|