openstax_salesforce 4.0.0 → 4.4.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: 1891856e6a19e2b9751c9982a4ff21edb8195877f9ae5c7f37a0c10b5a0671e6
4
- data.tar.gz: 05e146e80fe6385684ba0058b824475c2bfdac63c4941c53efebfa72bf7435db
3
+ metadata.gz: 4af4bba63b1345bb56d81997d7aa50a8f6c54a8543231cf1404200e0aa9e57cf
4
+ data.tar.gz: 854d11cc4dbb4e5ba190ef12f4973c4c2712c3ec3c9790795d8660ca1bb5826f
5
5
  SHA512:
6
- metadata.gz: 7bcee3d33ea59128302bc97e8ff9695cabefd98af6ba1b0388a12749b4e7692ed53446bd1791aa99c9ab43dde3f166f896879850bb3c7b7dca68a0e1b7a0df96
7
- data.tar.gz: 32062d09ecb6b86ab30cd0964a5bc6f7aa76fa55f49bcf5888877f358c54ce784a46b790477152a78ccc0643d4c32462815f0f8519354c6b33429f5e412f7057
6
+ metadata.gz: 7f4506420c7f30b59896e6fba242aff72ef55dec86270fbbb0b4089d9b3bbe725c2be6c8b3584e5a36906b5b043f547b9cd4676e0cb093ed6e24a357f97650fd
7
+ data.tar.gz: 2f5a63de18f7deaaf7aa8d08608c3cd686af132ab542bf67bafff851c38d61dbd71e1571dd8f953664daff0beb3e7912b747a00a4c13f91664939cc8f87694f1
@@ -5,6 +5,10 @@
5
5
  OpenStax::Salesforce.configure do |config|
6
6
  salesforce_secrets = Rails.application.secrets.salesforce
7
7
 
8
+ if salesforce_secrets.nil?
9
+ raise "Add a `salesforce` section to your Rails secrets!"
10
+ end
11
+
8
12
  # Username, client id, instance url and private key for connecting to the Salesforce app
9
13
  config.username = salesforce_secrets[:username]
10
14
  config.password = salesforce_secrets[:password]
@@ -2,8 +2,10 @@ ActiveSupport::Inflector.inflections do |inflect|
2
2
  inflect.acronym 'OpenStax'
3
3
  end
4
4
 
5
- module OpenStax::Salesforce
6
- class Engine < ::Rails::Engine
7
- isolate_namespace OpenStax::Salesforce
5
+ module OpenStax
6
+ module Salesforce
7
+ class Engine < ::Rails::Engine
8
+ isolate_namespace OpenStax::Salesforce
9
+ end
8
10
  end
9
11
  end
@@ -1,5 +1,19 @@
1
1
  module OpenStax::Salesforce::Remote
2
2
  class Lead < ActiveForce::SObject
3
+
4
+ VALID_VERIFICATION_STATUSES = %w[pending_faculty confirmed_faculty rejected_faculty].freeze
5
+ VALID_ROLES = %w[
6
+ student
7
+ faculty
8
+ other
9
+ administrator
10
+ librarian
11
+ adjunct\ faculty
12
+ instructional\ designer
13
+ home\ school\ teacher
14
+ ].freeze
15
+ VALID_WHO_CHOOSES_BOOKS = %w[instructor committee coordinator].freeze
16
+
3
17
  field :name, from: "Name"
4
18
  field :first_name, from: "FirstName"
5
19
  field :last_name, from: "LastName"
@@ -19,7 +33,38 @@ module OpenStax::Salesforce::Remote
19
33
  field :accounts_uuid, from: "accounts_uuid_c__c"
20
34
  field :application_source, from: "Application_Source__c"
21
35
  field :role, from: "Role__c"
36
+ field :who_chooses_books, from: "who_chooses_books__c"
37
+ field :verification_status, from: "FV_Status__c"
38
+ field :finalize_educator_signup, from: "FV_Final__c", as: :boolean
39
+
40
+ validates(
41
+ :role,
42
+ allow_blank: true,
43
+ inclusion: {
44
+ in: VALID_ROLES,
45
+ message: "must be either #{VALID_ROLES.join(' or ')}"
46
+ }
47
+ )
48
+
49
+ validates(
50
+ :verification_status,
51
+ allow_blank: true,
52
+ inclusion: {
53
+ in: VALID_VERIFICATION_STATUSES,
54
+ message: "must be either #{VALID_VERIFICATION_STATUSES.join(' or ')}"
55
+ }
56
+ )
57
+
58
+ validates(
59
+ :who_chooses_books,
60
+ allow_blank: true,
61
+ inclusion: {
62
+ in: VALID_WHO_CHOOSES_BOOKS,
63
+ message: "must be either #{VALID_WHO_CHOOSES_BOOKS.join(' or ')}"
64
+ }
65
+ )
22
66
 
23
67
  self.table_name = 'Lead'
68
+
24
69
  end
25
70
  end
@@ -1,6 +1,10 @@
1
1
  module OpenStax::Salesforce::Remote
2
2
  class School < ActiveForce::SObject
3
- field :name, from: "Name"
3
+ field :name, from: 'Name'
4
+ field :type, from: 'Type'
5
+ field :school_location, from: 'School_Location__c'
6
+ field :is_kip, from: 'K_I_P__c', as: :boolean
7
+ field :is_child_of_kip, from: 'child_of_kip__c', as: :boolean
4
8
 
5
9
  self.table_name = 'Account'
6
10
  end
@@ -131,27 +131,23 @@ module OpenStax::Salesforce::SpecHelpers
131
131
  end
132
132
 
133
133
  def ensure_books_exist(book_names)
134
- book_names.each do |book_name|
135
- if books.none? {|bb| bb.name == book_name}
136
- book = Book.new(name: book_name)
137
- book.save!
138
- books.push(book)
139
- end
134
+ @books = OpenStax::Salesforce::Remote::Book.where(name: book_names).to_a
135
+
136
+ (book_names - books.map(&:name)).each do |book_name|
137
+ OpenStax::Salesforce::Remote::Book.new(name: book_name).save!
140
138
  end
141
139
  end
142
140
 
143
141
  def ensure_schools_exist(school_names)
144
- school_names.compact.each do |school_name|
145
- if schools.none? {|ss| ss.name == school_name}
146
- school = School.new(name: school_name)
147
- school.save!
148
- schools.push(school)
149
- end
142
+ @schools = OpenStax::Salesforce::Remote::School.where(name: school_names).to_a
143
+
144
+ (school_names - schools.map(&:name)).each do |school_name|
145
+ OpenStax::Salesforce::Remote::School.new(name: school_name).save!
150
146
  end
151
147
  end
152
148
 
153
149
  def books
154
- @books ||= Book.all
150
+ @books ||= OpenStax::Salesforce::Remote::Book.all
155
151
  end
156
152
 
157
153
  def book(name)
@@ -163,7 +159,7 @@ module OpenStax::Salesforce::SpecHelpers
163
159
  end
164
160
 
165
161
  def schools
166
- @schools ||= School.all
162
+ @schools ||= OpenStax::Salesforce::Remote::School.all
167
163
  end
168
164
 
169
165
  def school_id(name)
@@ -173,5 +169,32 @@ module OpenStax::Salesforce::SpecHelpers
173
169
  def school(name)
174
170
  schools.find { |ss| ss.name == name }
175
171
  end
172
+
173
+ def setup_cassette
174
+ VCR.configure do |config|
175
+ config.define_cassette_placeholder('<salesforce_instance_url>') do
176
+ 'https://example.salesforce.com'
177
+ end
178
+ config.define_cassette_placeholder('<salesforce_instance_url_lower>') do
179
+ 'https://example.salesforce.com'
180
+ end
181
+ authentication = ActiveForce.sfdc_client.authenticate!
182
+ config.define_cassette_placeholder('<salesforce_instance_url>') do
183
+ authentication.instance_url
184
+ end
185
+ config.define_cassette_placeholder('<salesforce_instance_url_lower>') do
186
+ authentication.instance_url.downcase
187
+ end
188
+ config.define_cassette_placeholder('<salesforce_id>') do
189
+ authentication.id
190
+ end
191
+ config.define_cassette_placeholder('<salesforce_access_token>') do
192
+ authentication.access_token
193
+ end
194
+ config.define_cassette_placeholder('<salesforce_signature>') do
195
+ authentication.signature
196
+ end
197
+ end
198
+ end
176
199
  end
177
200
  end
@@ -1,5 +1,5 @@
1
1
  module OpenStax
2
2
  module Salesforce
3
- VERSION = '4.0.0'
3
+ VERSION = '4.4.0'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: openstax_salesforce
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.0.0
4
+ version: 4.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - JP Slavinsky
@@ -9,22 +9,28 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-11-22 00:00:00.000000000 Z
12
+ date: 2020-07-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - "~>"
18
+ - - ">="
19
19
  - !ruby/object:Gem::Version
20
20
  version: '5.0'
21
+ - - "<"
22
+ - !ruby/object:Gem::Version
23
+ version: '7.0'
21
24
  type: :runtime
22
25
  prerelease: false
23
26
  version_requirements: !ruby/object:Gem::Requirement
24
27
  requirements:
25
- - - "~>"
28
+ - - ">="
26
29
  - !ruby/object:Gem::Version
27
30
  version: '5.0'
31
+ - - "<"
32
+ - !ruby/object:Gem::Version
33
+ version: '7.0'
28
34
  - !ruby/object:Gem::Dependency
29
35
  name: restforce
30
36
  requirement: !ruby/object:Gem::Requirement
@@ -85,16 +91,16 @@ dependencies:
85
91
  name: sprockets
86
92
  requirement: !ruby/object:Gem::Requirement
87
93
  requirements:
88
- - - "<"
94
+ - - ">="
89
95
  - !ruby/object:Gem::Version
90
- version: '4.0'
96
+ version: '0'
91
97
  type: :development
92
98
  prerelease: false
93
99
  version_requirements: !ruby/object:Gem::Requirement
94
100
  requirements:
95
- - - "<"
101
+ - - ">="
96
102
  - !ruby/object:Gem::Version
97
- version: '4.0'
103
+ version: '0'
98
104
  description: Interface gem for accessing OpenStax's Salesforce instance
99
105
  email:
100
106
  - jps@kindlinglabs.com