Sha256: 2b97bcdb9fd40faeeaaff976934c362e018a8ad4ffd8a74c0caf8ae322c31e47

Contents?: true

Size: 1 KB

Versions: 3

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_id], 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

3 entries across 3 versions & 1 rubygems

Version Path
medivo-0.2.10 app/controllers/medivo/labs_controller.rb
medivo-0.2.9 app/controllers/medivo/labs_controller.rb
medivo-0.2.8 app/controllers/medivo/labs_controller.rb