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
|
||||
|
||||
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
|
||||
@project_name = project_name
|
||||
@project = project
|
||||
@file_name = file_name
|
||||
@page_num = page_num
|
||||
@page_size = page_size
|
||||
|
@ -19,7 +19,7 @@ class Trace::CheckResultService < Trace::ClientService
|
|||
private
|
||||
def request_params
|
||||
{
|
||||
product_name: project_name,
|
||||
product_name: "#{project&.owner&.login}-#{project.identifier}",
|
||||
file_name: file_name,
|
||||
pageNum: page_num,
|
||||
pageSize: page_size,
|
||||
|
|
|
@ -17,9 +17,9 @@ class Trace::CheckService < Trace::ClientService
|
|||
|
||||
private
|
||||
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,
|
||||
code_type: project&.language&.name,
|
||||
product_desc: project&.description,
|
||||
|
|
|
@ -677,6 +677,20 @@ Rails.application.routes.draw do
|
|||
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
|
||||
resources :faqs, only: [:index]
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue