5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
# File 'app/controllers/api/v1/biz_txn_events_controller.rb', line 5
def index
sort = nil
dir = nil
limit = nil
start = nil
unless params[:sort].blank?
sort_hash = params[:sort].blank? ? {} : Hash.symbolize_keys(JSON.parse(params[:sort]).first)
sort = sort_hash[:property] || 'description'
dir = sort_hash[:direction] || 'ASC'
limit = params[:limit] || 25
start = params[:start] || 0
end
query_filter = params[:query_filter].blank? ? {} : JSON.parse(params[:query_filter]).symbolize_keys
biz_txn_events = BizTxnEvent.apply_filters(query_filter)
unless query_filter[:parties]
dba_organizations = [current_user.party.dba_organization]
dba_organizations = dba_organizations.concat(current_user.party.dba_organization.child_dba_organizations)
biz_txn_events = biz_txn_events.scope_by_dba_organization(dba_organizations)
end
if sort and dir
biz_txn_events = biz_txn_events.order("#{sort} #{dir}")
end
total_count = biz_txn_events.count
if start and limit
biz_txn_events = biz_txn_events.offset(start).limit(limit)
end
render :json => {total_count: total_count, biz_txn_events: biz_txn_events.collect(&:to_data_hash)}
end
|