mirror of
https://github.com/gwenhael-le-moine/ledgerrb.git
synced 2024-12-27 21:58:11 +01:00
47 lines
927 B
Ruby
47 lines
927 B
Ruby
# encoding: utf-8
|
|
|
|
require 'json'
|
|
|
|
Bundler.require( :default, :development ) # require tout les gems définis dans Gemfile
|
|
|
|
require_relative './lib/ledger'
|
|
|
|
# Sinatra app serving API
|
|
class LedgerRbApp < Sinatra::Base
|
|
helpers Sinatra::Param
|
|
|
|
get '/' do
|
|
send_file './public/app/index.html'
|
|
end
|
|
|
|
get '/api/ledger/accounts/?' do
|
|
content_type :json
|
|
|
|
Ledger.accounts.to_json
|
|
end
|
|
|
|
get '/api/ledger/accounts/depth/:depth' do
|
|
content_type :json
|
|
param :depth, Integer, required: true
|
|
|
|
Ledger.accounts( params[ :depth ] ).to_json
|
|
end
|
|
|
|
get '/api/ledger/monthly/?' do
|
|
content_type :json
|
|
end
|
|
param :categories, Array, default: Ledger.accounts( 1 )
|
|
|
|
params[ :categories ].map do
|
|
|category|
|
|
cat = category.first
|
|
{ category: cat,
|
|
data: Ledger.monthly_register( cat ) }
|
|
end
|
|
|
|
get '/api/ledger/version/?' do
|
|
content_type :json
|
|
|
|
Ledger.version
|
|
end
|
|
end
|