crm_integration 0.0.0 → 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,7 +3,7 @@ module CrmCallback
3
3
 
4
4
  included do
5
5
  after_create { CrmLeadRepository.post(self) }
6
- after_update { CrmLeadRepository.update(self) }
6
+ after_update { CrmLeadRepository.put(self) }
7
7
  after_destroy { CrmLeadRepository.delete(self) }
8
8
  end
9
9
 
@@ -1,15 +1,23 @@
1
1
  class CrmLeadRepository
2
+ extend LeadMapping
2
3
 
3
4
  def self.post(rd_lead)
4
- p "[POST to CRM] #{rd_lead}"
5
+ zoho_lead = RubyZoho::Crm::Lead.new(map_from(rd_lead))
6
+ zoho_lead.save
5
7
  end
6
8
 
7
- def self.update(rd_lead)
8
- p "[UPDATE to CRM] #{rd_lead}"
9
+ def self.put(rd_lead)
10
+ crm_lead = load_crm_lead_by_email(rd_lead.email_was)
11
+ RubyZoho::Crm::Lead.update(map_from(rd_lead).merge(:id => crm_lead.leadid))
9
12
  end
10
13
 
11
14
  def self.delete(rd_lead)
12
- p "[DELETE to CRM] #{rd_lead}"
15
+ crm_lead = load_crm_lead_by_email(rd_lead.email_was)
16
+ RubyZoho::Crm::Lead.delete(crm_lead.leadid)
13
17
  end
14
18
 
19
+ def self.load_crm_lead_by_email(email)
20
+ leads = RubyZoho::Crm::Lead.find_by_email(email)
21
+ leads && !leads.empty? ? leads.first : nil
22
+ end
15
23
  end
@@ -0,0 +1,15 @@
1
+ module LeadMapping
2
+
3
+ def map_from(rd_lead)
4
+ {
5
+ first_name: rd_lead.first_name,
6
+ last_name: rd_lead.last_name,
7
+ company: rd_lead.company,
8
+ email: rd_lead.email,
9
+ job_title: rd_lead.job_title,
10
+ phone: rd_lead.phone,
11
+ website: rd_lead.website
12
+ }
13
+ end
14
+
15
+ end
@@ -1,2 +1,3 @@
1
1
  require 'crm_integration/crm_callback'
2
- require 'crm_integration/crm_lead_repository'
2
+ require 'crm_integration/lead_mapping'
3
+ require 'crm_integration/crm_lead_repository'
@@ -0,0 +1,11 @@
1
+ class CrmIntegrationGenerator < Rails::Generators::Base
2
+ def create_initializer_file
3
+ create_file "config/initializers/crm_integration.rb", <<-FILE
4
+ require 'ruby_zoho'
5
+
6
+ RubyZoho.configure do |config|
7
+ config.api_key = 'b45751924308154cabece0310eface13'
8
+ end
9
+ FILE
10
+ end
11
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: crm_integration
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -13,7 +13,7 @@ date: 2013-08-24 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: activesupport
16
- requirement: &75095670 !ruby/object:Gem::Requirement
16
+ requirement: &73696010 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - =
@@ -21,7 +21,18 @@ dependencies:
21
21
  version: 3.2.13
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *75095670
24
+ version_requirements: *73696010
25
+ - !ruby/object:Gem::Dependency
26
+ name: rubyzoho
27
+ requirement: &73695770 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - =
31
+ - !ruby/object:Gem::Version
32
+ version: 0.1.7
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *73695770
25
36
  description: A simple CRM integration for test
26
37
  email: otaviorm@gmail.com
27
38
  executables: []
@@ -31,6 +42,8 @@ files:
31
42
  - lib/crm_integration.rb
32
43
  - lib/crm_integration/crm_callback.rb
33
44
  - lib/crm_integration/crm_lead_repository.rb
45
+ - lib/crm_integration/lead_mapping.rb
46
+ - lib/generators/crm_integration_generator.rb
34
47
  homepage: http://rubygems.org/gems/crm_integration
35
48
  licenses:
36
49
  - MIT