mirror of
https://github.com/gwenhael-le-moine/ledgerrb.git
synced 2024-12-27 21:58:11 +01:00
refactoring register methods and API
This commit is contained in:
parent
90d343636e
commit
12a482b16e
2 changed files with 14 additions and 5 deletions
5
app.rb
5
app.rb
|
@ -27,15 +27,16 @@ class LedgerRbApp < Sinatra::Base
|
||||||
Ledger.accounts( params[ :depth ] ).to_json
|
Ledger.accounts( params[ :depth ] ).to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
get '/api/ledger/monthly/?' do
|
get '/api/ledger/register/:period/?' do
|
||||||
content_type :json
|
content_type :json
|
||||||
|
param :period, String, required: true # TODO: restrict possible values to [ 'yearly', 'monthly' ]
|
||||||
param :categories, Array, default: Ledger.accounts( 1 )
|
param :categories, Array, default: Ledger.accounts( 1 )
|
||||||
|
|
||||||
params[ :categories ].map do
|
params[ :categories ].map do
|
||||||
|category|
|
|category|
|
||||||
cat = category.first
|
cat = category.first
|
||||||
{ category: cat,
|
{ category: cat,
|
||||||
data: Ledger.monthly_register( cat ) }
|
data: Ledger.register( cat, "--#{params[ :period ]}" ) }
|
||||||
end.to_json
|
end.to_json
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
|
@ -29,8 +29,8 @@ module Ledger
|
||||||
run '', 'cleared'
|
run '', 'cleared'
|
||||||
end
|
end
|
||||||
|
|
||||||
def monthly_register( category )
|
def register( category, options='' )
|
||||||
run( "--monthly --collapse --amount-data --exchange '€'", 'register', "#{category}" )
|
run( "#{options} --collapse --amount-data --exchange '€'", 'register', "#{category}" )
|
||||||
.split( "\n" )
|
.split( "\n" )
|
||||||
.map do |line|
|
.map do |line|
|
||||||
line_array = line.split
|
line_array = line.split
|
||||||
|
@ -40,6 +40,14 @@ module Ledger
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def monthly_register( category )
|
||||||
|
register category, "--monthly"
|
||||||
|
end
|
||||||
|
|
||||||
|
def yearly_register( category )
|
||||||
|
register category, "--yearly"
|
||||||
|
end
|
||||||
|
|
||||||
def balance( period = nil )
|
def balance( period = nil )
|
||||||
period = period.nil? ? '' : "-p #{period}"
|
period = period.nil? ? '' : "-p #{period}"
|
||||||
output run "--flat --exchange '€' #{period}", 'balance', "#{category}"
|
output run "--flat --exchange '€' #{period}", 'balance', "#{category}"
|
||||||
|
|
Loading…
Reference in a new issue