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