diff --git a/app/controllers/api/v1/projects/sca_controller.rb b/app/controllers/api/v1/projects/sca_controller.rb index 410861bd9..d594705ff 100644 --- a/app/controllers/api/v1/projects/sca_controller.rb +++ b/app/controllers/api/v1/projects/sca_controller.rb @@ -49,6 +49,21 @@ class Api::V1::Projects::ScaController < Api::V1::BaseController render :index end + def dependency_tree + @result = Api::V1::Projects::Sca::DependencyTreeService.call(params[:scan_id]) + render :index + end + + def scan_issues + @result = Api::V1::Projects::Sca::ScanIssuesService.call(params[:scan_id],params[:scan_library_id], params[:page], params[:limit]) + render :index + end + + def scan_library + @result = Api::V1::Projects::Sca::ScanLibraryService.call(params[:scan_id],params[:scan_library_id]) + render :index + end + private def set_sca_cookie cookies[:access_token] = { diff --git a/app/services/api/v1/projects/sca/dependency_tree_service.rb b/app/services/api/v1/projects/sca/dependency_tree_service.rb new file mode 100644 index 000000000..3ced5c88d --- /dev/null +++ b/app/services/api/v1/projects/sca/dependency_tree_service.rb @@ -0,0 +1,10 @@ +class Api::V1::Projects::Sca::DependencyTreeService < Api::V1::Projects::Sca::BaseService + def initialize(scan_id) + @scan_id = scan_id + end + + def call + sca_get_request("scans/#{@scan_id}/scan_library_version/dependency_tree/") + end + +end \ No newline at end of file diff --git a/app/services/api/v1/projects/sca/scan_issues_service.rb b/app/services/api/v1/projects/sca/scan_issues_service.rb new file mode 100644 index 000000000..5093ab63f --- /dev/null +++ b/app/services/api/v1/projects/sca/scan_issues_service.rb @@ -0,0 +1,13 @@ +class Api::V1::Projects::Sca::ScanIssuesService < Api::V1::Projects::Sca::BaseService + def initialize(scan_id,library_id,page,limit) + @scan_id = scan_id + @library_id = library_id + @page = page + @limit = limit + end + + def call + sca_get_request("scans/#{@scan_id}/scan_library_version/#{@library_id}/issues/?page=#{@page}&limit=#{@limit}") + end + +end \ No newline at end of file diff --git a/app/services/api/v1/projects/sca/scan_library_service.rb b/app/services/api/v1/projects/sca/scan_library_service.rb new file mode 100644 index 000000000..d1d753414 --- /dev/null +++ b/app/services/api/v1/projects/sca/scan_library_service.rb @@ -0,0 +1,11 @@ +class Api::V1::Projects::Sca::ScanLibraryService < Api::V1::Projects::Sca::BaseService + def initialize(scan_id,library_id) + @scan_id = scan_id + @library_id = library_id + end + + def call + sca_get_request("scans/#{@scan_id}/scan_library_version/#{@library_id}/") + end + +end \ No newline at end of file diff --git a/config/routes/api.rb b/config/routes/api.rb index d3c4b814a..f5fab7285 100644 --- a/config/routes/api.rb +++ b/config/routes/api.rb @@ -231,6 +231,9 @@ defaults format: :json do post :reports get :report_list get :report_export + get :dependency_tree + get :scan_library + get :scan_issues end end resources :pipelines do