Class: Decidim::PushNotificationMessage

Inherits:
Object
  • Object
show all
Includes:
SanitizeHelper, TranslatableAttributes
Defined in:
app/models/decidim/push_notification_message.rb

Overview

A messsage from a conversation that will be sent as a push notification

Defined Under Namespace

Classes: InvalidActionError

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from TranslatableAttributes

#default_locale?

Methods included from SanitizeHelper

#decidim_escape_translated, #decidim_html_escape, #decidim_sanitize, #decidim_sanitize_admin, #decidim_sanitize_editor, #decidim_sanitize_editor_admin, #decidim_sanitize_newsletter, #decidim_sanitize_translated, #decidim_url_escape, included

Constructor Details

#initialize(recipient:, conversation:, message:) ⇒ PushNotificationMessage

Returns a new instance of PushNotificationMessage.



11
12
13
14
15
# File 'app/models/decidim/push_notification_message.rb', line 11

def initialize(recipient:, conversation:, message:)
  @recipient = recipient
  @conversation = conversation
  @message = message
end

Instance Attribute Details

#conversationObject (readonly)

Returns the value of attribute conversation.



17
18
19
# File 'app/models/decidim/push_notification_message.rb', line 17

def conversation
  @conversation
end

#messageObject (readonly)

Returns the value of attribute message.



17
18
19
# File 'app/models/decidim/push_notification_message.rb', line 17

def message
  @message
end

#recipientObject (readonly) Also known as: user

Returns the value of attribute recipient.



17
18
19
# File 'app/models/decidim/push_notification_message.rb', line 17

def recipient
  @recipient
end

Instance Method Details

#bodyObject



21
22
23
# File 'app/models/decidim/push_notification_message.rb', line 21

def body
  decidim_html_escape(translated_attribute(message))
end

#iconObject



25
26
27
# File 'app/models/decidim/push_notification_message.rb', line 25

def icon
  organization.attached_uploader(:favicon).variant_url(:big, host: organization.host)
end

#urlObject



29
30
31
# File 'app/models/decidim/push_notification_message.rb', line 29

def url
  EngineRouter.new("decidim", {}).public_send(:conversation_path, host: organization.host, id: @conversation)
end