trabajo-afectivo/lib/notification_factory/slack.rb

84 lines
1.9 KiB
Ruby
Raw Permalink Normal View History

2022-01-01 13:38:12 +00:00
# Copyright (C) 2012-2022 Zammad Foundation, https://zammad-foundation.org/
2016-04-15 21:56:10 +00:00
class NotificationFactory::Slack
=begin
result = NotificationFactory::Slack.template(
template: 'ticket_update',
locale: 'en-us',
timezone: 'Europe/Berlin',
2016-04-15 21:56:10 +00:00
objects: {
recipient: User.find(2),
ticket: Ticket.find(1)
},
)
returns
{
subject: 'some subject',
body: 'some body',
}
=end
def self.template(data)
if data[:templateInline]
return NotificationFactory::Renderer.new(
objects: data[:objects],
locale: data[:locale],
timezone: data[:timezone],
template: data[:templateInline]
).render
2016-04-15 21:56:10 +00:00
end
template = NotificationFactory.template_read(
locale: data[:locale] || Locale.default,
2016-04-15 21:56:10 +00:00
template: data[:template],
format: 'md',
type: 'slack',
2016-04-15 21:56:10 +00:00
)
message_subject = NotificationFactory::Renderer.new(
objects: data[:objects],
locale: data[:locale],
timezone: data[:timezone],
template: template[:subject],
escape: false,
trusted: true
).render
message_body = NotificationFactory::Renderer.new(
objects: data[:objects],
locale: data[:locale],
timezone: data[:timezone],
template: template[:body],
escape: false,
trusted: true
).render
2016-04-15 21:56:10 +00:00
if !data[:raw]
application_template = NotificationFactory.application_template_read(
format: 'md',
type: 'slack',
2016-04-15 21:56:10 +00:00
)
data[:objects][:message] = message_body
data[:objects][:standalone] = data[:standalone]
message_body = NotificationFactory::Renderer.new(
objects: data[:objects],
locale: data[:locale],
timezone: data[:timezone],
template: application_template,
escape: false,
trusted: true
).render
2016-04-15 21:56:10 +00:00
end
{
subject: message_subject.strip!,
body: message_body.strip!,
2016-04-15 21:56:10 +00:00
}
end
end