From 7b4214def11e3f72ec582337ec6192637c4d1af7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Karl=20Erik=20=C3=95unapuu?= Date: Mon, 15 Feb 2021 16:51:50 +0200 Subject: [PATCH] Add from/until sorting to balance API --- app/controllers/repp/v1/accounts_controller.rb | 16 +++++++--------- .../integration/repp/v1/accounts/balance_test.rb | 6 +----- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/app/controllers/repp/v1/accounts_controller.rb b/app/controllers/repp/v1/accounts_controller.rb index 012a36dc5..f9550b6b2 100644 --- a/app/controllers/repp/v1/accounts_controller.rb +++ b/app/controllers/repp/v1/accounts_controller.rb @@ -2,10 +2,9 @@ module Repp module V1 class AccountsController < BaseController def balance - return activity if params[:detailed] == 'true' - resp = { balance: current_user.registrar.cash_account.balance, currency: current_user.registrar.cash_account.currency } + resp[:activities] = activities if params[:detailed] == 'true' render_success(data: resp) end @@ -17,22 +16,21 @@ module Repp end def activities - bal = current_user.registrar.cash_account.balance - act = [] activities = current_user.registrar.cash_account.activities.order(created_at: :desc) + activities = activities.where('created_at >= ?', params[:from]) if params[:from] + activities = activities.where('created_at <= ?', params[:until]) if params[:until] + arr = [] activities.each do |a| - act << { + arr << { created_at: a.created_at, description: a.description, type: a.activity_type == 'add_credit' ? 'credit' : 'debit', sum: a.sum, - balance: bal, + balance: a.new_balance, } - - bal = a.activity_type == 'add_credit' ? bal = bal + a.sum : bal - a.sum end - act + arr end end end diff --git a/test/integration/repp/v1/accounts/balance_test.rb b/test/integration/repp/v1/accounts/balance_test.rb index 38b793020..d2b2624fa 100644 --- a/test/integration/repp/v1/accounts/balance_test.rb +++ b/test/integration/repp/v1/accounts/balance_test.rb @@ -13,10 +13,6 @@ class ReppV1BalanceTest < ActionDispatch::IntegrationTest get '/repp/v1/accounts/balance', headers: @auth_headers json = JSON.parse(response.body, symbolize_names: true) - puts response.body - puts @registrar.registrar.cash_account.balance - puts @registrar.registrar.cash_account.currency - assert_response :ok assert_equal 1000, json[:code] assert_equal 'Command completed successfully', json[:message] @@ -28,7 +24,7 @@ class ReppV1BalanceTest < ActionDispatch::IntegrationTest started_from = "2020-01-01" end_to = DateTime.current.to_date.to_s(:db) - get "/repp/v1/accounts/balance?detailed=true&started_from=#{started_from}&end_to=#{end_to}", headers: @auth_headers + get "/repp/v1/accounts/balance?detailed=true&from=#{started_from}&until=#{end_to}", headers: @auth_headers json = JSON.parse(response.body, symbolize_names: true) assert_response :ok