|
- class ProjectPackages::ApplyPublishService < ApplicationService
- Error = Class.new(StandardError)
-
- attr_reader :package
-
- def initialize(package)
- @package = package
- end
-
- def call
- return if package.applying?
-
- raise Error, '该状态下不能申请发布' unless package.may_apply?
-
- ActiveRecord::Base.transaction do
- package.apply!
-
- package.project_package_applies.create!
-
- send_project_package_apply_notify!
- end
- end
-
- private
-
- def send_project_package_apply_notify!
- Tiding.create!(user_id: 1, trigger_user_id: package.creator_id,
- container_id: package.id, container_type: 'ProjectPackage',
- tiding_type: 'Apply', status: 0)
- end
- end
|