Sha256: 950a9e69c786b52f6cf92af72858b95e478fb37f4adaab024e1678e1955314cd

Contents?: true

Size: 1.03 KB

Versions: 1

Compression:

Stored size: 1.03 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=> {times: data}
    rescue => e
      p e.backtrace
      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

1 entries across 1 versions & 1 rubygems

Version Path
medivo-0.2.19 app/controllers/medivo/labs_controller.rb