diff --git a/app/controllers/public_keys_controller.rb b/app/controllers/public_keys_controller.rb index a16266abd..51551bb90 100644 --- a/app/controllers/public_keys_controller.rb +++ b/app/controllers/public_keys_controller.rb @@ -11,17 +11,17 @@ class PublicKeysController < ApplicationController end def create - return render_error("请输入密钥") if public_key_params[:key].blank? - return render_error("请输入标题") if public_key_params[:title].blank? + return render_ok({status: 10002, message: "请输入密钥"}) if public_key_params[:key].blank? + return render_ok({status: 10001, message: "请输入标题"}) if public_key_params[:title].blank? @gitea_response = Gitea::User::Keys::CreateService.call(current_user.gitea_token, public_key_params) if @gitea_response[0] == 201 @public_key = @gitea_response[2] - puts @public_key else - return render_error if @gitea_response[2]["message"].nil? - return render_error("密钥格式不正确") if @gitea_response[2]["message"].starts_with?("Invalid key content") - return render_error("密钥已存在,请勿重复添加") if @gitea_response[2]["message"].starts_with?("Key content has been used as non-deploy key") - puts @gitea_response[2] + return render_ok({status: 10000, message: "创建ssh key失败"}) if @gitea_response[2]["message"].nil? + return render_ok({status: 10002, message: "密钥格式不正确"}) if @gitea_response[2]["message"].starts_with?("Invalid key content") + exist_public_key = Gitea::PublicKey.find_by(content: public_key_params[:key]) + return render_ok({status: 10002, message: "密钥已存在,请勿重复添加"}) if @gitea_response[2]["message"].starts_with?("Key content has been used as non-deploy key") && exist_public_key.owner_id == current_user.gitea_uid + return render_ok({status: 10002, message: "密钥已被占用"}) if @gitea_response[2]["message"].starts_with?("Key content has been used as non-deploy key") && exist_public_key.present? @public_key = nil end rescue Exception => e