ledgerrb/app.rb

68 lines
1.5 KiB
Ruby
Raw Normal View History

2014-07-14 12:30:48 +02:00
# encoding: utf-8
2014-07-14 16:19:05 +02:00
require 'json'
2014-07-28 11:35:28 +02:00
Bundler.require( :default, ENV[ 'RACK_ENV' ].to_sym )
2014-07-14 16:19:05 +02:00
require_relative './lib/ledger'
# Sinatra app serving API
class LedgerRbApp < Sinatra::Base
helpers Sinatra::Param
2014-07-28 11:35:55 +02:00
before do
content_type :json, 'charset' => 'utf-8'
end
2014-07-14 16:19:05 +02:00
get '/' do
2014-07-28 11:35:55 +02:00
content_type :html
2014-07-14 19:59:46 +02:00
send_file './public/app/index.html'
2014-07-14 16:19:05 +02:00
end
get '/api/ledger/accounts/?' do
Ledger.accounts.to_json
end
2014-07-27 22:02:59 +02:00
get '/api/ledger/accounts/depth/:depth/?' do
2014-07-27 10:10:02 +02:00
param :depth, Integer, required: true
2014-07-14 16:19:05 +02:00
Ledger.accounts( params[ :depth ] ).to_json
end
2014-08-01 22:25:36 +02:00
get '/api/ledger/register/?' do
param :period, String, default: nil
param :category, String, required: true
{ key: params[ :category ],
values: Ledger.register( params[ :period ], params[ :category ] ) }
.to_json
2014-07-14 16:19:05 +02:00
end
2014-07-27 22:04:26 +02:00
get '/api/ledger/balance/?' do
param :depth, Integer, default: false
param :period, String, default: nil
param :cleared, Boolean, default: false
param :categories, String, default: ''
Ledger.balance( params[ :cleared ],
params[ :depth ],
params[ :period ],
params[ :categories ] )
.to_json
2014-07-27 22:04:26 +02:00
end
# get '/api/ledger/cleared/?' do
# Ledger.balance( true ).to_json
# end
2014-07-27 22:04:26 +02:00
# get '/api/ledger/cleared/depth/:depth/?' do
# param :depth, Integer, required: true
2014-07-27 22:04:26 +02:00
# Ledger.balance( true, params[ :depth ] ).to_json
# end
2014-07-27 22:04:26 +02:00
2014-07-14 16:19:05 +02:00
get '/api/ledger/version/?' do
Ledger.version
end
2014-07-14 12:30:48 +02:00
end