Browse Source

Merge branch 'develop' into dev_educoder

pull/141/head
jasder 5 years ago
parent
commit
dfc998a9cc
6 changed files with 44 additions and 15 deletions
  1. +5
    -5
      app/controllers/issues_controller.rb
  2. +4
    -4
      app/controllers/pull_requests_controller.rb
  3. +9
    -3
      app/interactors/gitea/create_file_interactor.rb
  4. +8
    -0
      app/services/gitea/client_service.rb
  5. +18
    -2
      app/services/gitea/repository/entries/create_service.rb
  6. +0
    -1
      app/views/pull_requests/index.json.jbuilder

+ 5
- 5
app/controllers/issues_controller.rb View File

@@ -19,15 +19,15 @@ class IssuesController < ApplicationController

@all_issues = issues
@filter_issues = @all_issues
@filter_issues = @filter_issues.where.not(status_id: 5) if params[:status_type].to_i == 1
@filter_issues = @filter_issues.where(status_id: 5) if params[:status_type].to_i == 2
@filter_issues = @filter_issues.where.not(status_id: IssueStatus::CLOSED) if params[:status_type].to_i == IssueStatus::ADD
@filter_issues = @filter_issues.where(status_id: IssueStatus::CLOSED) if params[:status_type].to_i == IssueStatus::SOLVING
@filter_issues = @filter_issues.where("subject LIKE ? OR description LIKE ? ", "%#{params[:search]}%", "%#{params[:search]}%") if params[:search].present?
@open_issues = @all_issues.where.not(status_id: 5)
@close_issues = @all_issues.where(status_id: 5)
@open_issues = @all_issues.where.not(status_id: IssueStatus::CLOSED)
@close_issues = @all_issues.where(status_id: IssueStatus::CLOSED)
@assign_to_me = @filter_issues.where(assigned_to_id: current_user&.id)
@my_published = @filter_issues.where(author_id: current_user&.id)
scopes = Issues::ListQueryService.call(issues,params.delete_if{|k,v| v.blank?}, "Issue")
@issues_size = @filter_issues.size
@issues_size = scopes.size
@issues = paginate(scopes)

respond_to do |format|


+ 4
- 4
app/controllers/pull_requests_controller.rb View File

@@ -15,13 +15,13 @@ class PullRequestsController < ApplicationController
@all_issues = issues.distinct
@filter_issues = @all_issues
@filter_issues = @filter_issues.where("subject LIKE ? OR description LIKE ? ", "%#{params[:search]}%", "%#{params[:search]}%") if params[:search].present?
@open_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: 0})
@close_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: 2})
@merged_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: 1})
@open_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::OPEN})
@close_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::CLOSED})
@merged_issues = @filter_issues.joins(:pull_request).where(pull_requests: {status: PullRequest::MERGED})
@user_admin_or_member = current_user.present? && (current_user.admin || @project.member?(current_user))

scopes = Issues::ListQueryService.call(issues,params.delete_if{|k,v| v.blank?}, "PullRequest")
@issues_size = @filter_issues.size
@issues_size = scopes.size
@issues = paginate(scopes)
end



+ 9
- 3
app/interactors/gitea/create_file_interactor.rb View File

@@ -24,8 +24,14 @@ module Gitea

def run
Contents::CreateForm.new(valid_params).validate!
response = Gitea::Repository::Entries::CreateService.new(token, owner, @params[:identifier], @params[:filepath], file_params).call
render_result(response)
result = Gitea::Repository::Entries::CreateService.call(token,
owner, @params[:identifier], @params[:filepath], file_params)

if result[:status] == :success
@result = result[:body]
else
fail!(result[:message])
end
rescue Exception => exception
Rails.logger.info "Exception ===========> #{exception.message}"
fail!(exception.message)
@@ -56,7 +62,7 @@ module Gitea
file_params = {}
file_params = file_params.merge(branch: @params[:branch]) unless @params[:branch].blank?
file_params = file_params.merge(new_branch: @params[:new_branch]) unless @params[:new_branch].blank?
file_params = file_params.merge(content: Base64.encode64(@params[:content]))
file_params = file_params.merge(content: Base64.encode64(@params[:content] || ""))
file_params = file_params.merge(message: @params[:message]) unless @params[:message].blank?
file_params = file_params.merge(committer: @params[:committer])
file_params


+ 8
- 0
app/services/gitea/client_service.rb View File

@@ -214,6 +214,14 @@ class Gitea::ClientService < ApplicationService
[body, message]
end

def json_parse!(body)
return nil unless body.present?

body = JSON.parse(body)
body, message = fix_body(body)
body
end

def log_error(status, body)
puts "[gitea] status: #{status}"
puts "[gitea] body: #{body&.force_encoding('UTF-8')}"


+ 18
- 2
app/services/gitea/repository/entries/create_service.rb View File

@@ -30,8 +30,7 @@ class Gitea::Repository::Entries::CreateService < Gitea::ClientService

def call
response = post(url, params)

render_201_response(response)
response_payload(response)
end

private
@@ -43,4 +42,21 @@ class Gitea::Repository::Entries::CreateService < Gitea::ClientService
"/repos/#{owner}/#{repo_name}/contents/#{filepath}".freeze
end

def response_payload(response)
status = response.status
body = response&.body

log_error(status, body)
status_payload(status, body)
end

def status_payload(status, body)
case status
when 201 then success(json_parse!(body))
when 403 then error("你没有权限操作!")
when 404 then error("你操作的链接不存在!")
when 422 then error("#{filepath}文件已存在,不能重复创建!")
else error("系统错误!")
end
end
end

+ 0
- 1
app/views/pull_requests/index.json.jbuilder View File

@@ -1,5 +1,4 @@
json.partial! "commons/success"
json.all_count @all_issues.size
json.open_count @open_issues.size
json.close_count @close_issues.size
json.merged_issues_size @merged_issues.size


Loading…
Cancel
Save