module Webhook class ArticleSerializer include FastJsonapi::ObjectSerializer set_type :article attributes :title, :description, :readable_publish_date, :cached_tag_list, :cached_tag_list_array, :slug, :path, :url, :comments_count, :positive_reactions_count, :body_markdown attribute :canonical_url, &:processed_canonical_url attribute :body_html, &:processed_html attribute :created_at do |a| a.created_at.utc.iso8601 end attribute :edited_at do |a| a.edited_at&.utc&.iso8601 end attribute :crossposted_at do |a| a.crossposted_at&.utc&.iso8601 end attribute :published_at do |a| a.published_at&.utc&.iso8601 end attribute :last_comment_at do |a| a.last_comment_at&.utc&.iso8601 end attribute :cover_image do |a| CloudCoverUrl.new(a.url).call end attribute :social_image do |article| Articles::SocialImage.new(article).url end attribute :user do |a| UserSerializer.new(a.user).serializable_hash end end end