Class: Audit

Inherits:
Audited::Audit
  • Object
show all
Defined in:
app/models/audit.rb

Overview

typed: ignore frozen_string_literal: true

Class Method Summary collapse

Class Method Details

.default_sortObject



4
5
6
# File 'app/models/audit.rb', line 4

def self.default_sort
  descending
end

.deleted_reservationsObject



8
9
10
# File 'app/models/audit.rb', line 8

def self.deleted_reservations
  Audit.unscoped.where(auditable_type: 'Reservation', action: 'destroy')
end

.restore_reservation(reservation_id) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
# File 'app/models/audit.rb', line 12

def self.restore_reservation(reservation_id)
  deleted_data = Audit.where(auditable_type: 'Reservation', auditable_id: reservation_id)
  if deleted_data.present?
    deleted_data = deleted_data.last
    reservation = Reservation.new
    reservation.id = reservation_id
    reservation.assign_attributes deleted_data.audited_changes, without_protection: true
    reservation.created_at = reservation.updated_at = deleted_data.created_at
    reservation.save!(:sneaky)
    reservation.run_callbacks :create
  end
end