medivo 0.2.11 → 0.2.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (41) hide show
  1. data/app/assets/javascripts/medivo/lab_appointment/handlers.coffee +17 -2
  2. data/app/assets/javascripts/medivo/lab_list/handlers.coffee +30 -12
  3. data/app/models/medivo/appointment.rb +16 -5
  4. data/lib/medivo/version.rb +1 -1
  5. data/spec/dummy/config/medivo/appointment_resource.yml +2 -2
  6. data/spec/dummy/log/development.log +6395 -0
  7. data/spec/dummy/log/test.log +92 -0
  8. data/spec/dummy/tmp/cache/assets/C46/F00/sprockets%2F2281d588b540056c5a7306c32a3761b9 +0 -0
  9. data/spec/dummy/tmp/cache/assets/C53/C80/sprockets%2F9297b5f504687910109d311f03f8a7b3 +0 -0
  10. data/spec/dummy/tmp/cache/assets/C81/D00/sprockets%2F64f056bd752d271308a86a6f865b1911 +0 -0
  11. data/spec/dummy/tmp/cache/assets/CB4/BD0/sprockets%2F3378f27c0d4f5e6d708665b22707a31f +0 -0
  12. data/spec/dummy/tmp/cache/assets/CC3/EF0/sprockets%2F453b504c1f8f374578636f699eaa455d +0 -0
  13. data/spec/dummy/tmp/cache/assets/CD5/670/sprockets%2F7f42231e2382a32f5a39dc7807f0b4d1 +0 -0
  14. data/spec/dummy/tmp/cache/assets/CD8/DA0/sprockets%2F622aa5281d15503829a5f7a0bf56fc29 +0 -0
  15. data/spec/dummy/tmp/cache/assets/CDD/820/sprockets%2Fb28231960c7ac62eff9048e702a29c70 +0 -0
  16. data/spec/dummy/tmp/cache/assets/CEC/EF0/sprockets%2F4b24a74018f693c06088bd52f8cc9f86 +0 -0
  17. data/spec/dummy/tmp/cache/assets/CEE/250/sprockets%2F96688f33f2f8aa261bf6701c1d6d7575 +0 -0
  18. data/spec/dummy/tmp/cache/assets/D20/F10/sprockets%2Fb2e907e4faa85fe755f4439e3b229088 +0 -0
  19. data/spec/dummy/tmp/cache/assets/D29/000/sprockets%2F61a10ddf57f1129c02a1049bfed6e007 +0 -0
  20. data/spec/dummy/tmp/cache/assets/D2C/F80/sprockets%2F399f6d5eb273936af7ff8f35a77c5037 +0 -0
  21. data/spec/dummy/tmp/cache/assets/D32/A10/sprockets%2F13fe41fee1fe35b49d145bcc06610705 +0 -0
  22. data/spec/dummy/tmp/cache/assets/D41/250/sprockets%2F7b3c4426715dcd1feedc4a95e5444256 +0 -0
  23. data/spec/dummy/tmp/cache/assets/D45/320/sprockets%2Fc50ff379a1bdf1dd4d22249058749cf6 +0 -0
  24. data/spec/dummy/tmp/cache/assets/D4C/7A0/sprockets%2Fbc635c7b186d1ef5178f4ed3722d868b +0 -0
  25. data/spec/dummy/tmp/cache/assets/D54/ED0/sprockets%2F71c9fa01091d432b131da3bb73faf3d4 +0 -0
  26. data/spec/dummy/tmp/cache/assets/D5D/3E0/sprockets%2F63fea6cc142b5f02da93bf81e70b2116 +0 -0
  27. data/spec/dummy/tmp/cache/assets/D60/030/sprockets%2Ffc9485f617fc5e9b8918755d2e08ecc6 +0 -0
  28. data/spec/dummy/tmp/cache/assets/D64/C50/sprockets%2F22ee6fb2ab1ea9694ac7f0f41a406094 +0 -0
  29. data/spec/dummy/tmp/cache/assets/D69/130/sprockets%2Fbaa4ec50a34ce938c986612c2a47a64e +0 -0
  30. data/spec/dummy/tmp/cache/assets/D74/9A0/sprockets%2F0ca4e6e833c72156fc7e7d5f007d9ce3 +0 -0
  31. data/spec/dummy/tmp/cache/assets/D84/210/sprockets%2Fabd0103ccec2b428ac62c94e4c40b384 +0 -0
  32. data/spec/dummy/tmp/cache/assets/D88/2C0/sprockets%2F452ab3ebb1912cf1c2ba617eec52a718 +0 -0
  33. data/spec/dummy/tmp/cache/assets/DCA/B80/sprockets%2Fb4aad54185f42b1b871997ef2dc2fabb +0 -0
  34. data/spec/dummy/tmp/cache/assets/DCE/E80/sprockets%2Fc71ec62157b9cc7aabfc030955cef87b +0 -0
  35. data/spec/dummy/tmp/cache/assets/E04/890/sprockets%2F2f5173deea6c795b8fdde723bb4b63af +0 -0
  36. data/spec/dummy/tmp/cache/assets/E32/FC0/sprockets%2Fe55fb2eef11567fe04fdaf7e73af5ba4 +0 -0
  37. data/spec/dummy/tmp/pids/server.pid +1 -1
  38. data/spec/models/appointment_spec.rb +13 -10
  39. data/spec/requests/labs_spec.rb +1 -1
  40. data/spec/support/helper.rb +1 -1
  41. metadata +19 -19
@@ -2,6 +2,7 @@ $(document).ready ->
2
2
 
3
3
  return unless $("form#appointment_data_search")
4
4
 
5
+
5
6
  ###### set the lab code in the appointment form ########
6
7
  # using click handler cause it fires before the submit
7
8
  # request
@@ -11,6 +12,7 @@ $(document).ready ->
11
12
  $("form#appointment_data_search input#lab_code").val(lab_code)
12
13
  )
13
14
 
15
+
14
16
  ###### handle ajax appointment data search submit ########
15
17
  $("form#appointment_data_search")
16
18
  .bind('ajax:beforeSend', (event, data)->
@@ -32,9 +34,9 @@ $(document).ready ->
32
34
  )
33
35
 
34
36
 
35
-
36
37
  # override this proc to do your own before send handling
37
38
  Appointment.BeforeSendHandler = (form)->
39
+ form.find('.error_message').empty()
38
40
  messages = []
39
41
  date = form.find('input#date').val()
40
42
  valid_date = Date.parseExact(date, "M/d/yyyy")
@@ -48,6 +50,7 @@ $(document).ready ->
48
50
  span.fadeOut(4000)
49
51
  false
50
52
  $('.appointment_spinner_elem').show()
53
+ true
51
54
 
52
55
  # override this proc to do your own success handling
53
56
  Appointment.SuccessHandler = (form, event, data) ->
@@ -67,7 +70,6 @@ $(document).ready ->
67
70
  # do your own handling here
68
71
  span = $("<span>#{message}</span>")
69
72
  form.find('.error_message').append(span)
70
- span.fadeOut(5000)
71
73
 
72
74
 
73
75
  ###### handle toggle to show more appointments ########
@@ -77,3 +79,16 @@ $(document).ready ->
77
79
  $("#more_appointments_list_toggler").hide()
78
80
  )
79
81
 
82
+
83
+
84
+
85
+
86
+
87
+
88
+
89
+
90
+
91
+
92
+
93
+
94
+
@@ -1,25 +1,43 @@
1
1
  $(document).ready ->
2
2
 
3
+ return unless $("form#lab_data_search")
4
+
5
+ LabSearch = {}
6
+ LabSearch.form = $("form#lab_data_search")
7
+
8
+ ###### override this method to handle before send call yourself ########
9
+ LabSearch.BeforeSendHandler = (form)->
10
+ form.find('.error_message').html('')
11
+ zip_code = form.find('#zip_code').val()
12
+ if (!zip_code.match(/\d{5}/))
13
+ form.find('.error_message').html("Zip code should be 5 digits")
14
+ false
15
+ else
16
+ form.find('#find_labs').prop("disabled", true)
17
+ $('.lab_search_spinner_elem').show()
18
+ true
19
+
20
+ ###### override this method to handle success call yourself ########
21
+ LabSearch.SuccessHandler = (form, event, data)->
22
+ window.map_view.center_point = data.zip_location
23
+ window.lab_list.setList(data.labs)
24
+ # set the first lab as selected
25
+ $('input:radio[name=selected_lab]:first').prop('checked',true)
26
+
27
+
3
28
  ###### handle ajax lab data search ########
4
29
  $("form#lab_data_search")
5
30
  .bind('ajax:beforeSend', (event, data)->
6
- zip_code = $(this).find('#zip_code').val()
7
- if (!zip_code.match(/\d{5}/))
8
- span = $('<span>Zip code should be 5 digits</span>')
9
- $('form#lab_data_search .error_message').append(span)
10
- span.fadeOut(4000)
11
- false
12
- $('.lab_search_spinner_elem').show()
31
+ LabSearch.BeforeSendHandler($(this))
13
32
  )
14
33
  .bind('ajax:success', (event, data)->
15
- window.map_view.center_point = data.zip_location
16
- window.lab_list.setList(data.labs)
17
- # set the first lab as selected
18
- $('input:radio[name=selected_lab]:first').prop('checked',true)
19
- $('form#lab_data_search input[type=submit]').prop("disabled", false)
34
+ LabSearch.SuccessHandler($(this), event, data)
20
35
  )
21
36
  .bind('ajax:complete', (event, data)->
37
+ form = $(this)
22
38
  $('.lab_search_spinner_elem').hide()
39
+ # reenable to submit buttom
40
+ form.find('#find_labs').prop("disabled", false)
23
41
  )
24
42
 
25
43
  ###### handle toggle to show more labs ########
@@ -3,7 +3,7 @@ require 'restclient'
3
3
  module Medivo
4
4
  class Appointment
5
5
 
6
- LABCORP_FORMAT = "%m/%d/%Y|%H:%M %P" unless defined? LABCORP_FORMAT
6
+ LABCORP_FORMAT = "%m/%d/%Y|%H:%M %p" unless defined? LABCORP_FORMAT
7
7
  MDY_FORMAT = "%m/%d/%Y" unless defined? MDY_FORMAT
8
8
 
9
9
  class << self
@@ -14,13 +14,19 @@ module Medivo
14
14
  # @param lab_code lab code
15
15
  # @param date date to seek
16
16
  # @param am_pm optional time of day value ( 'AM' or 'PM' )
17
+ #
18
+ # @return Hash { :times=>['time1', 'time2'] }
19
+ #
20
+ # @throws exception mainly Restclien::Exception types
17
21
  def find(lab_code, date, am_pm='')
18
22
  if real_data?
19
23
  data = resource.get :params=>{:labcorp_id=>lab_code, :appointment_date=>date}
24
+ # data is json encoded hash: { :times => ['time1', 'time2'] }
20
25
  data = JSON.parse(data)
21
26
  else
22
27
  data = build_fake_data(date)
23
28
  end
29
+ # filter the hash before returning
24
30
  filter_data(data, am_pm)
25
31
  end
26
32
 
@@ -31,17 +37,22 @@ module Medivo
31
37
  # @param time time
32
38
  # @param user user info must include date_of_birth, first_name, last_name,
33
39
  # email_address, phone_number
40
+ #
41
+ # @return String confirmation number or nil if none made
42
+ #
43
+ # @throws exception mainly Restclien::Exception types
34
44
  def make(lab_code, time, user)
35
45
  time_id = time.strftime(LABCORP_FORMAT)
36
46
  if real_data?
37
- data = resource.post :params=>{:labcorp_id=>lab_code, :time_id=>time_id, :user=>user}
38
- JSON.parse(data)
47
+ data = resource.post :labcorp_id=>lab_code, :time_id=>time_id, :user=>user
48
+ # data is json { :confimation => ( 'real number' or nil if no appointment made ) }
49
+ data = JSON.parse(data)
50
+ data['confirmation']
39
51
  else
40
- { confirmation: nil }
52
+ nil
41
53
  end
42
54
  end
43
55
 
44
-
45
56
  def resource
46
57
  @resource ||= begin
47
58
  @config = ResourceConfig.find 'appointment_resource.yml'
@@ -1,3 +1,3 @@
1
1
  module Medivo
2
- VERSION = "0.2.11"
2
+ VERSION = "0.2.12"
3
3
  end
@@ -7,8 +7,8 @@ info: &default
7
7
 
8
8
  test:
9
9
  href: http://test.medivo.com
10
- user: test
11
- password: test
10
+ user:
11
+ password:
12
12
 
13
13
  development:
14
14
  <<: *default