56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			Ruby
		
	
	
	
| class MarkFilesController < ApplicationController
 | |
|   before_action :require_login
 | |
|   before_action :load_project 
 | |
|   before_action :load_pull_request
 | |
| 
 | |
|   def index
 | |
|     @files_result = Gitea::PullRequest::FilesService.call(@owner.login, @project.identifier, @pull_request.gitea_number, current_user&.gitea_token, { "only-file-name": true })
 | |
|     @mark_files = MarkFile.where(pull_request_id: @pull_request.id)
 | |
|   end
 | |
| 
 | |
|   def create
 | |
|     # unless @pull_request.mark_files.present?
 | |
|     #   MarkFile.bulk_insert(*%i[pull_request_id, file_path_sha file_path created_at updated_at]) do |worker|
 | |
|     #     @files_result['Files'].each do |file|
 | |
|     #       worker.add(pull_request_id: @pull_request.id, file_path_sha: SecureRandom.uuid.gsub("-", ""), file_path: file['Name'])
 | |
|     #     end
 | |
|     #   end
 | |
|     # end
 | |
|   end
 | |
| 
 | |
|   def mark_file_as_unread
 | |
|     tip_exception "参数错误" if params[:file_path_sha].blank?
 | |
|     file_path = Base64.strict_decode64(params[:file_path_sha].to_s)
 | |
|     mark_file = @pull_request.mark_files.find_or_initialize_by(file_path_sha: params[:file_path_sha])
 | |
|     mark_file.file_path = file_path
 | |
|     mark_file.user_id = current_user.id
 | |
|     mark_file.mark_as_read = false
 | |
|     mark_file.save
 | |
|     render_ok
 | |
|   rescue Exception => e
 | |
|     tip_exception "参数解析错误"
 | |
|   end
 | |
| 
 | |
|   def mark_file_as_read
 | |
|     tip_exception "参数错误" if params[:file_path_sha].blank?
 | |
|     file_path = Base64.strict_decode64(params[:file_path_sha].to_s)
 | |
|     mark_file = @pull_request.mark_files.find_or_initialize_by(file_path_sha: params[:file_path_sha])
 | |
|     mark_file.file_path = file_path
 | |
|     mark_file.user_id = current_user.id
 | |
|     mark_file.mark_as_read = true
 | |
|     mark_file.save
 | |
|     render_ok
 | |
|   rescue Exception => e
 | |
|     tip_exception "参数解析错误"
 | |
|   end
 | |
| 
 | |
|   private 
 | |
|   def review_params 
 | |
|     params.require(:review).permit(:content, :commit_id, :status)
 | |
|   end
 | |
| 
 | |
|   def load_pull_request
 | |
|     @pull_request = @project.pull_requests.where(gitea_number: params[:id]).where.not(id: params[:id]).take || PullRequest.find_by_id(params[:id])
 | |
|   end
 | |
| 
 | |
| end |