hubspot-ruby 0.8.1 → 0.9.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: 8b4e0d97120e424e764b058229fa8abc9b2c5e6f14ad3723dac98c9634287c72
4
- data.tar.gz: a28a8dc60afee0f31be36a1f48a61e93640016cc2c4c0889f42b4cd9895a92f4
3
+ metadata.gz: 41a0aeec54b2d900dfb6bd1d3e19521c7119eefa45be6ee235239845f6773379
4
+ data.tar.gz: 93c2715fcb9421d58b5bb2d4ac91af211a733ca0b3e8a33a152ccc529cfd6383
5
5
  SHA512:
6
- metadata.gz: cbd521270bc83f9202d2c8307211081381ae869467bbec355966119c062354c1ec7324e580d14a73dc94bba9882af8cbb440008d222ee9737725d3b20172f24c
7
- data.tar.gz: 18259085149a44dcb72c71f66026cc28c7949e6c6d6c1f82c4e060327ce93d547513e8cd18e486c50ee2f27fb59d256264d3bdb1431c239c277cdf626ca53d5d
6
+ metadata.gz: 22eae174071b14d21fb83859c2e463bec5b14605fbbea1659241bdb990ba8e5dd972ebaff048c52520fc23d4a61bcd024b3932acd475e3568986dff40b656dfe
7
+ data.tar.gz: c0a85d5cc804e4b84378039f235ba5e8aa9eeab6ea8bbeb3d274c13f261f1517391c508172cf8e5c7d02dd66d521088b870a28b753e41b840a6d3801de2b3a65
@@ -1,8 +1,8 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "hubspot-ruby"
3
- s.version = "0.8.1"
3
+ s.version = "0.9.0"
4
4
  s.require_paths = ["lib"]
5
- s.authors = ["Andrew DiMichele", "Chris Bisnett"]
5
+ s.authors = ["Andrew DiMichele", "Chris Bisnett", "Vladislav Ermolkin"]
6
6
  s.description = "hubspot-ruby is a wrapper for the HubSpot REST API"
7
7
  s.licenses = ["MIT"]
8
8
  s.files = [".rspec", "Gemfile", "Guardfile", "LICENSE.txt", "README.md", "RELEASING.md", "Rakefile", "hubspot-ruby.gemspec"]
@@ -21,6 +21,7 @@ require 'hubspot/owner'
21
21
  require 'hubspot/engagement'
22
22
  require 'hubspot/subscription'
23
23
  require 'hubspot/oauth'
24
+ require 'hubspot/file'
24
25
 
25
26
  module Hubspot
26
27
  def self.configure(config={})
@@ -151,7 +151,7 @@ module Hubspot
151
151
  end
152
152
  Hubspot::Connection.post_json(BATCH_UPDATE_PATH, params: {}, body: query)
153
153
  end
154
-
154
+
155
155
  # Adds contact to a company
156
156
  # {http://developers.hubspot.com/docs/methods/companies/add_contact_to_company}
157
157
  # @param company_vid [Integer] The ID of a company to add a contact to
@@ -171,7 +171,8 @@ module Hubspot
171
171
  attr_reader :vid, :name
172
172
 
173
173
  def initialize(response_hash)
174
- @properties = Hubspot::Utils.properties_to_hash(response_hash["properties"])
174
+ props = response_hash['properties'] || {}
175
+ @properties = Hubspot::Utils.properties_to_hash(props)
175
176
  @vid = response_hash["companyId"]
176
177
  @name = @properties.try(:[], "name")
177
178
  end
@@ -128,4 +128,32 @@ module Hubspot
128
128
  post(url, body: opts[:body], headers: { 'Content-Type' => 'application/x-www-form-urlencoded' })
129
129
  end
130
130
  end
131
+
132
+ class FilesConnection < Connection
133
+ follow_redirects true
134
+
135
+ class << self
136
+ def get(path, opts)
137
+ url = generate_url(path, opts)
138
+ response = super(url, read_timeout: read_timeout(opts), open_timeout: open_timeout(opts))
139
+ log_request_and_response url, response
140
+ raise(Hubspot::RequestError.new(response)) unless response.success?
141
+ response.parsed_response
142
+ end
143
+
144
+ def post(path, opts)
145
+ url = generate_url(path, opts[:params])
146
+ response = super(
147
+ url,
148
+ body: opts[:body],
149
+ headers: { 'Content-Type' => 'multipart/form-data' },
150
+ read_timeout: read_timeout(opts), open_timeout: open_timeout(opts)
151
+ )
152
+ log_request_and_response url, response, opts[:body]
153
+ raise(Hubspot::RequestError.new(response)) unless response.success?
154
+
155
+ response
156
+ end
157
+ end
158
+ end
131
159
  end
@@ -169,8 +169,8 @@ module Hubspot
169
169
  attr_reader :is_contact, :list_memberships
170
170
 
171
171
  def initialize(response_hash)
172
- props = response_hash['properties']
173
- @properties = Hubspot::Utils.properties_to_hash(props) unless props.blank?
172
+ props = response_hash['properties'] || {}
173
+ @properties = Hubspot::Utils.properties_to_hash(props)
174
174
  @is_contact = response_hash["is-contact"]
175
175
  @list_memberships = response_hash["list-memberships"] || []
176
176
  @vid = response_hash['vid']
@@ -22,11 +22,12 @@ module Hubspot
22
22
  attr_reader :vids
23
23
 
24
24
  def initialize(response_hash)
25
+ props = response_hash['properties'] || {}
26
+ @properties = Hubspot::Utils.properties_to_hash(props)
25
27
  @portal_id = response_hash["portalId"]
26
28
  @deal_id = response_hash["dealId"]
27
29
  @company_ids = response_hash["associations"]["associatedCompanyIds"]
28
30
  @vids = response_hash["associations"]["associatedVids"]
29
- @properties = Hubspot::Utils.properties_to_hash(response_hash["properties"])
30
31
  end
31
32
 
32
33
  class << self
@@ -0,0 +1,23 @@
1
+ module Hubspot
2
+ class File
3
+ UPLOAD_FILE_PATH = '/filemanager/api/v2/files'
4
+
5
+ class << self
6
+ def upload(file, params)
7
+ query = {
8
+ overwrite: params['overwrite'] || false,
9
+ hidden: params['hidden'] || false
10
+ }
11
+ options = {
12
+ multipart:
13
+ [
14
+ { name: 'files', contents: file },
15
+ { name: 'file_names', contents: params['file_names'] },
16
+ { name: 'folder_paths', contents: params['folder_paths'] }
17
+ ]
18
+ }
19
+ Hubspot::FilesConnection.post(UPLOAD_FILE_PATH, params: query, body: options)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -28,6 +28,11 @@ module Hubspot
28
28
  response = Hubspot::Connection.get_json(FORM_PATH, { form_guid: guid })
29
29
  new(response)
30
30
  end
31
+
32
+ def upload_file(uri)
33
+ path = URI::parse(uri).request_uri
34
+ Hubspot::FilesConnection.get(path, {})
35
+ end
31
36
  end
32
37
 
33
38
  attr_reader :guid
metadata CHANGED
@@ -1,15 +1,16 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: hubspot-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.1
4
+ version: 0.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew DiMichele
8
8
  - Chris Bisnett
9
+ - Vladislav Ermolkin
9
10
  autorequire:
10
11
  bindir: bin
11
12
  cert_chain: []
12
- date: 2019-04-30 00:00:00.000000000 Z
13
+ date: 2019-12-12 00:00:00.000000000 Z
13
14
  dependencies:
14
15
  - !ruby/object:Gem::Dependency
15
16
  name: activesupport
@@ -222,6 +223,7 @@ files:
222
223
  - lib/hubspot/deprecator.rb
223
224
  - lib/hubspot/engagement.rb
224
225
  - lib/hubspot/exceptions.rb
226
+ - lib/hubspot/file.rb
225
227
  - lib/hubspot/form.rb
226
228
  - lib/hubspot/oauth.rb
227
229
  - lib/hubspot/owner.rb
@@ -278,8 +280,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
278
280
  - !ruby/object:Gem::Version
279
281
  version: '0'
280
282
  requirements: []
281
- rubyforge_project:
282
- rubygems_version: 2.7.6
283
+ rubygems_version: 3.0.6
283
284
  signing_key:
284
285
  specification_version: 4
285
286
  summary: hubspot-ruby is a wrapper for the HubSpot REST API