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