add: trace controller and router
This commit is contained in:
parent
f5efbcfc04
commit
12cc37443e
|
@ -0,0 +1,18 @@
|
||||||
|
class Trace::BaseController < ApplicationController
|
||||||
|
|
||||||
|
helper_method :observed_logged_user?, :observed_user
|
||||||
|
|
||||||
|
|
||||||
|
def observed_user
|
||||||
|
@_observed_user ||= (User.find_by_login(params[:user_id]) || User.find_by_id(params[:user_id]))
|
||||||
|
end
|
||||||
|
|
||||||
|
def observed_logged_user?
|
||||||
|
observed_user.id == User.current&.id
|
||||||
|
end
|
||||||
|
|
||||||
|
protected
|
||||||
|
def check_auth
|
||||||
|
return render_forbidden unless current_user.admin? || observed_logged_user?
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,60 @@
|
||||||
|
class Trace::ProjectsController < Trace::BaseController
|
||||||
|
|
||||||
|
before_action :require_login
|
||||||
|
before_action :load_project
|
||||||
|
|
||||||
|
def tasks
|
||||||
|
branch_name = params[:branch_name]
|
||||||
|
[code, data, error] = Trace::CheckService.call(current_user.trace_token, @project, "1", branch_name)
|
||||||
|
if code == 200
|
||||||
|
render_ok
|
||||||
|
else
|
||||||
|
render_error(-1, "检测失败 Error:#{error}")
|
||||||
|
end
|
||||||
|
rescue Exception => exception
|
||||||
|
puts exception.message
|
||||||
|
normal_status(-1, exception.message)
|
||||||
|
end
|
||||||
|
|
||||||
|
def task_results
|
||||||
|
limit = params[:limit] || params[:per_page]
|
||||||
|
limit = (limit.to_i.zero? || limit.to_i > 15) ? 15 : limit.to_i
|
||||||
|
page = params[:page].to_i.zero? ? 1 : params[:page].to_i
|
||||||
|
[code, data, error] = Trace::CheckResultService.call(current_user.trace_token, @project, nil, page, limit)
|
||||||
|
if code == 200
|
||||||
|
render :json => {data: data}
|
||||||
|
else
|
||||||
|
render_error(-1, "获取检测记录失败 Error:#{error}")
|
||||||
|
end
|
||||||
|
rescue Exception => exception
|
||||||
|
puts exception.message
|
||||||
|
normal_status(-1, exception.message)
|
||||||
|
end
|
||||||
|
|
||||||
|
def reload_task
|
||||||
|
render_error(-1, "project_id错误") if params[:project_id].blank?
|
||||||
|
[code, data, error] = Trace::ReloadCheckService.call(current_user.trace_token, params[:project_id])
|
||||||
|
if code == 200
|
||||||
|
render_ok
|
||||||
|
else
|
||||||
|
render_error(-1, "重新检测失败 Error:#{error}")
|
||||||
|
end
|
||||||
|
rescue Exception => exception
|
||||||
|
puts exception.message
|
||||||
|
normal_status(-1, exception.message)
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
def task_pdf
|
||||||
|
render_error(-1, "task_id错误") if params[:task_id].blank?
|
||||||
|
[code, data, error] = Trace::PdfReportService.call(current_user.trace_token, params[:task_id])
|
||||||
|
if code == 200
|
||||||
|
render_ok
|
||||||
|
else
|
||||||
|
render_error(-1, "下载报告失败 Error:#{error}")
|
||||||
|
end
|
||||||
|
rescue Exception => exception
|
||||||
|
puts exception.message
|
||||||
|
normal_status(-1, exception.message)
|
||||||
|
end
|
||||||
|
end
|
|
@ -0,0 +1,14 @@
|
||||||
|
class Trace::TraceUsersController < Trace::BaseController
|
||||||
|
before_action :require_auth
|
||||||
|
|
||||||
|
def create
|
||||||
|
if current_user.trace_token.present?
|
||||||
|
render_ok
|
||||||
|
else
|
||||||
|
render_error(-1, "代码溯源用户初始化失败")
|
||||||
|
end
|
||||||
|
rescue Exception => exception
|
||||||
|
puts exception.message
|
||||||
|
normal_status(-1, exception.message)
|
||||||
|
end
|
||||||
|
end
|
|
@ -1,11 +1,11 @@
|
||||||
# 代码溯源 查询检测结果
|
# 代码溯源 查询检测结果
|
||||||
class Trace::CheckResultService < Trace::ClientService
|
class Trace::CheckResultService < Trace::ClientService
|
||||||
|
|
||||||
attr_accessor :token, :project_name, :file_name, :page_num, :page_size
|
attr_accessor :token, :project, :file_name, :page_num, :page_size
|
||||||
|
|
||||||
def initialize(token, project_name=nil, file_name=nil, page_num=1, page_size=15)
|
def initialize(token, project, file_name=nil, page_num=1, page_size=15)
|
||||||
@token = token
|
@token = token
|
||||||
@project_name = project_name
|
@project = project
|
||||||
@file_name = file_name
|
@file_name = file_name
|
||||||
@page_num = page_num
|
@page_num = page_num
|
||||||
@page_size = page_size
|
@page_size = page_size
|
||||||
|
@ -19,7 +19,7 @@ class Trace::CheckResultService < Trace::ClientService
|
||||||
private
|
private
|
||||||
def request_params
|
def request_params
|
||||||
{
|
{
|
||||||
product_name: project_name,
|
product_name: "#{project&.owner&.login}-#{project.identifier}",
|
||||||
file_name: file_name,
|
file_name: file_name,
|
||||||
pageNum: page_num,
|
pageNum: page_num,
|
||||||
pageSize: page_size,
|
pageSize: page_size,
|
||||||
|
|
|
@ -17,9 +17,9 @@ class Trace::CheckService < Trace::ClientService
|
||||||
|
|
||||||
private
|
private
|
||||||
def request_params
|
def request_params
|
||||||
repo = Gitea::Repository::GetService.call(project&.owner&.login, project&.identifier)
|
repo = Gitea::Repository::GetService.call(project&.owner, project&.identifier)
|
||||||
{
|
{
|
||||||
product_name: project&.name,
|
product_name: "#{project&.owner&.login}-#{project&.identifier}",
|
||||||
product_type: project&.category&.name,
|
product_type: project&.category&.name,
|
||||||
code_type: project&.language&.name,
|
code_type: project&.language&.name,
|
||||||
product_desc: project&.description,
|
product_desc: project&.description,
|
||||||
|
|
|
@ -677,6 +677,20 @@ Rails.application.routes.draw do
|
||||||
end
|
end
|
||||||
# Project Area END
|
# Project Area END
|
||||||
|
|
||||||
|
namespace :trace do
|
||||||
|
resources :trace_users, only: [:create]
|
||||||
|
scope "/:owner/:repo" do
|
||||||
|
resource :projects, path: '/', only: [:index] do
|
||||||
|
member do
|
||||||
|
post :tasks
|
||||||
|
get :task_results
|
||||||
|
get :reload_task
|
||||||
|
get :task_pdf
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
scope module: :helps do
|
scope module: :helps do
|
||||||
resources :faqs, only: [:index]
|
resources :faqs, only: [:index]
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue