docbrown/app/services/notifications.rb
rhymes 7dd2ae9fe0 Remove notifiable access from articles and comments notifications (#5415) [deploy]
* Add created_at to comment notification data

* Remove notifiable usage from notifications partials

* Fix typo
2020-01-09 10:19:45 -05:00

78 lines
2 KiB
Ruby

module Notifications
def self.user_data(user)
{
id: user.id,
class: { name: "User" },
name: user.name,
username: user.username,
path: user.path,
profile_image_90: user.profile_image_90,
comments_count: user.comments_count,
created_at: user.created_at
}
end
def self.comment_data(comment)
{
id: comment.id,
class: { name: "Comment" },
path: comment.path,
processed_html: comment.processed_html,
created_at: comment.created_at,
updated_at: comment.updated_at,
ancestry: comment.ancestry,
depth: comment.depth,
ancestors: ancestor_data(comment),
commentable: {
id: comment.commentable.id,
title: comment.commentable.title,
path: comment.commentable.path,
class: {
name: comment.commentable.class.name
}
}
}
end
def self.article_data(article)
{
id: article.id,
cached_tag_list_array: article.decorate.cached_tag_list_array,
class: { name: "Article" },
title: article.title,
path: article.path,
updated_at: article.updated_at,
published_at: article.published_at,
readable_publish_date: article.readable_publish_date,
reading_time: article.reading_time
}
end
def self.organization_data(organization)
{
id: organization.id,
class: { name: "Organization" },
name: organization.name,
slug: organization.slug,
path: organization.path,
profile_image_90: organization.profile_image_90
}
end
def self.ancestor_data(comment)
comment.ancestors.includes(:user).map do |ancestor|
{
id: ancestor.id,
title: ancestor.title,
path: ancestor.path,
ancestry: ancestor.ancestry,
depth: ancestor.depth,
user: {
username: ancestor.user.username,
name: ancestor.user.name
}
}
end
end
private_class_method :ancestor_data
end