zoho_hub 0.1.5 → 0.1.6

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: 0b23f6aa20d1da0bdecbd5c4fa1abc88dbeb815102608f782ffa44db3a218ff7
4
- data.tar.gz: 9a9879bfeed29a2bdc2589aef1caf17a9c60ecdf0590a4755146cc374b318de1
3
+ metadata.gz: 8d8a71de9f706d946eff1f922d60eff71402959da1661595d6681df43eab9bb4
4
+ data.tar.gz: 7609bda6aeff1132269dd46c2ce6aa358b2cebabc1731104893a7b6257758965
5
5
  SHA512:
6
- metadata.gz: 546fc34e6c58272b4e1b3c704cbede0c79713f26ed30014cdf2a50abdc6082c9369f5dd72ff0a7c4db3cb2f196f83a9e3da2b26f1f554f6a79f4b32db4376b89
7
- data.tar.gz: 5fa9719c942625ca52188b0dde3b05e66d13a7f7684b37efde1d80b338f16fd640ad14a2c9bf80a6b6c5696ac681de841d2719f4d3d5b2f2683457c6ef62f1d8
6
+ metadata.gz: f8f06f6439c94caeb6463e1fcb96bf58fc4afe60694babdb8817132e4bfb60e12ec0eef30ae87cf76a94ff220cd87714ebafd40a69ab5fc30b6770a0b3ba716a
7
+ data.tar.gz: ba0097136d9e8aba75c2ac00c70025e9166fc43a556f02acf2416753064613dc0fa8db29044f3801f7488484d1c8806ee758c8c669b5e32402269153ae740338
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- zoho_hub (0.1.5)
4
+ zoho_hub (0.1.6)
5
5
  activesupport (~> 5.2)
6
6
  addressable (~> 2.5)
7
7
  faraday (~> 0.15)
data/bin/console CHANGED
@@ -11,13 +11,11 @@ ZohoHub.configure do |config|
11
11
  config.client_id = ENV['ZOHO_CLIENT_ID']
12
12
  config.secret = ENV['ZOHO_SECRET']
13
13
  config.redirect_uri = ENV['ZOHO_OAUTH_REDIRECT_URL']
14
- # config.debug = true
14
+ config.debug = true
15
15
  end
16
16
 
17
17
  token_params = ZohoHub::Auth.refresh_token(ENV['ZOHO_REFRESH_TOKEN'])
18
18
  ZohoHub.setup_connection(token_params)
19
19
 
20
- include ZohoHub # rubocop:disable Style/MixinUsage
21
-
22
20
  require 'pry'
23
21
  Pry.start
data/lib/zoho_hub.rb CHANGED
@@ -12,6 +12,9 @@ require 'zoho_hub/records/contact'
12
12
  require 'zoho_hub/records/potential'
13
13
  require 'zoho_hub/records/campaign'
14
14
  require 'zoho_hub/records/account'
15
+ require 'zoho_hub/records/quote'
16
+ require 'zoho_hub/records/funder'
17
+ require 'zoho_hub/records/product'
15
18
 
16
19
  module ZohoHub
17
20
  module_function
@@ -10,6 +10,9 @@ require 'zoho_hub/response'
10
10
  module ZohoHub
11
11
  class Connection
12
12
  attr_accessor :debug, :access_token, :expires_in, :api_domain, :refresh_token
13
+
14
+ # This is a block to be run when the token is refreshed. This way you can do whatever you want
15
+ # with the new parameters returned by the refresh method.
13
16
  attr_accessor :on_refresh_cb
14
17
 
15
18
  DEFAULT_DOMAIN = 'https://www.zohoapis.eu'
@@ -75,6 +78,8 @@ module ZohoHub
75
78
  @access_token = params[:access_token]
76
79
 
77
80
  http_response = yield
81
+ elsif response.authentication_failure?
82
+ raise ZohoAPIError, response.msg
78
83
  end
79
84
 
80
85
  http_response
@@ -9,4 +9,7 @@ module ZohoHub
9
9
 
10
10
  class InvalidTokenError < StandardError
11
11
  end
12
+
13
+ class ZohoAPIError < StandardError
14
+ end
12
15
  end
@@ -5,16 +5,10 @@ require 'zoho_hub/response'
5
5
  module ZohoHub
6
6
  class BaseRecord
7
7
  class << self
8
- def record_name(name = nil)
9
- @record_name = name if name
10
- @record_name ||= to_s.demodulize.pluralize
11
- @record_name
12
- end
13
-
14
- def list_name(name = nil)
15
- @list_name = name if name
16
- @list_name ||= to_s.demodulize.pluralize.downcase
17
- @list_name
8
+ def request_path(name = nil)
9
+ @request_path = name if name
10
+ @request_path ||= to_s.demodulize.pluralize
11
+ @request_path
18
12
  end
19
13
 
20
14
  def attributes(*attributes)
@@ -40,18 +34,20 @@ module ZohoHub
40
34
  end
41
35
 
42
36
  def find(id)
43
- body = get(File.join(record_name, id.to_s))
37
+ body = get(File.join(request_path, id.to_s))
44
38
  response = build_response(body)
45
39
 
46
40
  if response.empty?
47
- raise RecordNotFound, "Couldn't find #{record_name.singularize} with 'id'=#{id}"
41
+ raise RecordNotFound, "Couldn't find #{request_path.singularize} with 'id'=#{id}"
48
42
  end
49
43
 
50
44
  new(response.data)
51
45
  end
52
46
 
53
47
  def where(params)
54
- response = get(list_name, params)
48
+ path = File.join(request_path, 'search')
49
+
50
+ response = get(path, params)
55
51
  data = response[:data]
56
52
 
57
53
  data.map { |info| new(info) }
@@ -70,7 +66,7 @@ module ZohoHub
70
66
  options[:page] ||= 1
71
67
  options[:per_page] ||= 200
72
68
 
73
- body = get(list_name, options)
69
+ body = get(request_path, options)
74
70
  response = build_response(body)
75
71
 
76
72
  data = response.nil? ? [] : response.data
@@ -126,9 +122,9 @@ module ZohoHub
126
122
 
127
123
  def save
128
124
  body = if new_record? # create new record
129
- post(self.class.record_name, data: [to_params])
125
+ post(self.class.request_path, data: [to_params])
130
126
  else # update existing record
131
- path = File.join(self.class.record_name, id)
127
+ path = File.join(self.class.request_path, id)
132
128
  put(path, data: [to_params])
133
129
  end
134
130
 
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ZohoHub
4
+ class Vendor < BaseRecord
5
+ def initialize(params)
6
+ puts Rainbow(params).red.bright
7
+ end
8
+ end
9
+ end
@@ -4,13 +4,11 @@ require 'zoho_hub/records/base_record'
4
4
 
5
5
  module ZohoHub
6
6
  class Potential < BaseRecord
7
- list_name 'Potentials'
8
-
9
7
  attributes :id, :code, :deal_name, :amount, :description, :stage
10
8
  attributes :company_age_years, :company_age_months, :term, :use_proceeds, :proceeds_detail
11
9
  attributes :currency, :territory, :employee_count, :turnover, :industry, :region
12
10
  attributes :review_outcome, :first_created, :last_modified, :preferred_term
13
- attributes :campaign_id, :account_id, :contact_id, :campaign_detail
11
+ attributes :campaign_id, :account_id, :contact_id, :campaign_detail, :reviewers_comment
14
12
 
15
13
  DEFAULTS = {
16
14
  currency: 'GBP',
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ module ZohoHub
4
+ class Product < BaseRecord
5
+ def initialize(params)
6
+ puts Rainbow(params).red.bright
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,34 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'zoho_hub/records/base_record'
4
+
5
+ module ZohoHub
6
+ class Quote < BaseRecord
7
+ attributes :id, :stage, :subject
8
+ attributes :potential_id
9
+
10
+ attribute_translation(
11
+ id: :id,
12
+ stage: :Quote_Stage
13
+ )
14
+
15
+ def initialize(params)
16
+ puts Rainbow(params).bright.red
17
+ attributes.each do |attr|
18
+ zoho_key = attr_to_zoho_key(attr)
19
+
20
+ send("#{attr}=", params[zoho_key] || params[attr])
21
+ end
22
+
23
+ @potential_id ||= params.dig(:Deal_Name, :id)
24
+ @lender_organisation_id ||= params.dig(:Account_Name, :id)
25
+ end
26
+
27
+ def to_params
28
+ params = super
29
+
30
+ params[:Deal_Name] = { id: @potential_id } if @potential_id
31
+ params[:Account_Name] = { id: @lender_organisation_id } if @lender_organisation_id
32
+ end
33
+ end
34
+ end
@@ -7,14 +7,24 @@ module ZohoHub
7
7
  end
8
8
 
9
9
  def invalid_data?
10
+ return false if data.is_a?(Array)
11
+
10
12
  data[:code] == 'INVALID_DATA'
11
13
  end
12
14
 
13
15
  # {:code=>"INVALID_TOKEN", :details=>{}, :message=>"invalid oauth token", :status=>"error"}
14
16
  def invalid_token?
17
+ return false if data.is_a?(Array)
18
+
15
19
  data[:code] == 'INVALID_TOKEN'
16
20
  end
17
21
 
22
+ def authentication_failure?
23
+ return false if data.is_a?(Array)
24
+
25
+ data[:code] == 'AUTHENTICATION_FAILURE'
26
+ end
27
+
18
28
  def empty?
19
29
  @params.empty?
20
30
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ZohoHub
4
- VERSION = '0.1.5'
4
+ VERSION = '0.1.6'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: zoho_hub
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5
4
+ version: 0.1.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ricardo Otero
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-07-24 00:00:00.000000000 Z
11
+ date: 2018-08-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -234,7 +234,10 @@ files:
234
234
  - lib/zoho_hub/records/base_record.rb
235
235
  - lib/zoho_hub/records/campaign.rb
236
236
  - lib/zoho_hub/records/contact.rb
237
+ - lib/zoho_hub/records/funder.rb
237
238
  - lib/zoho_hub/records/potential.rb
239
+ - lib/zoho_hub/records/product.rb
240
+ - lib/zoho_hub/records/quote.rb
238
241
  - lib/zoho_hub/response.rb
239
242
  - lib/zoho_hub/version.rb
240
243
  - zoho_hub.gemspec