bluerogue251/expense_manager

View on GitHub
app/controllers/exchange_rates_controller.rb

Summary

Maintainability
A
0 mins
Test Coverage
class ExchangeRatesController < ApplicationController
  def index
    @exchange_rate = ExchangeRate.new
    @exchange_rates = ExchangeRate.by_starts_on
  end

  def create
    @exchange_rate = ExchangeRate.new(exchange_rate_params)
    @exchange_rate.save
    render "create_or_update"
  end

  def destroy
    find_exchange_rate
    @exchange_rate.destroy!
  end

  private

  rescue_from PG::CheckViolation do
    @exchange_rate.errors.add(:base, "Exchange rates must not have overlapping dates")
    render "create_or_update"
  end

  def find_exchange_rate
    @exchange_rate = ExchangeRate.find(params[:id])
  end

  def exchange_rate_params
    params.require(:exchange_rate).permit(:anchor, :float, :rate, :starts_on, :ends_on)
  end
end