Skip to content

Instantly share code, notes, and snippets.

@felipemesquita
Created April 17, 2012 19:22
Show Gist options
  • Save felipemesquita/2408424 to your computer and use it in GitHub Desktop.
Save felipemesquita/2408424 to your computer and use it in GitHub Desktop.
Refactoring
class Hospitalizations::TransfersController < BaseController
defaults :resource_class => Hospitalization::Transfer
def list
@transfer_requests = Hospitalization::Transfer::Request.waiting.ordered
end
def new
transfer_request = Hospitalization::Transfer::Request.find(params[:request_id])
@transfer_request = HospitalizationTransferRequestPresenter.new(transfer_request)
beds = transfer_request.target_health_unit.beds.available.where(extra: false)
@beds = beds.map { |bed| BedPresenter.new(bed).as_options }
super
end
def create
transfer_request = Hospitalization::Transfer::Request.find(params[:request_id])
@transfer_request = HospitalizationTransferRequestPresenter.new(transfer_request)
beds = transfer_request.target_health_unit.beds.available.where(extra: false)
@beds = beds.map { |bed| BedPresenter.new(bed).as_options }
@transfer = transfer_request.build_transfer(params[:hospitalization_transfer])
super
end
end
class Hospitalizations::TransfersController < BaseController
defaults :resource_class => Hospitalization::Transfer
before_filter :prepare_transfer_request, :only => [:new, :create]
before_filter :prepare_beds, :only => [:new, :create]
def list
@transfer_requests = Hospitalization::Transfer::Request.waiting.ordered
end
def create
@transfer = @transfer_request.build_transfer(params[:hospitalization_transfer])
create!
end
protected
def prepare_transfer_request
@transfer_request = Hospitalization::Transfer::Request.find(params[:request_id])
@transfer_request_presentable = HospitalizationTransferRequestPresenter.new(@transfer_request)
end
def prepare_beds
available_beds = @transfer_request.target_health_unit.beds.available.where(extra: false)
@available_beds_presentable = available_beds.map { |bed| BedPresenter.new(bed).as_options }
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment