|
- class AtmeService < ApplicationService
- Error = Class.new(StandardError)
-
- attr_reader :user, :receivers, :atmeable
-
- def initialize(user, receivers, atmeable)
- @user = user
- @receivers = receivers
- @atmeable = atmeable
- end
-
- def call
- Rails.logger.info "[ATME] service args: [user]=>#{user}, [receivers]=>#{receivers}, [atmeable]=>#{atmeable}"
- return if atmeable.nil?
- Rails.logger.info "[ATME] atmeable class name is: #{ atmeable.class.name}"
- case atmeable.class.name
- when 'Issue'
- message_source = 'IssueAtme'
- when 'PullRequest'
- message_source = 'PullRequestAtme'
- when 'Journal'
- journal = Journal.find_by_id(atmeable.id)
- if journal.present?
- if journal&.issue&.pull_request.present?
- @atmeable = journal&.issue&.pull_request
- message_source = 'PullRequestAtme'
- else
- @atmeable = journal&.issue
- message_source = 'IssueAtme'
- end
- end
- else
- return
- end
- SendTemplateMessageJob.perform_later(message_source, receivers.pluck(:id), user.id, @atmeable.id) if Site.has_notice_menu?
- end
- end
|