anyone-oslo/pages

View on GitHub
app/resources/page_resource.rb

Summary

Maintainability
A
0 mins
Test Coverage
A
94%
# frozen_string_literal: true

class PageResource
  include Alba::Resource

  attributes :id, :parent_page_id, :locale
  attributes(*PagesCore::Templates::TemplateConfiguration.all_blocks)
  attributes :published_at, :pinned

  attribute :param do
    object.to_param
  end

  attribute :image do
    image_resource(object.page_images.where(primary: true).try(:first))
  end

  attribute :images do
    object.page_images.map { |image| image_resource(image) }
  end

  attribute :pages do
    object.pages.map { |p| PageResource.new(p) }
  end

  private

  def image_resource(image)
    return nil unless image

    PageImageResource.new(image)
  end
end