Merge branch 'standalone_develop' into pm_project_develop

This commit is contained in:
2024-09-12 09:21:10 +08:00
48 changed files with 440 additions and 64 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

@@ -34,7 +34,7 @@ class Api::V1::Users::Projects::ListService < ApplicationService
private
def project_query_data
if current_user.admin?
if current_user.admin? || @observe_user.id == current_user.id
projects = Project
else
projects = Project.visible