From a11d517d197360b63f4bcee5156df56303de68ff Mon Sep 17 00:00:00 2001 From: Bilal Date: Mon, 5 Oct 2020 17:02:47 +0300 Subject: [PATCH 1/2] allow not selecting To homie --- client/src/cash/MakeMoneyMove.js | 37 +++++++++++++++++++++++--------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/client/src/cash/MakeMoneyMove.js b/client/src/cash/MakeMoneyMove.js index ac8f499..b1b5ca0 100644 --- a/client/src/cash/MakeMoneyMove.js +++ b/client/src/cash/MakeMoneyMove.js @@ -7,9 +7,9 @@ import axios from 'axios'; const MakeMoneyMove = (props) => { const [selectedFrom, setSelectedFrom] = useState(""); - const [selectedTo, setSelectedTo] = useState(""); + const [selectedTo, setSelectedTo] = useState("-1"); const [homiesCash, setHomiesCash] = useState([]); - const [amountToMove, setAmountToMove] = useState(null); + const [amountToMove, setAmountToMove] = useState(''); const [moveDescription, setMoveDescription] = useState(""); const [submitInProgress, setSubmitInProgress] = useState(false); @@ -40,9 +40,26 @@ const MakeMoneyMove = (props) => { const handleFromHomieChange = (e) => { setSelectedFrom(e.target.value); + + if (selectedTo === e.target.value) { + setSelectedTo('-1'); + } }; - const filteredHomieCashes = homiesCash.filter((homieCash) => homieCash.homie.id !== parseInt(selectedFrom)); - const filteredHomieOptions = filteredHomieCashes.map(homieToOptionMapper); + + const notSayingOption = + + const filteredHomieOptions = () => { + if (selectedFrom === ''){ + return homiesCash.map(homieToOptionMapper); + }else{ + const filteredHomieCashes = homiesCash.filter((homieCash) => homieCash.homie.id !== parseInt(selectedFrom)); + return [ + notSayingOption, + ...filteredHomieCashes.map(homieToOptionMapper) + ]; + } + + } const handleToHomieChange = (e) => { setSelectedTo(e.target.value); @@ -84,7 +101,7 @@ const MakeMoneyMove = (props) => { const formComplete = () => ( selectedFrom !== selectedTo && - selectedTo !== "" && + selectedTo !== '-1' && amountToMove > 0 ); @@ -101,16 +118,16 @@ const MakeMoneyMove = (props) => { - + - +
-- 2.47.3 From 4a636c048a573230ea2bc98cdfb51ba5b8a20c98 Mon Sep 17 00:00:00 2001 From: Bilal Date: Mon, 5 Oct 2020 17:03:37 +0300 Subject: [PATCH 2/2] handle money move without To homie --- app/controllers/money_moves_controller.rb | 3 +++ app/models/money_move.rb | 27 ++++++++++++++--------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/app/controllers/money_moves_controller.rb b/app/controllers/money_moves_controller.rb index 9b892bb..2d7a83d 100644 --- a/app/controllers/money_moves_controller.rb +++ b/app/controllers/money_moves_controller.rb @@ -17,6 +17,9 @@ class MoneyMovesController < ApplicationController else error_response(:bad_request) end + + rescue StandardError + error_response(:bad_request) end def money_move_params diff --git a/app/models/money_move.rb b/app/models/money_move.rb index 50b7e7b..b542c50 100644 --- a/app/models/money_move.rb +++ b/app/models/money_move.rb @@ -4,13 +4,15 @@ class MoneyMove < ApplicationRecord def self.create_move(params) return false unless valid_money_move?(params) - move_from = create_move_from(params) if double_money_move?(params) - move_to = create_move_to(params) + move_from = create_move_from(params) if params[:from_homie_id].present? + move_to = create_move_to(params) if params[:to_homie_id].present? MoneyMove.transaction do move_from.save! if move_from.present? - move_to.save! + move_to.save! if move_to.present? end + + true end def self.create_settle_record(homie_id, amount) @@ -27,24 +29,27 @@ class MoneyMove < ApplicationRecord private def valid_money_move?(params) - params[:amount].present? && params[:to_homie_id].present? - end - - def double_money_move?(params) - params[:from_homie_id].present? && params[:to_homie_id].present? + params[:amount].present? && (params[:to_homie_id].present? || params[:from_homie_id].present?) end def from_source_name(params) - if double_money_move?(params) + if params[:from_homie_id].present? Homie.find(params[:from_homie_id]).name else 'External' end end + def to_source_name(params) + if params[:to_homie_id].present? + Homie.find(params[:to_homie_id]).name + else + 'External' + end + end + def create_move_from(params) - to_homie_name = Homie.find(params[:to_homie_id]).name - new_desc = "[#{to_homie_name}] #{params[:description]}".lstrip + new_desc = "[#{to_source_name(params)}] #{params[:description]}".lstrip MoneyMove.new( homie_id: params[:from_homie_id], amount: -params[:amount].to_d, -- 2.47.3