hubspot-api-ruby 0.10.0 → 0.11.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4aa748bc77ade29ff96016950aa3f3d8d9bbb309167b200319798d9edf8664bc
4
- data.tar.gz: f09d8a29a3dbbcaa18071670e46d4c10c6727731409bbf4a7eee5099d6fd15e2
3
+ metadata.gz: caa1ed69670a9a924f8d1b1b44d3489ccce1e29a949495bfb6bec3e489f43525
4
+ data.tar.gz: 6e8320b3f698d568c717661c3fb5b145505959d662f96ea02d63726cf3dff22a
5
5
  SHA512:
6
- metadata.gz: ac1c6faae15a4569c92d8061a270f7b55aad7c64eaf2f16bc057b31312204164771600a5ebb511a0d7e0977123baf65b22125f69832dc6b2af63637bb4689814
7
- data.tar.gz: 37b874280272f531177bf348d038b5b6e935f2a4edefeef1c1c7d4e5e68c2613047a75ea782daa412053fb8f50c312d6a27d5f264509f758cd6eb82abf1afe8d
6
+ metadata.gz: f0e05b88efa2d452f512e6846d43eaf89408742412ff3c34161f6d21ca2b87d1431a74d5d4b20482580733e013d00f2455b17806ee02a559643115093a78e143
7
+ data.tar.gz: 430cbd8c797d9aaf6a264d9116acd86f4a115c2bcfef12421ac6bbc988bdbf4cff6d5124b9f2a4355211b80450b8e80687d602c1aab159049964a7c690b956c6
data/README.md CHANGED
@@ -37,8 +37,9 @@ Hubspot.configure({
37
37
  client_id: <CLIENT_ID>,
38
38
  client_secret: <CLIENT_SECRET>,
39
39
  redirect_uri: <REDIRECT_URI>,
40
- read_timeout: nil, # or :timeout to set read_timeout and open_timeout
40
+ read_timeout: nil,
41
41
  open_timeout: nil,
42
+ # read_timeout and open_timeout are expressed in seconds and passed to HTTParty
42
43
  hapikey: <HAPIKEY>,
43
44
  })
44
45
  ```
@@ -169,6 +170,7 @@ Some requests require to be done on a live hubspot portal, you can set the `HUBS
169
170
  ```
170
171
  HUBSPOT_ACCESS_TOKEN=xxxx
171
172
  HUBSPOT_PORTAL_ID=yyyy
173
+ HUBSPOT_HAPI_KEY=zzzz
172
174
  ```
173
175
 
174
176
  To add a new test or update a VCR recording, run the test with the `VCR_RECORD_MODE`
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "hubspot-api-ruby"
3
- s.version = "0.10.0"
3
+ s.version = "0.11.0"
4
4
  s.require_paths = ["lib"]
5
5
  s.authors = ["Jonathan"]
6
6
  s.email = ["jonathan@hoggo.com"]
@@ -3,6 +3,8 @@ module Hubspot
3
3
 
4
4
  ALL_PROPERTIES_PATH = "/properties/v1/companies/properties"
5
5
  ALL_GROUPS_PATH = "/properties/v1/companies/groups"
6
+ PROPERTY_PATH = "/properties/v1/companies/properties/named/:property_name"
7
+ GROUP_PATH = "/properties/v1/companies/groups/named/:group_name"
6
8
  CREATE_PROPERTY_PATH = "/properties/v1/companies/properties"
7
9
  UPDATE_PROPERTY_PATH = "/properties/v1/companies/properties/named/:property_name"
8
10
  DELETE_PROPERTY_PATH = "/properties/v1/companies/properties/named/:property_name"
@@ -19,10 +21,18 @@ module Hubspot
19
21
  superclass.all(ALL_PROPERTIES_PATH, opts, filter)
20
22
  end
21
23
 
24
+ def find(property_name, opts={})
25
+ superclass.find(PROPERTY_PATH, property_name, opts)
26
+ end
27
+
22
28
  def groups(opts={}, filter={})
23
29
  superclass.groups(ALL_GROUPS_PATH, opts, filter)
24
30
  end
25
31
 
32
+ def find_group(group_name, opts={})
33
+ superclass.find_group(GROUP_PATH, group_name, opts={})
34
+ end
35
+
26
36
  def create!(params={})
27
37
  superclass.create!(CREATE_PROPERTY_PATH, params)
28
38
  end
@@ -3,6 +3,8 @@ module Hubspot
3
3
 
4
4
  ALL_PROPERTIES_PATH = "/properties/v1/contacts/properties"
5
5
  ALL_GROUPS_PATH = "/properties/v1/contacts/groups"
6
+ PROPERTY_PATH = "/properties/v1/contacts/properties/named/:property_name"
7
+ GROUP_PATH = "/properties/v1/contacts/groups/named/:group_name"
6
8
  CREATE_PROPERTY_PATH = "/properties/v1/contacts/properties"
7
9
  UPDATE_PROPERTY_PATH = "/properties/v1/contacts/properties/named/:property_name"
8
10
  DELETE_PROPERTY_PATH = "/properties/v1/contacts/properties/named/:property_name"
@@ -19,10 +21,18 @@ module Hubspot
19
21
  superclass.all(ALL_PROPERTIES_PATH, opts, filter)
20
22
  end
21
23
 
24
+ def find(property_name, opts={})
25
+ superclass.find(PROPERTY_PATH, property_name, opts)
26
+ end
27
+
22
28
  def groups(opts={}, filter={})
23
29
  superclass.groups(ALL_GROUPS_PATH, opts, filter)
24
30
  end
25
31
 
32
+ def find_group(group_name, opts={})
33
+ superclass.find_group(GROUP_PATH, group_name, opts)
34
+ end
35
+
26
36
  def create!(params={})
27
37
  superclass.create!(CREATE_PROPERTY_PATH, params)
28
38
  end
@@ -3,6 +3,8 @@ module Hubspot
3
3
 
4
4
  ALL_PROPERTIES_PATH = '/deals/v1/properties'
5
5
  ALL_GROUPS_PATH = '/deals/v1/groups'
6
+ PROPERTY_PATH = '/properties/v1/deals/properties/named/:property_name'
7
+ GROUP_PATH = '/properties/v1/deals/groups/named/:group_name'
6
8
  CREATE_PROPERTY_PATH = '/deals/v1/properties/'
7
9
  UPDATE_PROPERTY_PATH = '/deals/v1/properties/named/:property_name'
8
10
  DELETE_PROPERTY_PATH = '/deals/v1/properties/named/:property_name'
@@ -19,10 +21,18 @@ module Hubspot
19
21
  superclass.all(ALL_PROPERTIES_PATH, opts, filter)
20
22
  end
21
23
 
24
+ def find(property_name, opts={})
25
+ superclass.find(PROPERTY_PATH, property_name, opts)
26
+ end
27
+
22
28
  def groups(opts={}, filter={})
23
29
  superclass.groups(ALL_GROUPS_PATH, opts, filter)
24
30
  end
25
31
 
32
+ def find_group(group_name, opts={})
33
+ superclass.find_group(GROUP_PATH, group_name, opts)
34
+ end
35
+
26
36
  def create!(params={})
27
37
  superclass.create!(CREATE_PROPERTY_PATH, params)
28
38
  end
@@ -26,11 +26,19 @@ module Hubspot
26
26
  filter_results(response, :groupName, filter[:include], filter[:exclude])
27
27
  end
28
28
 
29
+ def find(path, property_name, opts={})
30
+ response = Hubspot::Connection.get_json(path, opts.merge({ property_name: property_name }))
31
+ end
32
+
29
33
  def groups(path, opts={}, filter={})
30
34
  response = Hubspot::Connection.get_json(path, opts)
31
35
  filter_results(response, :name, filter[:include], filter[:exclude])
32
36
  end
33
37
 
38
+ def find_group(path, group_name, opts={})
39
+ response = Hubspot::Connection.get_json(path, opts.merge({ group_name: group_name }))
40
+ end
41
+
34
42
  def create!(path, params={})
35
43
  post_data = valid_property_params(params)
36
44
  return nil if post_data.blank?
@@ -111,6 +111,26 @@ RSpec.describe Hubspot::CompanyProperties do
111
111
  end
112
112
  end
113
113
 
114
+ describe '.find' do
115
+ context 'existing property' do
116
+ cassette 'company_properties/existing_property'
117
+
118
+ it 'should return a company property by name if it exists' do
119
+ response = Hubspot::CompanyProperties.find('domain')
120
+ expect(response['name']).to eq 'domain'
121
+ expect(response['label']).to eq 'Company Domain Name'
122
+ end
123
+ end
124
+
125
+ context 'non-existent property' do
126
+ cassette 'company_properties/non_existent_property'
127
+
128
+ it 'should return an error for a missing property' do
129
+ expect{ Hubspot::CompanyProperties.find('this_does_not_exist') }.to raise_error(Hubspot::NotFoundError)
130
+ end
131
+ end
132
+ end
133
+
114
134
  describe ".create!" do
115
135
  it "creates a company property" do
116
136
  VCR.use_cassette("company_properties/create_property") do
@@ -332,6 +352,26 @@ RSpec.describe Hubspot::CompanyProperties do
332
352
  end
333
353
  end
334
354
 
355
+ describe '.find_group' do
356
+ context 'existing group' do
357
+ cassette 'company_properties/existing_group'
358
+
359
+ it 'should return a company property group by name if it exists' do
360
+ response = Hubspot::CompanyProperties.find_group('companyinformation')
361
+ expect(response['name']).to eq 'companyinformation'
362
+ expect(response['displayName']).to eq 'Company information'
363
+ end
364
+ end
365
+
366
+ context 'non-existent group' do
367
+ cassette 'company_properties/non_existent_group'
368
+
369
+ it 'should return an error for a missing group' do
370
+ expect{ Hubspot::CompanyProperties.find_group('this_does_not_exist') }.to raise_error(Hubspot::NotFoundError)
371
+ end
372
+ end
373
+ end
374
+
335
375
  let(:params) { { 'name' => 'ff_group1', 'displayName' => 'Test Group One', 'displayOrder' => 100, 'badParam' => 99 } }
336
376
 
337
377
  describe '.create_group!' do
@@ -38,6 +38,26 @@ describe Hubspot::ContactProperties do
38
38
  end
39
39
  end
40
40
 
41
+ describe '.find' do
42
+ context 'existing property' do
43
+ cassette 'contact_properties/existing_property'
44
+
45
+ it 'should return a contact property by name if it exists' do
46
+ response = Hubspot::ContactProperties.find('full_name')
47
+ expect(response['name']).to eq 'full_name'
48
+ expect(response['label']).to eq 'Full name'
49
+ end
50
+ end
51
+
52
+ context 'non-existent property' do
53
+ cassette 'contact_properties/non_existent_property'
54
+
55
+ it 'should return an error for a missing property' do
56
+ expect{ Hubspot::ContactProperties.find('this_does_not_exist') }.to raise_error(Hubspot::NotFoundError)
57
+ end
58
+ end
59
+ end
60
+
41
61
  let(:params) { {
42
62
  'name' => 'my_new_property',
43
63
  'label' => 'This is my new property',
@@ -141,6 +161,26 @@ describe Hubspot::ContactProperties do
141
161
  end
142
162
  end
143
163
 
164
+ describe '.find_group' do
165
+ context 'existing group' do
166
+ cassette 'contact_properties/existing_group'
167
+
168
+ it 'should return a contact property by name if it exists' do
169
+ response = Hubspot::ContactProperties.find_group('contactinformation')
170
+ expect(response['name']).to eq 'contactinformation'
171
+ expect(response['displayName']).to eq 'Contact information'
172
+ end
173
+ end
174
+
175
+ context 'non-existent group' do
176
+ cassette 'contact_properties/non_existent_group'
177
+
178
+ it 'should return an error for a missing group' do
179
+ expect{ Hubspot::ContactProperties.find_group('this_does_not_exist') }.to raise_error(Hubspot::NotFoundError)
180
+ end
181
+ end
182
+ end
183
+
144
184
  let(:params) { { 'name' => 'ff_group1', 'displayName' => 'Test Group One', 'displayOrder' => 100, 'badParam' => 99 } }
145
185
 
146
186
  describe '.create_group!' do
@@ -37,6 +37,26 @@ describe Hubspot::DealProperties do
37
37
  end
38
38
  end
39
39
  end
40
+
41
+ describe '.find' do
42
+ context 'existing property' do
43
+ cassette 'deal_properties/existing_property'
44
+
45
+ it 'should return a deal property by name if it exists' do
46
+ response = Hubspot::DealProperties.find('hs_acv')
47
+ expect(response['name']).to eq 'hs_acv'
48
+ expect(response['label']).to eq 'Annual contract value'
49
+ end
50
+ end
51
+
52
+ context 'non-existent property' do
53
+ cassette 'deal_properties/non_existent_property'
54
+
55
+ it 'should return an error for a missing property' do
56
+ expect{ Hubspot::DealProperties.find('this_does_not_exist') }.to raise_error(Hubspot::NotFoundError)
57
+ end
58
+ end
59
+ end
40
60
 
41
61
  let(:params) { {
42
62
  'name' => "my_new_property_#{SecureRandom.hex}",
@@ -140,6 +160,26 @@ describe Hubspot::DealProperties do
140
160
  end
141
161
  end
142
162
 
163
+ describe '.find_group' do
164
+ context 'existing group' do
165
+ cassette 'deal_properties/existing_group'
166
+
167
+ it 'should return a deal property by name if it exists' do
168
+ response = Hubspot::DealProperties.find_group('deal_revenue')
169
+ expect(response['name']).to eq 'deal_revenue'
170
+ expect(response['displayName']).to eq 'Deal revenue'
171
+ end
172
+ end
173
+
174
+ context 'non-existent group' do
175
+ cassette 'deal_properties/non_existent_group'
176
+
177
+ it 'should return an error for a missing group' do
178
+ expect{ Hubspot::DealProperties.find_group('this_does_not_exist') }.to raise_error(Hubspot::NotFoundError)
179
+ end
180
+ end
181
+ end
182
+
143
183
  let(:params) { { 'name' => 'ff_group1', 'displayName' => 'Test Group One', 'displayOrder' => 100, 'badParam' => 99 } }
144
184
 
145
185
  describe '.create_group!' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hubspot-api-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.0
4
+ version: 0.11.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-08-09 00:00:00.000000000 Z
11
+ date: 2022-09-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -346,7 +346,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
346
346
  - !ruby/object:Gem::Version
347
347
  version: '0'
348
348
  requirements: []
349
- rubygems_version: 3.2.32
349
+ rubygems_version: 3.1.2
350
350
  signing_key:
351
351
  specification_version: 4
352
352
  summary: hubspot-api-ruby is a wrapper for the HubSpot REST API