hubspot_client 0.2.0 → 0.3.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: 29ef10cf9b14d327f1d9990684aca8cfe7c7988cbf26cb4420c20bc14c18d237
4
- data.tar.gz: fded388fb01ad2b338ba0ba32631553d24e72612fa0866644c9d95725b91542d
3
+ metadata.gz: c5904fbc990f2c806e61e911eba497a18c8d5edd447bf037e7645b67c996316e
4
+ data.tar.gz: 37c4de7c938ae280b5c33f184eb2bdc8c4c86aab769aeed3c55223f64a66cf26
5
5
  SHA512:
6
- metadata.gz: e5b1458f89a50a95e1323b984329b10b47a992e05b8f1a662935ada633d019e111043de8e4ec31c453fb61f8421bca05be70c63d32629f556ac216b49e60d383
7
- data.tar.gz: 512dfc4ba03b80366059709c74ea09559c5e925c339dbdc556b4a24efd0d81db9cedd99ff90c308890c5e1b7fce83c2aeb034ed1a1d69f9cf58e4565f8879774
6
+ metadata.gz: 285786683544164c349a56e2dbfc14ffdaff18f073aaf6e409daa0dc5c12a892f5ffffc0e7607b31f0ae8a85a77e542d25edd69576411f61f6cb18033a510d9e
7
+ data.tar.gz: 13a19aa59a459dfa3b50e3a2314e89f9d611fea3a2a56d862c1490c893d46f5f59bb3af313e917e3cb2b8999fac6afd6a5da7aef8619a0f432987f505b568127
@@ -0,0 +1,60 @@
1
+ name: CI
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ rspec:
7
+ runs-on: ubuntu-latest
8
+ strategy:
9
+ matrix:
10
+ ruby: ['3.0', '3.1', '3.2']
11
+ name: "ruby ${{ matrix.ruby }}"
12
+
13
+ steps:
14
+ - uses: actions/checkout@v3
15
+ - uses: ruby/setup-ruby@v1
16
+ with:
17
+ ruby-version: ${{ matrix.ruby }}
18
+ - name: Bundle install
19
+ run: |
20
+ gem install bundler
21
+ bundle install
22
+ - name: Run RSpec
23
+ run: |
24
+ bundle exec rspec
25
+
26
+ rubocop:
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - uses: actions/checkout@v3
30
+ - uses: ruby/setup-ruby@v1
31
+ with:
32
+ ruby-version: 3.1
33
+ - name: Bundle install
34
+ run: |
35
+ gem install bundler
36
+ bundle install
37
+ - name: Run rubocop
38
+ run: |
39
+ bundle exec rubocop
40
+ coverage:
41
+ name: coverage
42
+ runs-on: ubuntu-latest
43
+ steps:
44
+ - uses: actions/checkout@v1
45
+ - uses: ruby/setup-ruby@v1
46
+ with:
47
+ ruby-version: 3.1
48
+ - name: Setup Code Climate test-reporter
49
+ run: |
50
+ curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
51
+ chmod +x ./cc-test-reporter
52
+ ./cc-test-reporter before-build
53
+ - name: Build and test with RSpec
54
+ run: |
55
+ gem install bundler
56
+ bundle install
57
+ bundle exec rspec
58
+ - name: Publish code coverage
59
+ run: |
60
+ ./cc-test-reporter after-build -r ${{ secrets.CC_TEST_REPORTER_ID }}
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
1
  .env
2
2
  .idea/
3
3
  .ruby-version
4
+ coverage/*
data/CHANGELOG.md CHANGED
@@ -1,3 +1,23 @@
1
+ ## 0.3.0
2
+
3
+ ### Features
4
+ * add client form, to get all forms
5
+ * add client submission, to submit forms
6
+
7
+ ## 0.2.1 (2022-12-07)
8
+
9
+ ### Patch
10
+ * only update writeable properties
11
+
12
+ ## 0.2.0 (2022-12-02)
13
+
14
+ ### Features
15
+ * Show response body, if the request was not successfully.
16
+ * Remove whitelist updatable_properties
17
+
18
+ ### Breaking Changes
19
+ None
20
+
1
21
  ## 0.1.0 (2022-11-30)
2
22
 
3
23
  ### Features
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- hubspot_client (0.2.0)
4
+ hubspot_client (0.3.0)
5
5
  httparty (~> 0.20.0)
6
6
 
7
7
  GEM
@@ -14,6 +14,7 @@ GEM
14
14
  crack (0.4.5)
15
15
  rexml
16
16
  diff-lcs (1.5.0)
17
+ docile (1.4.0)
17
18
  dotenv (2.8.1)
18
19
  hashdiff (1.0.1)
19
20
  httparty (0.20.0)
@@ -63,6 +64,12 @@ GEM
63
64
  rubocop-rspec (2.15.0)
64
65
  rubocop (~> 1.33)
65
66
  ruby-progressbar (1.11.0)
67
+ simplecov (0.22.0)
68
+ docile (~> 1.1)
69
+ simplecov-html (~> 0.11)
70
+ simplecov_json_formatter (~> 0.1)
71
+ simplecov-html (0.12.3)
72
+ simplecov_json_formatter (0.1.4)
66
73
  unicode-display_width (2.3.0)
67
74
  vcr (6.1.0)
68
75
  webmock (3.18.1)
@@ -81,6 +88,7 @@ DEPENDENCIES
81
88
  rspec (~> 3.12)
82
89
  rubocop (~> 1.39)
83
90
  rubocop-rspec (~> 2.15)
91
+ simplecov (~> 0.22.0)
84
92
  vcr (~> 6.1)
85
93
  webmock (~> 3.18)
86
94
 
data/README.md CHANGED
@@ -1,6 +1,12 @@
1
1
 
2
2
  # HubspotClient
3
3
 
4
+ [![Gem
5
+ Version](https://badge.fury.io/rb/hubspot_client.svg)](https://badge.fury.io/rb/hubspot_client)
6
+ [![Rspec and Rubocop](https://github.com/Farbfox/hubspot_client/actions/workflows/ci.yml/badge.svg?branch=main)](https://github.com/Farbfox/hubspot_client/actions/workflows/ci.yml)
7
+ [![Maintainability](https://api.codeclimate.com/v1/badges/ceed6d4994b8705c8558/maintainability)](https://codeclimate.com/github/Farbfox/hubspot_client/maintainability)
8
+ [![Test Coverage](https://api.codeclimate.com/v1/badges/ceed6d4994b8705c8558/test_coverage)](https://codeclimate.com/github/Farbfox/hubspot_client/test_coverage)
9
+
4
10
  A Hubspot Client. Currently we only support the following CRM Parts:
5
11
  * Contact
6
12
  * Company
@@ -108,12 +114,36 @@ hubspot_company.update
108
114
  hubspot_company.update({ name: 'Blubber' })
109
115
  ```
110
116
 
111
-
112
-
113
117
  ### Communication-Preference
114
118
 
115
119
  [Hubspot- API](https://developers.hubspot.com/docs/api/marketing-api/subscriptions-preferences)
116
120
 
121
+ ## Clients
122
+
123
+ Clients are normally under the hood of models. However you can use them directly if you like.
124
+
125
+ ### Submission
126
+
127
+ [forms/submit_form_v3_authentication](https://legacydocs.hubspot.com/docs/methods/forms/submit_form_v3_authentication#:~:text=As%20this%20API%20is%20authenticated%2C)
128
+
129
+ With the `HubspotClient::Client::Form.all_forms` method you can get all forms from your hubspot instance.
130
+ Checkout which fields you need.
131
+
132
+ ```ruby
133
+ HubspotClient::Client::Submission.new(portal_id: '1337', form_guid: '1337', fields: fields).submit
134
+ ```
135
+
136
+ The `fields` parameter is a list of objects with the following properties:
137
+ ```ruby
138
+ [
139
+ {
140
+ "objectTypeId": '0-1',
141
+ "name": 'email',
142
+ "value": 'darth_garllon@example.com'
143
+ }
144
+ ]
145
+ ```
146
+
117
147
  ## Development
118
148
 
119
149
  After checking out the repo, run
@@ -39,6 +39,7 @@ Gem::Specification.new do |spec|
39
39
  spec.add_development_dependency 'rspec', '~> 3.12'
40
40
  spec.add_development_dependency 'rubocop', '~> 1.39'
41
41
  spec.add_development_dependency 'rubocop-rspec', '~> 2.15'
42
+ spec.add_development_dependency 'simplecov', '~> 0.22.0'
42
43
  spec.add_development_dependency 'vcr', '~> 6.1'
43
44
  spec.add_development_dependency 'webmock', '~> 3.18'
44
45
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ module HubspotClient
4
+ module Client
5
+ class Form
6
+ include HTTParty
7
+ base_uri 'https://api.hubapi.com'
8
+
9
+ BASE_PATH_V3 = '/marketing/v3/forms/'
10
+
11
+ def self.all_forms(limit: 20)
12
+ url = "#{BASE_PATH_V3}?limit=#{limit}"
13
+ get(url, headers: headers)
14
+ end
15
+
16
+ def self.headers
17
+ { Authorization: "Bearer #{HubspotClient.configuration.access_token}",
18
+ 'Content-Type': 'application/json' }
19
+ end
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,36 @@
1
+ # frozen_string_literal: true
2
+
3
+ module HubspotClient
4
+ module Client
5
+ class Submission
6
+ include HTTParty
7
+ base_uri 'https://api.hsforms.com'
8
+
9
+ BASE_PATH_V3 = '/submissions/v3/integration/secure/submit'
10
+
11
+ def initialize(portal_id:, form_guid:, fields: [])
12
+ @portal_id = portal_id
13
+ @form_guid = form_guid
14
+ @fields = fields
15
+ end
16
+
17
+ def submit
18
+ url = "#{BASE_PATH_V3}/#{@portal_id}/#{@form_guid}"
19
+ self.class.post(url, body: body.to_json, headers: headers)
20
+ end
21
+
22
+ private
23
+
24
+ def body
25
+ {
26
+ "fields": @fields
27
+ }
28
+ end
29
+
30
+ def headers
31
+ { Authorization: "Bearer #{HubspotClient.configuration.access_token}",
32
+ 'Content-Type': 'application/json' }
33
+ end
34
+ end
35
+ end
36
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module HubspotClient
4
- VERSION = '0.2.0'
4
+ VERSION = '0.3.0'
5
5
  end
@@ -5,7 +5,9 @@ require 'hubspot_client/client_base_error'
5
5
  require 'hubspot_client/client/communication_preference'
6
6
  require 'hubspot_client/client/company'
7
7
  require 'hubspot_client/client/contact'
8
+ require 'hubspot_client/client/form'
8
9
  require 'hubspot_client/client/properties'
10
+ require 'hubspot_client/client/submission'
9
11
  require 'hubspot_client/configuration'
10
12
  require 'hubspot_client/model/communication_preference'
11
13
  require 'hubspot_client/model/company'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hubspot_client
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Garllon
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2022-12-02 00:00:00.000000000 Z
12
+ date: 2023-07-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: httparty
@@ -115,6 +115,20 @@ dependencies:
115
115
  - - "~>"
116
116
  - !ruby/object:Gem::Version
117
117
  version: '2.15'
118
+ - !ruby/object:Gem::Dependency
119
+ name: simplecov
120
+ requirement: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - "~>"
123
+ - !ruby/object:Gem::Version
124
+ version: 0.22.0
125
+ type: :development
126
+ prerelease: false
127
+ version_requirements: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - "~>"
130
+ - !ruby/object:Gem::Version
131
+ version: 0.22.0
118
132
  - !ruby/object:Gem::Dependency
119
133
  name: vcr
120
134
  requirement: !ruby/object:Gem::Requirement
@@ -151,7 +165,7 @@ executables: []
151
165
  extensions: []
152
166
  extra_rdoc_files: []
153
167
  files:
154
- - ".github/workflows/rspec_and_rubocop.yml"
168
+ - ".github/workflows/ci.yml"
155
169
  - ".gitignore"
156
170
  - ".rubocop.yml"
157
171
  - CHANGELOG.md
@@ -164,7 +178,9 @@ files:
164
178
  - lib/hubspot_client/client/communication_preference.rb
165
179
  - lib/hubspot_client/client/company.rb
166
180
  - lib/hubspot_client/client/contact.rb
181
+ - lib/hubspot_client/client/form.rb
167
182
  - lib/hubspot_client/client/properties.rb
183
+ - lib/hubspot_client/client/submission.rb
168
184
  - lib/hubspot_client/client_base_error.rb
169
185
  - lib/hubspot_client/configuration.rb
170
186
  - lib/hubspot_client/model/communication_preference.rb
@@ -1,41 +0,0 @@
1
- name: Rspec and Rubocop
2
-
3
- on:
4
- push:
5
- branches-ignore:
6
- - 'main'
7
- jobs:
8
- rspec:
9
- runs-on: ubuntu-latest
10
- strategy:
11
- matrix:
12
- ruby: ['3.0', '3.1']
13
- name: "ruby ${{ matrix.ruby }}"
14
-
15
- steps:
16
- - uses: actions/checkout@v3
17
- - uses: ruby/setup-ruby@v1
18
- with:
19
- ruby-version: ${{ matrix.ruby }}
20
- - name: Bundle install
21
- run: |
22
- gem install bundler
23
- bundle install
24
- - name: Run RSpec
25
- run: |
26
- bundle exec rspec
27
-
28
- rubocop:
29
- runs-on: ubuntu-latest
30
- steps:
31
- - uses: actions/checkout@v3
32
- - uses: ruby/setup-ruby@v1
33
- with:
34
- ruby-version: 3.1
35
- - name: Bundle install
36
- run: |
37
- gem install bundler
38
- bundle install
39
- - name: Run rubocop
40
- run: |
41
- bundle exec rubocop