Sha256: 47bdfb0706c9dfde222b8363ed552d42123778d725f2b2c938a04a7906f0b002

Contents?: true

Size: 1 KB

Versions: 7

Compression:

Stored size: 1 KB

Contents

module Medivo
  class LabsController < ActionController::Base

    def index
      lab_data = Medivo::Lab.data_for_zip(params[:zip_code])
      render :json=> lab_data
    end

    def find_appointment
      data = Medivo::Appointment.find(params[:lab_code], params[:date], params[:am_pm])
      render :json=> data
    rescue => e
      appointment_error_handler(e)
    end

    def make_appointment
      data = Medivo::Appointment.make(params[:lab_code], params[:time], params[:user])
      render :json=> data
    rescue Exception => e
      appointment_error_handler(e)
    end

    def appointment_error_handler(e)
      case e
        when RestClient::RequestTimeout, RestClient::InternalServerError
          render :status=> e.http_code, json: {message: "Could be lab_code is wrong, or labcorp server is down"}
        when RestClient::Exception
          render :status=> e.http_code, json: {message: e.response}
        else
          render :status=> 500, json: {message: e.message}
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
medivo-0.2.17 app/controllers/medivo/labs_controller.rb
medivo-0.2.16 app/controllers/medivo/labs_controller.rb
medivo-0.2.15 app/controllers/medivo/labs_controller.rb
medivo-0.2.14 app/controllers/medivo/labs_controller.rb
medivo-0.2.13 app/controllers/medivo/labs_controller.rb
medivo-0.2.12 app/controllers/medivo/labs_controller.rb
medivo-0.2.11 app/controllers/medivo/labs_controller.rb