class Api::V2::Compliance::ScapContentsController
def self.bulk_upload_types
def self.bulk_upload_types ['files', 'directory', 'default'] end
def action_permission
def action_permission case params[:action] when 'bulk_upload' :create when 'xml' :view else super end end
def bulk_upload
def bulk_upload case params[:type] when 'files' @result = ForemanOpenscap::BulkUpload.new.upload_from_files(params[:files]) when 'directory' @result = ForemanOpenscap::BulkUpload.new.upload_from_directory(params[:directory]) when 'default' @result = ForemanOpenscap::BulkUpload.new.upload_from_scap_guide else return render :json => { :errors => [ _("Please specify import type, received: %{received}, expected one of: %{expected}") % { :expected => self.class.bulk_upload_types.join(', '), :received => params[:type] } ] }, :status => :unprocessable_entity end end
def create
def create @scap_content = ForemanOpenscap::ScapContent.new(scap_content_params) process_response @scap_content.save end
def destroy
def destroy process_response @scap_content.destroy end
def find_resource
def find_resource not_found && return if params[:id].blank? instance_variable_set("@scap_content", resource_scope.find(params[:id])) end
def index
def index @scap_contents = resource_scope_for_index(:permission => :view_scap_contents) end
def show
def show end
def update
def update process_response @scap_content.update(scap_content_params) end
def xml
def xml send_data @scap_content.scap_file, :type => 'application/xml', :filename => @scap_content.original_filename || "#{@scap_content.title}.xml" end