Class: RivetCms::ContentController

Inherits:
ApplicationController show all
Defined in:
app/controllers/rivet_cms/content_controller.rb

Instance Method Summary collapse

Instance Method Details

#indexObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'app/controllers/rivet_cms/content_controller.rb', line 12

def index
  populate = query.populate_fields

  page = query.documents
  revisions = page.map(&:published_revision)
  preload = RevisionPreloader.new(revisions, populate_fields: populate)

  render json: {
    data: revisions.map { |revision|
      RevisionSerializer.new(revision, fields: query.field_keys, populate: populate, preload: preload).as_json
    },
    meta: { page: page.current_page, per_page: page.limit_value, total: page.total_count, total_pages: page.total_pages }
  }
end

#showObject



27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'app/controllers/rivet_cms/content_controller.rb', line 27

def show
  return head :forbidden if preview_requested? && !preview_scope?

  populate = query.populate_fields

  document = content_type.documents.find_by!(slug: params[:slug])
  preview = preview_requested?
  revision = preview ? (document.draft_revision || document.published_revision) : document.published_revision
  return head :not_found if revision.nil?

  preload = RevisionPreloader.new([ revision ], populate_fields: populate, preview: preview)
  render json: RevisionSerializer.new(revision, fields: query.field_keys, populate: populate, preview: preview, preload: preload).as_json
end