Class: Api::V2::Compliance::ScapContentsController

Inherits:
BaseController
  • Object
show all
Includes:
Foreman::Controller::Parameters::ScapContent, ForemanOpenscap::Api::V2::ScapApiControllerExtensions, ForemanOpenscap::BodyLogExtensions
Defined in:
app/controllers/api/v2/compliance/scap_contents_controller.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods included from ForemanOpenscap::BodyLogExtensions

#log_response_body, #logger_msg, #skip_body_log

Class Method Details

.bulk_upload_typesObject



8
9
10
# File 'app/controllers/api/v2/compliance/scap_contents_controller.rb', line 8

def self.bulk_upload_types
  ['files', 'directory', 'default']
end

Instance Method Details

#bulk_uploadObject



73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# File 'app/controllers/api/v2/compliance/scap_contents_controller.rb', line 73

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

#createObject



48
49
50
51
# File 'app/controllers/api/v2/compliance/scap_contents_controller.rb', line 48

def create
  @scap_content = ForemanOpenscap::ScapContent.new(scap_content_params)
  process_response @scap_content.save
end

#destroyObject



64
65
66
# File 'app/controllers/api/v2/compliance/scap_contents_controller.rb', line 64

def destroy
  process_response @scap_content.destroy
end

#indexObject



18
19
20
# File 'app/controllers/api/v2/compliance/scap_contents_controller.rb', line 18

def index
  @scap_contents = resource_scope_for_index(:permission => :view_scap_contents)
end

#showObject



33
34
# File 'app/controllers/api/v2/compliance/scap_contents_controller.rb', line 33

def show
end

#updateObject



57
58
59
# File 'app/controllers/api/v2/compliance/scap_contents_controller.rb', line 57

def update
  process_response @scap_content.update(scap_content_params)
end

#xmlObject



25
26
27
28
29
# File 'app/controllers/api/v2/compliance/scap_contents_controller.rb', line 25

def xml
  send_data @scap_content.scap_file,
            :type     => 'application/xml',
            :filename => @scap_content.original_filename || "#{@scap_content.title}.xml"
end