From fcc7736c3471693d493699ed5e0c3fa2960d7db1 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 23 Jul 2021 09:56:45 +0800 Subject: [PATCH 1/3] fix some bug pick 2ea0c6e3 add: remove public key from api --- app/controllers/public_keys_controller.rb | 6 +++--- app/views/public_keys/create.json.jbuilder | 13 ++++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/app/controllers/public_keys_controller.rb b/app/controllers/public_keys_controller.rb index 07d60c490..fe4b4047c 100644 --- a/app/controllers/public_keys_controller.rb +++ b/app/controllers/public_keys_controller.rb @@ -18,11 +18,11 @@ class PublicKeysController < ApplicationController if @gitea_response[0] == 201 @public_key = @gitea_response[2] else - return render_error("创建ssh key失败") if @gitea_response[2]["message"].nil? + return render_error("创建ssh key失败") if @gitea_response[2].blank? 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? + 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? && 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") @public_key = nil end rescue Exception => e diff --git a/app/views/public_keys/create.json.jbuilder b/app/views/public_keys/create.json.jbuilder index bcbcb9451..9296413ab 100644 --- a/app/views/public_keys/create.json.jbuilder +++ b/app/views/public_keys/create.json.jbuilder @@ -1,5 +1,8 @@ -json.id @public_key["id"] -json.name @public_key["title"] -json.content @public_key["key"] -json.fingerprint @public_key["fingerprint"] -json.created_time @public_key["created_at"].to_time.strftime("%Y/%m/%d %H:%M") \ No newline at end of file +if @public_key.present? + json.status 0 + json.id @public_key["id"] + json.name @public_key["title"] + json.content @public_key["key"] + json.fingerprint @public_key["fingerprint"] + json.created_time @public_key["created_at"].to_time.strftime("%Y/%m/%d %H:%M") +end \ No newline at end of file From f5e07ab3ece28685649968bd06fbe57087a6b6ef Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 23 Jul 2021 10:54:21 +0800 Subject: [PATCH 2/3] add: remove public key from api --- app/controllers/public_keys_controller.rb | 3 ++- app/services/gitea/user/keys/delete_service.rb | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/controllers/public_keys_controller.rb b/app/controllers/public_keys_controller.rb index fe4b4047c..327e719cc 100644 --- a/app/controllers/public_keys_controller.rb +++ b/app/controllers/public_keys_controller.rb @@ -32,7 +32,8 @@ class PublicKeysController < ApplicationController def destroy return render_not_found unless @public_key.present? - if @public_key.destroy + result = Gitea::User::Keys::DeleteService.call(current_user.gitea_token, @public_key.id) + if result[0] == 204 render_ok else render_error diff --git a/app/services/gitea/user/keys/delete_service.rb b/app/services/gitea/user/keys/delete_service.rb index 2e6a125fd..3ae263e3b 100644 --- a/app/services/gitea/user/keys/delete_service.rb +++ b/app/services/gitea/user/keys/delete_service.rb @@ -7,7 +7,8 @@ class Gitea::User::Keys::DeleteService < Gitea::ClientService end def call - delete(url, params) + response = delete(url, params) + render_response(response) end private From f334864f1bd06cc59691695fa893c4b344fa19d7 Mon Sep 17 00:00:00 2001 From: yystopf Date: Fri, 23 Jul 2021 14:47:05 +0800 Subject: [PATCH 3/3] fix: get file extname --- app/helpers/repositories_helper.rb | 2 +- app/views/repositories/_simple_entry.json.jbuilder | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/helpers/repositories_helper.rb b/app/helpers/repositories_helper.rb index f5e76f4e0..a7218810b 100644 --- a/app/helpers/repositories_helper.rb +++ b/app/helpers/repositories_helper.rb @@ -81,7 +81,7 @@ module RepositoriesHelper content = Gitea::Repository::Entries::GetService.call(owner, repo.identifier, entry['path'], ref: ref)['content'] readme_render_decode64_content(content, path) else - file_type = entry['name'].to_s.split(".").last + file_type = File.extname(entry['name'].to_s)[1..-1] if download_type(file_type) return entry['content'].nil? ? Gitea::Repository::Entries::GetService.call(owner, repo.identifier, entry['path'], ref: ref)['content'] : entry['content'] end diff --git a/app/views/repositories/_simple_entry.json.jbuilder b/app/views/repositories/_simple_entry.json.jbuilder index 7d41bbd23..6c2088755 100644 --- a/app/views/repositories/_simple_entry.json.jbuilder +++ b/app/views/repositories/_simple_entry.json.jbuilder @@ -1,6 +1,6 @@ if @project.forge? file_name = entry['name'] - file_type = file_name.to_s.split(".").last + file_type = File.extname(file_name.to_s)[1..-1] direct_download = download_type(file_type) image_type = image_type?(file_type) json.name file_name