afc_salesforce 0.1.11 → 0.1.12

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
- SHA256:
3
- metadata.gz: 376b717fc8702d57a59679b0bcf7c6b3a633fa27d95e3ab6cb17a5722544529a
4
- data.tar.gz: ede952cc8ffc94392a49e759b430001e2556ccd43e62a0a17d240a29cb7a70f3
2
+ SHA1:
3
+ metadata.gz: 87f3130e2cba9c923de523072bd6b63d7010f4de
4
+ data.tar.gz: 7d55da0755a33815152d27a9cb780f1e4c56d5f2
5
5
  SHA512:
6
- metadata.gz: 10357bb58da508814c335787c5148ca33ce1469aa6e8bb9b646616473ac59f832f2b9e6848681c585cc3112598fcfe9cc5d3160a9bd7c1b406c07d343df5eff8
7
- data.tar.gz: 387afd2cc01d254e331506a2cdc7e4fc8735269f911cb3f4f4066ecb913a47e5b4e943a18e4c3847042118172be084cafdf6242c2503d012ae038733181ec2ce
6
+ metadata.gz: 45f00b0bc65c3bed08d1ecd8ab51bbfe91db23b65e6a07ffa8fca674f7238df392b9bb687b1e5d95b579a8a2fab40cd49f6397bfbd5c4804c51985f08ce9a5d6
7
+ data.tar.gz: 256b0d7c4b58354477035f809d8573946471db3ab69f404172e8a1ae859040623f6051fc3abd1ec49590b4f1800c25eabd294cdd576b6ce003a5be8e5833c962
@@ -34,6 +34,7 @@ require_relative 'afc_salesforce/lead'
34
34
  require_relative 'afc_salesforce/forms/long_purchase'
35
35
  require_relative 'afc_salesforce/forms/long_refinance'
36
36
  require_relative 'afc_salesforce/forms/short_lead'
37
+ require_relative 'afc_salesforce/forms/lead_plus'
37
38
 
38
39
  require_relative 'afc_salesforce/version'
39
40
 
@@ -53,4 +54,4 @@ module AFCSalesforce
53
54
  def self.configure
54
55
  yield(configuration)
55
56
  end
56
- end
57
+ end
@@ -0,0 +1,53 @@
1
+ module AFCSalesforce
2
+ module Forms
3
+ class LeadPlus
4
+ attr_accessor :borrowers, :account
5
+
6
+ def initialize(options={})
7
+ @borrowers = options.fetch(:borrowers, [])
8
+ @account = options.fetch(:account, nil)
9
+ end
10
+
11
+ def valid?
12
+ validator = LeadPlusValidator.new(self)
13
+ validator.valid?
14
+ end
15
+
16
+ def validate!
17
+ validator = LeadPlusValidator.new(self)
18
+ if validator.valid?
19
+ return true
20
+ else
21
+ return validator.errors
22
+ end
23
+ end
24
+
25
+ def salesforce_hash
26
+ form_hash = {long_form: {}}
27
+ form_hash[:long_form][:borrowers] = @borrowers.empty? ? [] : @borrowers.map(&:to_h)
28
+ form_hash[:long_form][:account] = @account.to_h
29
+ form_hash
30
+ end
31
+
32
+ def send_to_salesforce
33
+ Restforce.new(
34
+ username: AFCSalesforce.configuration.salesforce_username,
35
+ password: AFCSalesforce.configuration.salesforce_password,
36
+ security_token: AFCSalesforce.configuration.salesforce_security_token,
37
+ client_id: AFCSalesforce.configuration.salesforce_client_id,
38
+ client_secret: AFCSalesforce.configuration.salesforce_client_secret,
39
+ api_version: AFCSalesforce.configuration.salesforce_api_version,
40
+ host: AFCSalesforce.configuration.salesforce_host,
41
+ authentication_callback: AFCSalesforce.configuration.salesforce_authentication_callback
42
+ ).post(URI('/services/apexrest/v1/lead_plus_form'), salesforce_hash)
43
+ end
44
+ end
45
+
46
+ class LeadPlusValidator < AFCSalesforce::Tools::Validation::Validator
47
+ include AFCSalesforce::Tools::Validation
48
+
49
+ rule :borrowers, [{instance_of: Array}, length: {minimum: 1}]
50
+ rule :account, [{instance_of: AFCSalesforce::Account}, :not_nil]
51
+ end
52
+ end
53
+ end
@@ -1,3 +1,3 @@
1
1
  module AFCSalesforce
2
- VERSION = "0.1.11"
2
+ VERSION = "0.1.12"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: afc_salesforce
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.11
4
+ version: 0.1.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Donavan White
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2018-03-19 00:00:00.000000000 Z
11
+ date: 2018-04-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pry
@@ -155,6 +155,7 @@ files:
155
155
  - lib/afc_salesforce/borrower.rb
156
156
  - lib/afc_salesforce/configuration.rb
157
157
  - lib/afc_salesforce/forms/agent_referral.rb
158
+ - lib/afc_salesforce/forms/lead_plus.rb
158
159
  - lib/afc_salesforce/forms/long_purchase.rb
159
160
  - lib/afc_salesforce/forms/long_refinance.rb
160
161
  - lib/afc_salesforce/forms/short_lead.rb
@@ -201,7 +202,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
201
202
  version: '0'
202
203
  requirements: []
203
204
  rubyforge_project:
204
- rubygems_version: 2.7.3
205
+ rubygems_version: 2.6.11
205
206
  signing_key:
206
207
  specification_version: 4
207
208
  summary: Salesforce Library for the AFC Salesforce Instance