Class: Api::Dashboard::ReportsController
Instance Method Summary
collapse
#current_user, #identity_cache_memoization, #restaurants, #set_options
#append_info_to_payload
#check_boolean_param, #get_banners, #inventory_params, #reservation_params
#my_response_cache
Instance Method Details
#index ⇒ Object
4
5
6
7
|
# File 'app/controllers/api/dashboard/reports_controller.rb', line 4
def index
build_report = ReportService::Dashboard.new(restaurants, params)
render json: { data: build_report.to_json }
end
|
#package_sales ⇒ Object
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
# File 'app/controllers/api/dashboard/reports_controller.rb', line 9
def package_sales
sales = {}
restaurants.each do |r|
r.package_solds&.values&.each do |package|
sales[package[:name]] ||= {}
covers = sales[package[:name]][:covers] || 0
sales[package[:id]] = {
name: package[:name],
covers: covers + package[:covers],
net_price: package[:net_price]
}
end
end
render json: { data: sales.values }
end
|
#ratings ⇒ Object
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
# File 'app/controllers/api/dashboard/reports_controller.rb', line 26
def ratings
metas = {}
restaurants.each do |r|
meta = Api::V5::ReviewsFilter.new.scope_by(restaurant_id: r.id).meta
meta.each_key do |key|
if meta[key].respond_to?(:+)
metas[key] ||= 0
metas[key] += meta[key]
else
metas[key] ||= {}
meta[key].each_key do |k|
metas[key][k] ||= 0
metas[key][k] = meta[key][k]
end
end
end
end
render(json: { data: metas })
end
|