From c64fa5135b8d2bb80de409021889eafd02c1895e Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 10 May 2022 09:18:49 +0800 Subject: [PATCH] fix --- app/controllers/trace/projects_controller.rb | 8 ++--- app/services/trace/check_result_service.rb | 2 +- app/services/trace/check_service.rb | 11 ++++--- app/services/trace/client_service.rb | 31 +++++++++++++++++--- 4 files changed, 37 insertions(+), 15 deletions(-) diff --git a/app/controllers/trace/projects_controller.rb b/app/controllers/trace/projects_controller.rb index a5adcbbb1..160433fe7 100644 --- a/app/controllers/trace/projects_controller.rb +++ b/app/controllers/trace/projects_controller.rb @@ -5,7 +5,7 @@ class Trace::ProjectsController < Trace::BaseController def tasks branch_name = params[:branch_name] - [code, data, error] = Trace::CheckService.call(current_user.trace_token, @project, "1", branch_name) + code, data, error = Trace::CheckService.call(current_user.trace_token, @project, "1", branch_name) if code == 200 render_ok else @@ -20,7 +20,7 @@ class Trace::ProjectsController < Trace::BaseController 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) + code, data, error = Trace::CheckResultService.call(current_user.trace_token, @project, nil, page, limit) if code == 200 render :json => {data: data} else @@ -33,7 +33,7 @@ class Trace::ProjectsController < Trace::BaseController 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]) + code, data, error = Trace::ReloadCheckService.call(current_user.trace_token, params[:project_id]) if code == 200 render_ok else @@ -47,7 +47,7 @@ class Trace::ProjectsController < Trace::BaseController 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]) + code, data, error = Trace::PdfReportService.call(current_user.trace_token, params[:task_id]) if code == 200 render_ok else diff --git a/app/services/trace/check_result_service.rb b/app/services/trace/check_result_service.rb index 9c177b147..f6a44c882 100644 --- a/app/services/trace/check_result_service.rb +++ b/app/services/trace/check_result_service.rb @@ -19,7 +19,7 @@ class Trace::CheckResultService < Trace::ClientService private def request_params { - product_name: "#{project&.owner&.login}-#{project.identifier}", + product_name: "#{project&.owner&.id}#{project.id}", file_name: file_name, pageNum: page_num, pageSize: page_size, diff --git a/app/services/trace/check_service.rb b/app/services/trace/check_service.rb index 56a70b9a5..cf1fcf133 100644 --- a/app/services/trace/check_service.rb +++ b/app/services/trace/check_service.rb @@ -11,7 +11,7 @@ class Trace::CheckService < Trace::ClientService end def call - result = authed_post(token, url, {data: request_params}) + result = http_authed_post(token, url, {data: request_params}) reponse = render_response(result) end @@ -19,9 +19,9 @@ class Trace::CheckService < Trace::ClientService def request_params repo = Gitea::Repository::GetService.call(project&.owner, project&.identifier) { - product_name: "#{project&.owner&.login}-#{project&.identifier}", - product_type: project&.category&.name, - code_type: project&.language&.name, + product_name: "#{project&.owner&.id}#{project&.id}", + product_type: project&.project_category&.name, + code_type: project&.project_language&.name, product_desc: project&.description, git_url: repo['clone_url'], if_branch: if_branch, @@ -32,5 +32,4 @@ class Trace::CheckService < Trace::ClientService def url "/user/check".freeze end -end - +end \ No newline at end of file diff --git a/app/services/trace/client_service.rb b/app/services/trace/client_service.rb index 72ffa8ca2..9423b575d 100644 --- a/app/services/trace/client_service.rb +++ b/app/services/trace/client_service.rb @@ -12,6 +12,18 @@ class Trace::ClientService < ApplicationService conn.post(full_url(url), params[:data]) end + def http_authed_post(token, url, params={}) + puts "[trace][POST] request params: #{params}" + puts "[trace][POST] request token: #{token}" + url = URI("#{full_url(url)}") + http = Net::HTTP.new(url.host, url.port) + request = Net::HTTP::Post.new(url) + request["Authorization"] = token + form_data = params[:data].stringify_keys.to_a + request.set_form form_data, 'multipart/form-data' + http.request(request) + end + def get(url, params={}) puts "[trace][GET] request params: #{params}" conn.get do |req| @@ -100,11 +112,22 @@ class Trace::ClientService < ApplicationService end def render_response(response) - status = response.status - body = JSON.parse(response&.body) + if response.is_a?(Faraday::Response) + status = response.status + body = JSON.parse(response&.body) - log_error(status, body) + log_error(status, body) - return [body["code"], body["data"], body["error"]] + return [body["code"], body["data"], body["error"]] + end + + if response.is_a?(Net::HTTPOK) + status = 200 + body = JSON.parse(response&.body) + + log_error(status, body) + + return [body["code"], body["data"], body["error"]] + end end end \ No newline at end of file