handle settling records for homie

This commit is contained in:
Bilal
2020-09-17 15:00:55 +03:00
parent 0e5682a9a0
commit f459052fcb
4 changed files with 38 additions and 0 deletions

View File

@@ -26,6 +26,19 @@ class HomiesController < ApplicationController
json_response(Homie.cash(importance))
end
def settle
homie_id = params[:homy_id].to_i
homie = Homie.find(homie_id)
if homie.settle
json_response []
else
error_response :bad_request
end
rescue StandardError
error_response :bad_request
end
private
def homie_params

View File

@@ -10,4 +10,18 @@ class Homie < ApplicationRecord
{ homie: homie, amount: total }
end
end
def settle
total = MoneyMove.where(homie_id: id).all.sum(:amount)
all_money_moves = MoneyMove.where(homie_id: id).all
transaction do
all_money_moves.destroy_all
MoneyMove.create_settle_record(id, total)
end
true
rescue StandardError => e
false
end
end

View File

@@ -13,6 +13,16 @@ class MoneyMove < ApplicationRecord
end
end
def self.create_settle_record(homie_id, amount)
new_desc = "Settled on #{DateTime.now.utc}"
settle_record = MoneyMove.new(
homie_id: homie_id,
amount: amount,
description: new_desc
)
settle_record.save
end
class << self
private

View File

@@ -8,6 +8,7 @@ Rails.application.routes.draw do
collection do
get 'cash'
end
delete 'settle'
end
end
end