You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
32 lines
764 B
32 lines
764 B
5 years ago
|
class Libraries::SubmitService < ApplicationService
|
||
|
Error = Class.new(StandardError)
|
||
|
|
||
|
attr_reader :library
|
||
|
|
||
|
def initialize(library)
|
||
|
@library = library
|
||
|
end
|
||
|
|
||
|
def call
|
||
|
return if library.processing? || library.published?
|
||
|
|
||
|
raise Error, '该状态下不能提交审核' unless library.may_submit?
|
||
|
|
||
|
ActiveRecord::Base.transaction do
|
||
|
library.published_at = Time.current
|
||
|
library.submit
|
||
|
library.save!
|
||
|
|
||
|
library.library_applies.create!
|
||
|
send_library_apply_notify!
|
||
|
end
|
||
|
end
|
||
|
|
||
|
private
|
||
|
|
||
|
def send_library_apply_notify!
|
||
|
Tiding.create!(user_id: 1, trigger_user_id: library.user_id,
|
||
|
container_id: library.id, container_type: 'Library',
|
||
|
tiding_type: 'Apply', status: 0)
|
||
|
end
|
||
|
end
|