From 3d63a796bdc66e3a723c3245e7ba170caf954ae9 Mon Sep 17 00:00:00 2001 From: Bilal Date: Tue, 6 Oct 2020 00:17:21 +0300 Subject: [PATCH] send total work hrs for homie --- app/controllers/homies_controller.rb | 8 ++++---- app/models/homie.rb | 10 ++++++---- config/routes.rb | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/controllers/homies_controller.rb b/app/controllers/homies_controller.rb index 86ecc92..5380f48 100644 --- a/app/controllers/homies_controller.rb +++ b/app/controllers/homies_controller.rb @@ -21,9 +21,9 @@ class HomiesController < ApplicationController end end - def cash - importance = params[:importance].present? ? params[:importance].to_i : -1 - json_response(Homie.cash(importance)) + def info + importance = params[:importance].to_i + json_response(Homie.info(importance)) end def settle @@ -32,7 +32,7 @@ class HomiesController < ApplicationController homie = Homie.find(homie_id) if homie.settle(amount) - cash + info else error_response :bad_request end diff --git a/app/models/homie.rb b/app/models/homie.rb index 1c1efa4..be5ef9d 100644 --- a/app/models/homie.rb +++ b/app/models/homie.rb @@ -3,12 +3,14 @@ class Homie < ApplicationRecord has_many :work belongs_to :chip - def self.cash(importance) - totals = Homie.all.joins(:money_moves).group(:id).order(:id).sum(:amount) + def self.info(importance) + cash_totals = Homie.all.joins(:money_moves).group(:id).order(:id).sum(:amount) + work_totals = Homie.all.joins(:work).group(:id).order(:id).sum(:amount) Homie.where(["importance > ?", importance]).map do |homie| - total = totals.fetch(homie.id, 0) - { homie: homie, amount: total } + cash_total = cash_totals.fetch(homie.id, 0) + work_total = work_totals.fetch(homie.id, 0) + { homie: homie, amount: cash_total, work: work_total } end end diff --git a/config/routes.rb b/config/routes.rb index 7094a56..dbd5365 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -7,7 +7,7 @@ Rails.application.routes.draw do resources :chip_values, only: %i[create update destroy] resources :homies, param: :homie_id do collection do - get 'cash' + get 'info' end member do post 'settle'