pipekit 2.0.0 → 2.1.1
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/README.md +12 -1
- data/lib/pipekit.rb +2 -1
- data/lib/pipekit/activity.rb +7 -0
- data/lib/pipekit/deal.rb +2 -0
- data/lib/pipekit/deal_field.rb +3 -0
- data/lib/pipekit/field_repository.rb +2 -1
- data/lib/pipekit/note.rb +2 -0
- data/lib/pipekit/organization.rb +2 -0
- data/lib/pipekit/person.rb +2 -0
- data/lib/pipekit/person_field.rb +3 -0
- data/lib/pipekit/repository.rb +3 -1
- data/lib/pipekit/request.rb +8 -9
- data/lib/pipekit/resource_label.rb +12 -0
- data/lib/pipekit/user.rb +2 -0
- data/lib/pipekit/version.rb +1 -1
- data/pipekit.gemspec +9 -9
- metadata +13 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94dc04bff37594cd94b7ed1affd416a8275cc128
|
4
|
+
data.tar.gz: 0a25fdb3e60cf81fe1392076d90e2b5d38e65f2c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 51e03e6d8f2c8e114e3af55a41c2c8beee47ea96a24fc7f39c1e35222301996ce207247f0039a2145eedc9e8d9a7747084b2863252ee676bafa6f148e3e1cbf8
|
7
|
+
data.tar.gz: 2978c25a5ce9faf34fd03950b642f6373bf5ef7d796ee4aae6b572486ca485033cb616f77a5ee6e16b487cbd5454102e636e01e157a46a6695afe532ad09dc84
|
data/README.md
CHANGED
@@ -36,6 +36,7 @@ The interface of Pipekit is organised around *repositories*. The available repos
|
|
36
36
|
- Organization
|
37
37
|
- Person
|
38
38
|
- PersonField
|
39
|
+
- Activity
|
39
40
|
|
40
41
|
### Resource repositories
|
41
42
|
|
@@ -91,6 +92,17 @@ note_repo = Pipekit::Note.new
|
|
91
92
|
note_repo.update(123, {content: "Hey"})
|
92
93
|
```
|
93
94
|
|
95
|
+
Add an Activity
|
96
|
+
|
97
|
+
```ruby
|
98
|
+
activity_repo.create(deal_id: 123,
|
99
|
+
subject: "Interview Completed",
|
100
|
+
done: 1,
|
101
|
+
type: "pairing_session",
|
102
|
+
duration: "00:45",
|
103
|
+
note: "This was a fantastic interview")
|
104
|
+
```
|
105
|
+
|
94
106
|
### Field repositories
|
95
107
|
|
96
108
|
Pipedrive stores custom fields as key-value pairs. E.g. when you add an "Address" field to Persons Pipderive will store it as something like "050280e9bed01e55e25532f0b6e6228c748bf994"
|
@@ -144,4 +156,3 @@ Bug reports and pull requests are welcome on GitHub at https://github.com/[USERN
|
|
144
156
|
## License
|
145
157
|
|
146
158
|
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
147
|
-
|
data/lib/pipekit.rb
CHANGED
@@ -13,6 +13,8 @@ require "pipekit/person_field"
|
|
13
13
|
require "pipekit/deal_field"
|
14
14
|
require "pipekit/note"
|
15
15
|
require "pipekit/user"
|
16
|
+
require "pipekit/activity"
|
17
|
+
require "pipekit/resource_label"
|
16
18
|
|
17
19
|
module Pipekit
|
18
20
|
|
@@ -25,4 +27,3 @@ module Pipekit
|
|
25
27
|
Config.file_path = path
|
26
28
|
end
|
27
29
|
end
|
28
|
-
|
data/lib/pipekit/deal.rb
CHANGED
@@ -1,6 +1,8 @@
|
|
1
1
|
module Pipekit
|
2
2
|
class Deal
|
3
3
|
include Repository
|
4
|
+
SINGULAR_CLASSNAME = "deal".freeze
|
5
|
+
PLURALIZED_CLASSNAME = "deals".freeze
|
4
6
|
|
5
7
|
def get_by_person_id(person_id, person_repo: Person.new)
|
6
8
|
raise UnknownPersonError, "No person ID supplied when getting deals by person ID" unless person_id
|
data/lib/pipekit/deal_field.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
module Pipekit
|
2
2
|
module FieldRepository
|
3
3
|
include Repository
|
4
|
+
|
4
5
|
def get_by_key(key)
|
5
6
|
key = Config.field_id(parent_resource, key)
|
6
7
|
search_fields("key", key)
|
@@ -34,7 +35,7 @@ module Pipekit
|
|
34
35
|
end
|
35
36
|
|
36
37
|
def parent_resource
|
37
|
-
resource.chomp("
|
38
|
+
resource.pluralized.chomp("Fields")
|
38
39
|
end
|
39
40
|
|
40
41
|
end
|
data/lib/pipekit/note.rb
CHANGED
data/lib/pipekit/organization.rb
CHANGED
data/lib/pipekit/person.rb
CHANGED
data/lib/pipekit/person_field.rb
CHANGED
data/lib/pipekit/repository.rb
CHANGED
@@ -94,7 +94,9 @@ module Pipekit
|
|
94
94
|
end
|
95
95
|
|
96
96
|
def resource
|
97
|
-
self.class
|
97
|
+
singular_resource = self.class::SINGULAR_CLASSNAME
|
98
|
+
pluralized_resource = self.class::PLURALIZED_CLASSNAME
|
99
|
+
ResourceLabel.new(singular_label: singular_resource, pluralized_label: pluralized_resource)
|
98
100
|
end
|
99
101
|
|
100
102
|
def email_key?(options)
|
data/lib/pipekit/request.rb
CHANGED
@@ -25,7 +25,6 @@ module Pipekit
|
|
25
25
|
# value - The value of the field.
|
26
26
|
#
|
27
27
|
# Examples
|
28
|
-
#
|
29
28
|
# search_by_field(field: :cohort, value: 119)
|
30
29
|
# search_by_field(field: :github_username, value: "octocat")
|
31
30
|
#
|
@@ -73,15 +72,15 @@ module Pipekit
|
|
73
72
|
|
74
73
|
def get_request(uri, query, start = 0)
|
75
74
|
response = self.class.get(uri, options(query: {limit: pagination_limit, start: start}.merge(query)))
|
76
|
-
Result.new(resource, response)
|
75
|
+
Result.new(resource.singular, response)
|
77
76
|
end
|
78
77
|
|
79
78
|
def response_from(response_data)
|
80
|
-
Result.response(resource, response_data)
|
79
|
+
Result.response(resource.singular, response_data)
|
81
80
|
end
|
82
81
|
|
83
82
|
def uri(id = "")
|
84
|
-
"/#{resource}
|
83
|
+
"/#{resource.pluralized}/#{id}".chomp("/")
|
85
84
|
end
|
86
85
|
|
87
86
|
def options(query: {}, body: {})
|
@@ -106,8 +105,8 @@ module Pipekit
|
|
106
105
|
# meaning you don't have to worry about the custom IDs
|
107
106
|
def parse_body(body)
|
108
107
|
body.reduce({}) do |result, (field, value)|
|
109
|
-
value = Config.field_value_id(resource, field, value)
|
110
|
-
field = Config.field_id(resource, field)
|
108
|
+
value = Config.field_value_id(resource.singular, field, value)
|
109
|
+
field = Config.field_id(resource.singular, field)
|
111
110
|
result.tap { |result| result[field] = value }
|
112
111
|
end
|
113
112
|
end
|
@@ -118,10 +117,10 @@ module Pipekit
|
|
118
117
|
|
119
118
|
def search_by_field_query(field = nil, value = nil)
|
120
119
|
{
|
121
|
-
field_type: "#{resource}Field",
|
122
|
-
field_key: Config.field_id(resource, field),
|
120
|
+
field_type: "#{resource.singular}Field",
|
121
|
+
field_key: Config.field_id(resource.singular, field),
|
123
122
|
return_item_ids: true,
|
124
|
-
term: Config.field_value_id(resource, field, value),
|
123
|
+
term: Config.field_value_id(resource.singular, field, value),
|
125
124
|
exact_match: 1
|
126
125
|
}
|
127
126
|
end
|
data/lib/pipekit/user.rb
CHANGED
data/lib/pipekit/version.rb
CHANGED
data/pipekit.gemspec
CHANGED
@@ -1,24 +1,24 @@
|
|
1
1
|
# coding: utf-8
|
2
|
-
lib = File.expand_path(
|
2
|
+
lib = File.expand_path("../lib", __FILE__)
|
3
3
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
4
|
-
require
|
4
|
+
require "pipekit/version"
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "pipekit"
|
8
8
|
spec.version = Pipekit::VERSION
|
9
|
-
spec.authors = ["jafrog", "pitchinvasion", "spike01", "
|
10
|
-
spec.email = ["
|
9
|
+
spec.authors = ["jafrog", "pitchinvasion", "spike01", "dbugsy", "roidriscoll"]
|
10
|
+
spec.email = ["dev@makersacademy.com"]
|
11
11
|
|
12
12
|
spec.summary = %q{Pipedrive API client for Ruby.}
|
13
|
-
spec.description = %q{Pipedrive API client for Ruby.}
|
13
|
+
spec.description = %q{Pipedrive API client for Ruby. Full API NOT implemented currently.}
|
14
14
|
spec.homepage = "https://github.com/makersacademy/pipekit"
|
15
15
|
spec.license = "MIT"
|
16
|
-
spec.required_ruby_version =
|
16
|
+
spec.required_ruby_version = ">= 1.9.1"
|
17
17
|
|
18
|
-
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the
|
18
|
+
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the "allowed_push_host"
|
19
19
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
20
20
|
if spec.respond_to?(:metadata)
|
21
|
-
spec.metadata[
|
21
|
+
spec.metadata["allowed_push_host"] = "https://rubygems.org"
|
22
22
|
else
|
23
23
|
raise "RubyGems 2.0 or newer is required to protect against public gem pushes."
|
24
24
|
end
|
@@ -34,6 +34,6 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_development_dependency "bundler", "~> 1.12"
|
35
35
|
spec.add_development_dependency "rake", "~> 10.0"
|
36
36
|
spec.add_development_dependency "rspec", "~> 3.0"
|
37
|
-
spec.add_development_dependency "webmock"
|
37
|
+
spec.add_development_dependency "webmock"
|
38
38
|
spec.add_development_dependency "pry"
|
39
39
|
end
|
metadata
CHANGED
@@ -1,17 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pipekit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- jafrog
|
8
8
|
- pitchinvasion
|
9
9
|
- spike01
|
10
|
-
-
|
10
|
+
- dbugsy
|
11
|
+
- roidriscoll
|
11
12
|
autorequire:
|
12
13
|
bindir: exe
|
13
14
|
cert_chain: []
|
14
|
-
date: 2017-
|
15
|
+
date: 2017-11-13 00:00:00.000000000 Z
|
15
16
|
dependencies:
|
16
17
|
- !ruby/object:Gem::Dependency
|
17
18
|
name: httparty
|
@@ -87,16 +88,16 @@ dependencies:
|
|
87
88
|
name: webmock
|
88
89
|
requirement: !ruby/object:Gem::Requirement
|
89
90
|
requirements:
|
90
|
-
- - "
|
91
|
+
- - ">="
|
91
92
|
- !ruby/object:Gem::Version
|
92
|
-
version:
|
93
|
+
version: '0'
|
93
94
|
type: :development
|
94
95
|
prerelease: false
|
95
96
|
version_requirements: !ruby/object:Gem::Requirement
|
96
97
|
requirements:
|
97
|
-
- - "
|
98
|
+
- - ">="
|
98
99
|
- !ruby/object:Gem::Version
|
99
|
-
version:
|
100
|
+
version: '0'
|
100
101
|
- !ruby/object:Gem::Dependency
|
101
102
|
name: pry
|
102
103
|
requirement: !ruby/object:Gem::Requirement
|
@@ -111,12 +112,9 @@ dependencies:
|
|
111
112
|
- - ">="
|
112
113
|
- !ruby/object:Gem::Version
|
113
114
|
version: '0'
|
114
|
-
description: Pipedrive API client for Ruby.
|
115
|
+
description: Pipedrive API client for Ruby. Full API NOT implemented currently.
|
115
116
|
email:
|
116
|
-
-
|
117
|
-
- leo@makersacademy.com
|
118
|
-
- spike@makersacademy.com
|
119
|
-
- dan@makersacademy.com
|
117
|
+
- dev@makersacademy.com
|
120
118
|
executables: []
|
121
119
|
extensions: []
|
122
120
|
extra_rdoc_files: []
|
@@ -132,6 +130,7 @@ files:
|
|
132
130
|
- bin/console
|
133
131
|
- bin/setup
|
134
132
|
- lib/pipekit.rb
|
133
|
+
- lib/pipekit/activity.rb
|
135
134
|
- lib/pipekit/config.rb
|
136
135
|
- lib/pipekit/deal.rb
|
137
136
|
- lib/pipekit/deal_field.rb
|
@@ -142,6 +141,7 @@ files:
|
|
142
141
|
- lib/pipekit/person_field.rb
|
143
142
|
- lib/pipekit/repository.rb
|
144
143
|
- lib/pipekit/request.rb
|
144
|
+
- lib/pipekit/resource_label.rb
|
145
145
|
- lib/pipekit/response.rb
|
146
146
|
- lib/pipekit/result.rb
|
147
147
|
- lib/pipekit/user.rb
|
@@ -168,7 +168,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
168
168
|
version: '0'
|
169
169
|
requirements: []
|
170
170
|
rubyforge_project:
|
171
|
-
rubygems_version: 2.6.
|
171
|
+
rubygems_version: 2.6.14
|
172
172
|
signing_key:
|
173
173
|
specification_version: 4
|
174
174
|
summary: Pipedrive API client for Ruby.
|