diff --git a/app/controllers/homies_controller.rb b/app/controllers/homies_controller.rb index 4bdd945..5b4387c 100644 --- a/app/controllers/homies_controller.rb +++ b/app/controllers/homies_controller.rb @@ -28,9 +28,10 @@ class HomiesController < ApplicationController def settle homie_id = params[:homie_id].to_i + amount = params[:amount].present? ? params[:amount].to_d : nil homie = Homie.find(homie_id) - if homie.settle + if homie.settle(amount) json_response [] else error_response :bad_request diff --git a/app/models/homie.rb b/app/models/homie.rb index 9d5d5f6..1c1efa4 100644 --- a/app/models/homie.rb +++ b/app/models/homie.rb @@ -12,8 +12,8 @@ class Homie < ApplicationRecord end end - def settle - total = MoneyMove.where(homie_id: id).all.sum(:amount) + def settle(amount) + total = amount.nil? ? MoneyMove.where(homie_id: id).all.sum(:amount) : amount all_money_moves = MoneyMove.where(homie_id: id).all transaction do @@ -22,7 +22,7 @@ class Homie < ApplicationRecord MoneyMove.create_settle_record(id, total) end true - rescue StandardError => e + rescue StandardError false end end diff --git a/config/routes.rb b/config/routes.rb index e3f2417..7094a56 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -10,7 +10,7 @@ Rails.application.routes.draw do get 'cash' end member do - delete 'settle' + post 'settle' end end end