bright 1.3 → 2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,7 +1,6 @@
1
1
  module Bright
2
2
  module SisApi
3
3
  class BrightSis < Base
4
-
5
4
  @@description = "Connects to the Bright SIS Data Store"
6
5
  @@doc_url = ""
7
6
  @@api_version = "v1"
@@ -9,12 +8,12 @@ module Bright
9
8
  attr_accessor :connection_options
10
9
 
11
10
  DEMOGRAPHICS_CONVERSION = {
12
- "I"=>"American Indian Or Alaska Native",
13
- "A"=>"Asian",
14
- "B"=>"Black Or African American",
15
- "P"=>"Native Hawaiian Or Other Pacific Islander",
16
- "W"=>"White",
17
- "M"=>"Other"
11
+ "I" => "American Indian Or Alaska Native",
12
+ "A" => "Asian",
13
+ "B" => "Black Or African American",
14
+ "P" => "Native Hawaiian Or Other Pacific Islander",
15
+ "W" => "White",
16
+ "M" => "Other"
18
17
  }
19
18
 
20
19
  def initialize(options = {})
@@ -26,21 +25,21 @@ module Bright
26
25
  end
27
26
 
28
27
  def get_student_by_api_id(api_id, options = {})
29
- self.get_students({"uuid" => api_id}, options.merge(:limit => 1, :wrap_in_collection => false)).first
28
+ get_students({"uuid" => api_id}, options.merge(limit: 1, wrap_in_collection: false)).first
30
29
  end
31
30
 
32
31
  def get_student(params = {}, options = {})
33
- self.get_students(params, options.merge(:limit => 1, :wrap_in_collection => false)).first
32
+ get_students(params, options.merge(limit: 1, wrap_in_collection: false)).first
34
33
  end
35
34
 
36
35
  def get_students(params = {}, options = {})
37
36
  params[:limit] = params[:limit] || options[:limit] || 100
38
- students_response_hash = self.request(:get, 'students', self.map_student_search_params(params))
37
+ students_response_hash = request(:get, "students", map_student_search_params(params))
39
38
  total_results = students_response_hash[:response_headers]["total"].to_i
40
39
  if students_response_hash and students_response_hash["students"]
41
40
  students_hash = [students_response_hash["students"]].flatten
42
41
 
43
- students = students_hash.compact.collect {|st_hsh|
42
+ students = students_hash.compact.collect { |st_hsh|
44
43
  Student.new(convert_to_student_data(st_hsh))
45
44
  }
46
45
  end
@@ -49,14 +48,14 @@ module Bright
49
48
  load_more_call = proc { |page|
50
49
  # pages start at one, so add a page here
51
50
  params[:offset] = (params[:limit].to_i * page)
52
- api.get_students(params, {:wrap_in_collection => false})
51
+ api.get_students(params, {wrap_in_collection: false})
53
52
  }
54
53
  ResponseCollection.new({
55
- :seed_page => students,
56
- :total => total_results,
57
- :per_page => params[:limit],
58
- :load_more_call => load_more_call,
59
- :no_threads => options[:no_threads]
54
+ seed_page: students,
55
+ total: total_results,
56
+ per_page: params[:limit],
57
+ load_more_call: load_more_call,
58
+ no_threads: options[:no_threads]
60
59
  })
61
60
  else
62
61
  students
@@ -73,12 +72,12 @@ module Bright
73
72
 
74
73
  def get_schools(params = {}, options = {})
75
74
  params[:limit] = params[:limit] || options[:limit] || 100
76
- schools_response_hash = self.request(:get, 'schools', self.map_school_search_params(params))
75
+ schools_response_hash = request(:get, "schools", map_school_search_params(params))
77
76
  total_results = schools_response_hash[:response_headers]["total"].to_i
78
77
  if schools_response_hash and schools_response_hash["schools"]
79
78
  schools_hash = [schools_response_hash["schools"]].flatten
80
79
 
81
- schools = schools_hash.compact.collect {|st_hsh|
80
+ schools = schools_hash.compact.collect { |st_hsh|
82
81
  School.new(convert_to_school_data(st_hsh))
83
82
  }
84
83
  end
@@ -87,14 +86,14 @@ module Bright
87
86
  load_more_call = proc { |page|
88
87
  # pages start at one, so add a page here
89
88
  params[:offset] = (params[:limit].to_i * page)
90
- api.get_schools(params, {:wrap_in_collection => false})
89
+ api.get_schools(params, {wrap_in_collection: false})
91
90
  }
92
91
  ResponseCollection.new({
93
- :seed_page => schools,
94
- :total => total_results,
95
- :per_page => params[:limit],
96
- :load_more_call => load_more_call,
97
- :no_threads => options[:no_threads]
92
+ seed_page: schools,
93
+ total: total_results,
94
+ per_page: params[:limit],
95
+ load_more_call: load_more_call,
96
+ no_threads: options[:no_threads]
98
97
  })
99
98
  else
100
99
  schools
@@ -102,7 +101,7 @@ module Bright
102
101
  end
103
102
 
104
103
  def request(method, path, params = {})
105
- uri = "#{self.connection_options[:uri]}/#{path}"
104
+ uri = "#{connection_options[:uri]}/#{path}"
106
105
  body = nil
107
106
  if method == :get
108
107
  query = URI.encode_www_form(params)
@@ -113,7 +112,7 @@ module Bright
113
112
 
114
113
  response = connection_retry_wrapper {
115
114
  connection = Bright::Connection.new(uri)
116
- headers = self.headers_for_auth
115
+ headers = headers_for_auth
117
116
  connection.request(method, body, headers)
118
117
  }
119
118
 
@@ -130,12 +129,12 @@ module Bright
130
129
  protected
131
130
 
132
131
  def headers_for_auth(uri)
133
- {"Authorization" => "Token token=#{self.connection_options[:access_token]}"}
132
+ {"Authorization" => "Token token=#{connection_options[:access_token]}"}
134
133
  end
135
134
 
136
135
  def map_student_search_params(attrs)
137
136
  filter_params = {}
138
- attrs.each do |k,v|
137
+ attrs.each do |k, v|
139
138
  case k.to_s
140
139
  when "api_id"
141
140
  filter_params["uuid"] = v
@@ -147,27 +146,27 @@ module Bright
147
146
  filter_params[k] = v
148
147
  end
149
148
  end
150
- return filter_params
149
+ filter_params
151
150
  end
152
151
 
153
152
  def convert_to_student_data(student_params)
154
153
  return {} if student_params.nil?
155
154
  student_data_hsh = {
156
- :api_id => student_params["uuid"],
157
- :first_name => student_params["first_name"],
158
- :middle_name => student_params["middle_name"],
159
- :last_name => student_params["last_name"],
160
- :sis_student_id => student_params["student_number"],
161
- :state_student_id => student_params["state_id"],
162
- :grade => student_params["grade"],
163
- :grade_school_year => student_params["grade_school_year"],
164
- :projected_graduation_year => student_params["graduation_year"],
165
- :sex => student_params["sex"],
166
- :frl_status => student_params["frl_status"],
167
- :image => student_params["picture"],
168
- :hispanic_ethnicity => student_params["hispanic_latino"],
169
- :last_modified => student_params["updated_at"]
170
- }.reject{|k,v| v.blank?}
155
+ api_id: student_params["uuid"],
156
+ first_name: student_params["first_name"],
157
+ middle_name: student_params["middle_name"],
158
+ last_name: student_params["last_name"],
159
+ sis_student_id: student_params["student_number"],
160
+ state_student_id: student_params["state_id"],
161
+ grade: student_params["grade"],
162
+ grade_school_year: student_params["grade_school_year"],
163
+ projected_graduation_year: student_params["graduation_year"],
164
+ sex: student_params["sex"],
165
+ frl_status: student_params["frl_status"],
166
+ image: student_params["picture"],
167
+ hispanic_ethnicity: student_params["hispanic_latino"],
168
+ last_modified: student_params["updated_at"]
169
+ }.reject { |k, v| v.blank? }
171
170
  unless student_params["birthdate"].blank?
172
171
  student_data_hsh[:birth_date] = Date.parse(student_params["birthdate"]).to_s
173
172
  end
@@ -193,7 +192,7 @@ module Bright
193
192
 
194
193
  unless student_params["email_addresses"].blank?
195
194
  student_data_hsh[:email_address] = {
196
- :email_address => student_params["email_addresses"].first["email_address"]
195
+ email_address: student_params["email_addresses"].first["email_address"]
197
196
  }
198
197
  end
199
198
 
@@ -204,13 +203,13 @@ module Bright
204
203
  unless student_params["contacts"].blank?
205
204
  student_data_hsh[:contacts] = student_params["contacts"].collect do |contact_params|
206
205
  contact_data_hsh = {
207
- :api_id => contact_params["uuid"],
208
- :first_name => contact_params["first_name"],
209
- :middle_name => contact_params["middle_name"],
210
- :last_name => contact_params["last_name"],
211
- :relationship_type => contact_params["relationship"],
212
- :sis_student_id => contact_params["sis_id"],
213
- :last_modified => contact_params["updated_at"]
206
+ api_id: contact_params["uuid"],
207
+ first_name: contact_params["first_name"],
208
+ middle_name: contact_params["middle_name"],
209
+ last_name: contact_params["last_name"],
210
+ relationship_type: contact_params["relationship"],
211
+ sis_student_id: contact_params["sis_id"],
212
+ last_modified: contact_params["updated_at"]
214
213
  }
215
214
  unless contact_params["addresses"].blank?
216
215
  contact_data_hsh[:addresses] = contact_params["addresses"].collect do |address_params|
@@ -224,19 +223,19 @@ module Bright
224
223
  end
225
224
  unless contact_params["email_addresses"].blank?
226
225
  contact_data_hsh[:email_address] = {
227
- :email_address => contact_params["email_addresses"].first["email_address"]
226
+ email_address: contact_params["email_addresses"].first["email_address"]
228
227
  }
229
228
  end
230
- contact_data_hsh.reject{|k,v| v.blank?}
229
+ contact_data_hsh.reject { |k, v| v.blank? }
231
230
  end
232
231
  end
233
232
 
234
- return student_data_hsh
233
+ student_data_hsh
235
234
  end
236
235
 
237
236
  def map_school_search_params(attrs)
238
237
  filter_params = {}
239
- attrs.each do |k,v|
238
+ attrs.each do |k, v|
240
239
  case k.to_s
241
240
  when "api_id"
242
241
  filter_params["id"] = v
@@ -244,62 +243,61 @@ module Bright
244
243
  filter_params[k] = v
245
244
  end
246
245
  end
247
- return filter_params
246
+ filter_params
248
247
  end
249
248
 
250
249
  def convert_to_phone_number_data(phone_number_params)
251
250
  return {} if phone_number_params.nil?
252
251
  {
253
- :phone_number => phone_number_params["phone_number"],
254
- :type => phone_number_params["phone_type"]
255
- }.reject{|k,v| v.blank?}
252
+ phone_number: phone_number_params["phone_number"],
253
+ type: phone_number_params["phone_type"]
254
+ }.reject { |k, v| v.blank? }
256
255
  end
257
256
 
258
257
  def convert_to_address_data(address_params)
259
258
  return {} if address_params.nil?
260
259
  {
261
- :street => address_params["street"],
262
- :apt => address_params["street_line_2"],
263
- :city => address_params["city"],
264
- :state => address_params["state"],
265
- :postal_code => address_params["zip"],
266
- :lattitude => address_params["latitude"],
267
- :longitude => address_params["longitude"],
268
- :type => address_params["address_type"]
269
- }.reject{|k,v| v.blank?}
260
+ street: address_params["street"],
261
+ apt: address_params["street_line_2"],
262
+ city: address_params["city"],
263
+ state: address_params["state"],
264
+ postal_code: address_params["zip"],
265
+ lattitude: address_params["latitude"],
266
+ longitude: address_params["longitude"],
267
+ type: address_params["address_type"]
268
+ }.reject { |k, v| v.blank? }
270
269
  end
271
270
 
272
271
  def convert_to_school_data(school_params)
273
272
  return {} if school_params.nil?
274
273
 
275
274
  school_data_hsh = {
276
- :api_id => school_params["id"],
277
- :name => school_params["name"],
278
- :number => school_params["number"],
279
- :state_id => school_params["state_id"],
280
- :low_grade => school_params["low_grade"],
281
- :high_grade => school_params["high_grade"],
282
- :last_modified => school_params["updated_at"]
275
+ api_id: school_params["id"],
276
+ name: school_params["name"],
277
+ number: school_params["number"],
278
+ state_id: school_params["state_id"],
279
+ low_grade: school_params["low_grade"],
280
+ high_grade: school_params["high_grade"],
281
+ last_modified: school_params["updated_at"]
283
282
  }
284
283
 
285
284
  unless school_params["school_address"].blank?
286
285
  school_data_hsh[:address] = {
287
- :street => school_params["school_address"],
288
- :city => school_params["school_city"],
289
- :state => school_params["school_state"],
290
- :postal_code => school_params["school_zip"]
286
+ street: school_params["school_address"],
287
+ city: school_params["school_city"],
288
+ state: school_params["school_state"],
289
+ postal_code: school_params["school_zip"]
291
290
  }
292
291
  end
293
292
 
294
293
  unless school_params["school_phone"].blank?
295
294
  school_data_hsh[:phone_number] = {
296
- :phone_number => school_params["school_phone"]
295
+ phone_number: school_params["school_phone"]
297
296
  }
298
297
  end
299
298
 
300
- return school_data_hsh
299
+ school_data_hsh
301
300
  end
302
-
303
301
  end
304
302
  end
305
303
  end