rubyzoho 0.3.4 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.rdoc +33 -3
- data/lib/zoho_api_finders.rb +3 -3
- data/rubyzoho.gemspec +3 -3
- data/spec/ruby_zoho_spec.rb +33 -8
- metadata +2 -3
- data/VERSION +0 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9c2778e7aacd346dbf9831614d6a0ee39c7f58bc
|
4
|
+
data.tar.gz: f2e35de7692aa5125bb37ad1c56d84c88874d9c2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 92a1371830f6dac34c6e4c9b7f681df8fad323d406f08c05b136dd59dc98eb325836dd38f0c77c3c5727a7855e9568ce417ee9ea4852346aaa51a3d461deed3b
|
7
|
+
data.tar.gz: 51b31f7739e70516fea90c8f1c99cb9cb2ad8165ab669affe0ffbc0a5f1796b23cf6a162d09823c1c629314071cbd92aa558a8757e18a989f9459e6bc745475b
|
data/README.rdoc
CHANGED
@@ -26,6 +26,29 @@ Put the following in an initializer (e.g. <tt><RAILS_ROOT>/config/initializers/z
|
|
26
26
|
# Currently only Quotes are supported
|
27
27
|
end
|
28
28
|
|
29
|
+
You can reduce the number of API calls made during development and production by adding
|
30
|
+
|
31
|
+
config.cache_fields = true
|
32
|
+
|
33
|
+
to the initializer. You can also limit the number of modules in use, so if you're only using 'Leads' for
|
34
|
+
instance, set the gem to only load field data from 'Leads' by setting
|
35
|
+
|
36
|
+
config.crm_modules = ['Leads']
|
37
|
+
|
38
|
+
and only meta data from 'Leads' will be loaded.
|
39
|
+
|
40
|
+
In Test or Continous Integration(CI) environments, one strategy is not to initialize the gem at all, so
|
41
|
+
for example,
|
42
|
+
|
43
|
+
RubyZoho.configure do |config|
|
44
|
+
config.api_key = '<< API Key from Zoho>>'
|
45
|
+
config.crm_modules = ['Accounts']
|
46
|
+
config.cache_fields = true if Rails.env.development?
|
47
|
+
end unless Rails.env.test?
|
48
|
+
|
49
|
+
and wrap the code calling the API in a <tt>begin ... rescue</tt> block.
|
50
|
+
|
51
|
+
|
29
52
|
=== Ruby
|
30
53
|
Make sure the following block is executed prior to making calls to the gem.
|
31
54
|
|
@@ -266,15 +289,22 @@ Copyright (c) 2013 - 2015 amalc (\@\amalc). Released under the MIT license. See
|
|
266
289
|
== Release Candidates (Uses {Semantic Versioning}[http://semver.org/])
|
267
290
|
|
268
291
|
== Development
|
269
|
-
[0.
|
292
|
+
[0.8.0]
|
270
293
|
1. << syntax for Account/Tasks on Master/Detail relationships
|
271
294
|
2. ActiveRecord style syntax for Class.\new, Class.delete, Class.find, Class.update, Object.save
|
272
295
|
3. Modules Supported: Accounts, Contacts, Leads, Potentials, Quotes, Tasks and Users
|
273
|
-
[0.
|
296
|
+
[0.7.0]
|
274
297
|
1. Option in config to ignore fields with improper field names
|
275
|
-
[0.
|
298
|
+
[0.6.0]
|
276
299
|
1. Support for testing without calling Zoho to prevent crushing API call limits in CI.
|
277
300
|
== Released
|
301
|
+
[0.5.0]
|
302
|
+
1. Replaces <tt>getSearchRecords</tt> with <tt>searchRecords</tt> in the Zoho API. The direct impact of this is
|
303
|
+
increasing the number of API calls you can make. However, this search method appears to be
|
304
|
+
asynchronous, so if you update a record and then immediately look for it, it will not updated
|
305
|
+
or in the event of a create, will return a nil. This applies to deletes as well. So a deleted
|
306
|
+
record will show up in a search which immediately follows. Empirical evidence shows about 30 -
|
307
|
+
45 seconds before search is updated. Be warned!
|
278
308
|
[0.4.0]
|
279
309
|
1. Fixed major bug with retrieving records thanks to @kjcpass PR#28
|
280
310
|
[0.3.0]
|
data/lib/zoho_api_finders.rb
CHANGED
@@ -11,10 +11,10 @@ module ZohoApiFinders
|
|
11
11
|
|
12
12
|
def find_record_by_field(module_name, sc_field, condition, value)
|
13
13
|
field = sc_field.rindex('id') ? sc_field.downcase : sc_field
|
14
|
-
search_condition =
|
15
|
-
r = self.class.get(create_url("#{module_name}", '
|
14
|
+
search_condition = "(#{field}:#{value})"
|
15
|
+
r = self.class.get(create_url("#{module_name}", 'searchRecords'),
|
16
16
|
:query => { :newFormat => 1, :authtoken => @auth_token, :scope => 'crmapi',
|
17
|
-
:selectColumns => 'All', :
|
17
|
+
:selectColumns => 'All', :criteria => search_condition,
|
18
18
|
:fromIndex => 1, :toIndex => NUMBER_OF_RECORDS_TO_GET })
|
19
19
|
check_for_errors(r)
|
20
20
|
x = REXML::Document.new(r.body).elements.to_a("/response/result/#{module_name}/row")
|
data/rubyzoho.gemspec
CHANGED
@@ -1,16 +1,16 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = 'rubyzoho'
|
3
|
-
s.version = '0.
|
3
|
+
s.version = '0.5.0'
|
4
4
|
|
5
5
|
s.required_rubygems_version = Gem::Requirement.new('>= 0') if s.respond_to? :required_rubygems_version=
|
6
6
|
s.authors = ['amalc']
|
7
|
-
s.date = '2015-02-
|
7
|
+
s.date = '2015-02-23'
|
8
8
|
s.description = 'A set of Ruby classes supporting the ActiveRecord lifecycle for the Zoho CRM API.'
|
9
9
|
s.email = 'amalc@github.com'
|
10
10
|
s.extra_rdoc_files = %w(LICENSE.txt README.rdoc)
|
11
11
|
s.files = %w(
|
12
12
|
.coverall.yml .document .rspec .travis.yml Gemfile
|
13
|
-
LICENSE.txt README.rdoc Rakefile
|
13
|
+
LICENSE.txt README.rdoc Rakefile lib/api_utils.rb lib/crm.rb lib/crud_methods.rb
|
14
14
|
lib/ruby_zoho.rb lib/zoho_api.rb lib/zoho_api_field_utils.rb lib/zoho_api_finders.rb
|
15
15
|
lib/zoho_crm_users.rb lib/zoho_crm_utils.rb rubyzoho.gemspec spec/api_utils_spec.rb
|
16
16
|
spec/fixtures/sample.pdf spec/fixtures/sample_contact.xml spec/fixtures/sample_contact_search.xml
|
data/spec/ruby_zoho_spec.rb
CHANGED
@@ -7,7 +7,7 @@ require 'vcr'
|
|
7
7
|
VCR.configure do |c|
|
8
8
|
c.cassette_library_dir = 'spec/vcr'
|
9
9
|
c.hook_into :webmock
|
10
|
-
|
10
|
+
c.default_cassette_options = {:record => :all}
|
11
11
|
# c.debug_logger = File.open('log/vcr_debug.log', 'w')
|
12
12
|
end
|
13
13
|
|
@@ -105,8 +105,6 @@ describe RubyZoho::Crm do
|
|
105
105
|
|
106
106
|
it 'should find a contact by email or last name' do
|
107
107
|
VCR.use_cassette 'zoho/find_by_email_or_name' do
|
108
|
-
r = RubyZoho::Crm::Contact.find_by_email('bob@smith.com')
|
109
|
-
r.each { |m| RubyZoho::Crm::Contact.delete(m.id) } unless r.nil?
|
110
108
|
1.upto(3) do
|
111
109
|
c = RubyZoho::Crm::Contact.new(
|
112
110
|
:first_name => 'Bob',
|
@@ -115,6 +113,10 @@ describe RubyZoho::Crm do
|
|
115
113
|
c.save
|
116
114
|
end
|
117
115
|
r = RubyZoho::Crm::Contact.find_by_email('bob@smith.com')
|
116
|
+
while r.nil?
|
117
|
+
sleep(15)
|
118
|
+
r = RubyZoho::Crm::Contact.find_by_email('bob@smith.com')
|
119
|
+
end
|
118
120
|
r.should_not eq(nil)
|
119
121
|
r.count.should eq(3)
|
120
122
|
r.each { |m| m.email.should eq('bob@smith.com') }
|
@@ -274,7 +276,12 @@ describe RubyZoho::Crm do
|
|
274
276
|
:last_name => 'Portra',
|
275
277
|
:email => 'raj@portra.com')
|
276
278
|
c.save
|
279
|
+
sleep(30)
|
277
280
|
r = RubyZoho::Crm::Contact.find_by_email('raj@portra.com')
|
281
|
+
while r.nil?
|
282
|
+
sleep(15)
|
283
|
+
r = RubyZoho::Crm::Contact.find_by_email('raj@portra.com')
|
284
|
+
end
|
278
285
|
r.first.email.should eq('raj@portra.com')
|
279
286
|
r.each { |contact| RubyZoho::Crm::Contact.delete(contact.contactid) }
|
280
287
|
end
|
@@ -315,10 +322,12 @@ describe RubyZoho::Crm do
|
|
315
322
|
if defined?(l.test_label)
|
316
323
|
RubyZoho::Crm::Lead.update(
|
317
324
|
:id => l.id,
|
318
|
-
:test_label => '$
|
325
|
+
:test_label => '$101',
|
326
|
+
:test_integer => 1
|
319
327
|
)
|
320
328
|
l2 = RubyZoho::Crm::Lead.find(l.id)
|
321
|
-
l2.first.test_label.should eq('$
|
329
|
+
l2.first.test_label.should eq('$101')
|
330
|
+
l2.first.test_integer.should eq('1')
|
322
331
|
end
|
323
332
|
end
|
324
333
|
end
|
@@ -338,6 +347,10 @@ describe RubyZoho::Crm do
|
|
338
347
|
p = RubyZoho::Crm::Potential.new(h)
|
339
348
|
p.save
|
340
349
|
r = RubyZoho::Crm::Potential.find_by_potential_name(p.potential_name)
|
350
|
+
while r.nil? do
|
351
|
+
sleep(15)
|
352
|
+
r = RubyZoho::Crm::Potential.find_by_potential_name(p.potential_name)
|
353
|
+
end
|
341
354
|
r.first.potential_name.should eq(h[:potential_name])
|
342
355
|
potential = RubyZoho::Crm::Potential.find(r.first.potentialid)
|
343
356
|
potential.first.potentialid.should eq(r.first.potentialid)
|
@@ -363,6 +376,10 @@ describe RubyZoho::Crm do
|
|
363
376
|
t = RubyZoho::Crm::Task.new(h)
|
364
377
|
t.save
|
365
378
|
r = RubyZoho::Crm::Task.find_by_subject(h[:subject])
|
379
|
+
while r.nil?
|
380
|
+
sleep(15)
|
381
|
+
r = RubyZoho::Crm::Task.find_by_subject(h[:subject])
|
382
|
+
end
|
366
383
|
r.first.subject.should eq(h[:subject])
|
367
384
|
tasks = RubyZoho::Crm::Task.find_by_activityid(r.first.activityid)
|
368
385
|
tasks.first.activityid.should eq(r.first.activityid)
|
@@ -415,7 +432,7 @@ describe RubyZoho::Crm do
|
|
415
432
|
|
416
433
|
it 'should update a lead record' do
|
417
434
|
VCR.use_cassette 'zoho/update_lead' do
|
418
|
-
r_changed = RubyZoho::Crm::Lead.find_by_email('
|
435
|
+
r_changed = RubyZoho::Crm::Lead.find_by_email('changed_rajj@portra.com')
|
419
436
|
r_changed.each { |c| RubyZoho::Crm::Lead.delete(c.leadid) } unless r_changed.nil?
|
420
437
|
l = RubyZoho::Crm::Lead.new(
|
421
438
|
:first_name => 'Raj',
|
@@ -423,11 +440,19 @@ describe RubyZoho::Crm do
|
|
423
440
|
:email => 'raj@portra.com')
|
424
441
|
l.save
|
425
442
|
r = RubyZoho::Crm::Lead.find_by_email('raj@portra.com')
|
443
|
+
while r.nil?
|
444
|
+
sleep(15)
|
445
|
+
r = RubyZoho::Crm::Lead.find_by_email('raj@portra.com')
|
446
|
+
end
|
426
447
|
RubyZoho::Crm::Lead.update(
|
427
448
|
:id => r.first.leadid,
|
428
|
-
:email => '
|
449
|
+
:email => 'changed_rajj@portra.com'
|
429
450
|
)
|
430
|
-
r_changed = RubyZoho::Crm::Lead.find_by_email('
|
451
|
+
r_changed = RubyZoho::Crm::Lead.find_by_email('changed_rajj@portra.com')
|
452
|
+
while r_changed.nil?
|
453
|
+
sleep(15)
|
454
|
+
r_changed = RubyZoho::Crm::Lead.find_by_email('changed_rajj@portra.com')
|
455
|
+
end
|
431
456
|
r.first.leadid.should eq(r_changed.first.leadid)
|
432
457
|
r.each { |c| RubyZoho::Crm::Lead.delete(c.leadid) }
|
433
458
|
r_changed.each { |c| RubyZoho::Crm::Lead.delete(c.leadid) }
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rubyzoho
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- amalc
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-02-
|
11
|
+
date: 2015-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activemodel
|
@@ -181,7 +181,6 @@ files:
|
|
181
181
|
- LICENSE.txt
|
182
182
|
- README.rdoc
|
183
183
|
- Rakefile
|
184
|
-
- VERSION
|
185
184
|
- lib/api_utils.rb
|
186
185
|
- lib/crm.rb
|
187
186
|
- lib/crud_methods.rb
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.2.0
|