forgeplus/app/services/api/v1/projects/codecheck_service.rb

77 lines
2.0 KiB
Ruby

class Api::V1::Projects::CodecheckService < ApplicationService
def initialize(project)
@project = project
@client = HuaweiCloud::CodeCheck.new
end
def create_task(branch)
language = if @project.project_language.present?
@project.project_language.name.upcase
else
"TYPESCRIPT"
end
result = @client.create_task(
git_url: @project.repository.url,
git_branch: branch,
languages: [language],
username: @project.owner.login,
access_token: "this is opensource"
)
@project.update(huawei_code_check_task_id: result["task_id"])
end
def run_task
@client.run_task(@project.huawei_code_check_task_id)
end
def query_task
@client.query_task(@project.huawei_code_check_task_id)
end
def defects_summary(query)
query = URI.encode_www_form(query)
@client.defects_summary(@project.huawei_code_check_task_id,query)
end
def defects_detail(query)
query = URI.encode_www_form(query)
@client.defects_detail(@project.huawei_code_check_task_id,query)
end
def defects_statistic
@client.defects_statistic(@project.huawei_code_check_task_id)
end
def metrics_summary
@client.metrics_summary(@project.huawei_code_check_task_id)
end
def defect_status(query)
query = URI.encode_www_form(query)
@client.defect_status(@project.huawei_code_check_task_id,query)
end
def issue_status(body) #更新代码问题状态 post
@client.issue_status(@project.huawei_code_check_task_id,body)
end
def issue_list_by_filter(body) #获取代码问题状态
@client.issue_list_by_filter(@project.huawei_code_check_task_id,body)
end
def issue_filter(body) #获取代码问题状态
@client.issue_filter(@project.huawei_code_check_task_id,body)
end
def defect_metric_trend(query)
query = URI.encode_www_form(query)
@client.defect_metric_trend(@project.huawei_code_check_task_id,query)
end
def next_status
@client.next_status(@project.huawei_code_check_task_id)
end
end