Class: PaperTrailViewer::DataSource::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/paper_trail_viewer/data_source/base.rb

Overview

Abstract superclass for version data sources.

Direct Known Subclasses

ActiveRecord, Bigquery

Instance Method Summary collapse

Instance Method Details

#call(params, main_app) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/paper_trail_viewer/data_source/base.rb', line 8

def call(params, main_app)
  query = PaperTrailViewer::Query.new(params)
  relation = perform_query(query)
  versions_as_json = relation.map { |v| version_as_json(v, main_app) }

  {
    allowRollback: PaperTrailViewer.allow_rollback,
    hasNextPage:   versions_as_json.any? && !relation.last_page?,
    query:         query.to_h,
    versions:      versions_as_json,
  }
end