foreman/app/controllers/api/v1/reports_controller.rb @ d213e460
d076d573 | Joseph Mitchell Magen | module Api
|
|
module V1
|
|||
class ReportsController < V1::BaseController
|
|||
d213e460 | Daniel Lobato | before_filter :find_resource, :only => %w{show destroy}
|
|
25d4ca6d | Joseph Mitchell Magen | before_filter :setup_search_options, :only => [:index, :last]
|
|
d076d573 | Joseph Mitchell Magen | ||
api :GET, "/reports/", "List all reports."
|
|||
param :search, String, :desc => "filter results"
|
|||
param :order, String, :desc => "sort results"
|
|||
param :page, String, :desc => "paginate results"
|
|||
param :per_page, String, :desc => "number of entries per request"
|
|||
def index
|
|||
acfbc458 | Marek Hulan | @reports = Report.
|
|
authorized(:view_reports).
|
|||
my_reports.
|
|||
includes(:logs => [:source, :message]).
|
|||
d076d573 | Joseph Mitchell Magen | search_for(*search_options).paginate(paginate_options)
|
|
end
|
|||
api :GET, "/reports/:id/", "Show a report."
|
|||
param :id, :identifier, :required => true
|
|||
def show
|
|||
end
|
|||
2e2e0c6b | Martin Bačovský | api :DELETE, "/reports/:id/", "Delete a report."
|
|
d076d573 | Joseph Mitchell Magen | param :id, String, :required => true
|
|
def destroy
|
|||
process_response @report.destroy
|
|||
end
|
|||
8bf24428 | Ohad Levy | api :GET, "/hosts/:host_id/reports/last", "Show the last report for a given host."
|
|
param :id, :identifier, :required => true
|
|||
25d4ca6d | Joseph Mitchell Magen | def last
|
|
d213e460 | Daniel Lobato | conditions = { :host_id => Host.authorized(:view_hosts).find(params[:host_id]).try(:id) } if params[:host_id].present?
|
|
max_id = resource_scope.where(conditions).maximum(:id)
|
|||
@report = resource_scope.includes(:logs => [:message, :source]).find(max_id)
|
|||
25d4ca6d | Joseph Mitchell Magen | render :show
|
|
end
|
|||
d213e460 | Daniel Lobato | ||
private
|
|||
def resource_scope(options = {})
|
|||
super(options).my_reports
|
|||
end
|
|||
def action_permission
|
|||
case params[:action]
|
|||
when 'last'
|
|||
'view'
|
|||
else
|
|||
super
|
|||
end
|
|||
end
|
|||
d076d573 | Joseph Mitchell Magen | end
|
|
end
|
|||
end
|