hubspot_client 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
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