Merge branch 'standalone_develop' into pre_trustie_server

This commit is contained in:
2024-07-19 14:34:13 +08:00
25 changed files with 290 additions and 41 deletions

View File

@@ -0,0 +1,40 @@
class Api::V1::Users::HomeTopSettings::CreateService < ApplicationService
include ActiveModel::Model
attr_reader :user, :top_type, :top_id
attr_accessor :home_top_setting, :home_top
validates :user, :top_type, :top_id, presence: true
validates :top_type, inclusion: {in: %w(Organization Project), message: '请输入正确的TopType'}
def initialize(user, params)
@user = user
@top_type = params[:top_type]
@top_id = params[:top_id]
end
def call
raise Error, errors.full_messages.join(",") unless valid?
raise Error, "置顶对象不存在!" unless find_home_top
raise Error, "置顶对象已置顶!" if check_home_top_setting
begin
@home_top_setting = HomeTopSetting.new(user:user, top: @home_top)
@home_top_setting.save!
return @home_top_setting.valid? ? @home_top_setting : nil
rescue
raise Error, "服务器错误,请联系系统管理员!"
end
end
def find_home_top
@home_top = @top_type.constantize.find_by_id(@top_id).presence
end
def check_home_top_setting
HomeTopSetting.exists?(user: @user, top: @home_top)
end
end

View File

@@ -0,0 +1,40 @@
class Api::V1::Users::HomeTopSettings::DeleteService < ApplicationService
include ActiveModel::Model
attr_reader :user, :top_type, :top_id
attr_accessor :home_top_setting, :home_top
validates :user, :top_type, :top_id, presence: true
validates :top_type, inclusion: {in: %w(Organization Project), message: '请输入正确的TopType'}
def initialize(user, params)
@user = user
@top_type = params[:top_type]
@top_id = params[:top_id]
end
def call
raise Error, errors.full_messages.join(",") unless valid?
raise Error, "置顶对象不存在!" unless find_home_top
raise Error, "置顶对象未置顶!" unless check_home_top_setting
begin
@home_top_setting = HomeTopSetting.find_by(user:user, top: @home_top)
@home_top_setting.destroy!
return true
rescue
raise Error, "服务器错误,请联系系统管理员!"
end
end
def find_home_top
@home_top = @top_type.constantize.find_by_id(@top_id).presence
end
def check_home_top_setting
HomeTopSetting.exists?(user: @user, top: @home_top)
end
end

View File

@@ -15,6 +15,7 @@ class Projects::TransferService < ApplicationService
update_repo_url
update_visit_teams
update_fork_info
update_fork_pull_request_info
end
Rails.logger.info("##### Project transfer_service end ######")
@@ -49,6 +50,11 @@ class Projects::TransferService < ApplicationService
fork_user.update(user_id: @new_owner.id) if fork_user.present?
end
def update_fork_pull_request_info
fork_pull_requests = PullRequest.where(fork_project_id: @project.id)
fork_pull_requests.update_all(fork_project_owner: @new_owner&.login) if fork_pull_requests.present?
end
def gitea_update_owner
begin
@gitea_repo = $gitea_hat_client.post_repos_transfer_by_owner_repo(owner&.login, project.identifier, {body: {new_owner: new_owner&.login}.to_json})

View File

@@ -1,6 +1,6 @@
class PullRequests::CreateService < ApplicationService
attr_reader :current_user, :owner, :project, :params
attr_reader :current_user, :owner, :project, :params, :fork_project
attr_accessor :pull_issue, :pull_request
def initialize(current_user, owner, project, params)
@@ -8,6 +8,7 @@ class PullRequests::CreateService < ApplicationService
@project = project
@params = params
@current_user = current_user
@fork_project = Project.find_by_id(params[:fork_project_id])
end
def call
@@ -102,7 +103,9 @@ class PullRequests::CreateService < ApplicationService
fork_project_id: @params[:fork_project_id],
is_original: is_original,
files_count: @params[:files_count] || 0,
commits_count: @params[:commits_count] || 0
commits_count: @params[:commits_count] || 0,
fork_project_owner: @fork_project&.owner&.login,
fork_project_identifier: @fork_project&.identifier
})
end