docbrown/app/models/backup_data.rb
Andy Zhao 22e76bee84 Add functionality to remove and recover identity (#3377)
* Lint some quotation marks

* Add BackupData table

* Add identity and removal functionality

* Test additional functionality

* Remove dependent destroy for backup data

* Add auth_data_dump column

* Add challenge to reserved words

* Add more shoulda matchers
2019-07-03 12:01:16 -04:00

15 lines
502 B
Ruby

class BackupData < ApplicationRecord
belongs_to :instance, polymorphic: true
belongs_to :instance_user, class_name: "User"
validates :instance_id, :instance_type, :json_data, presence: true
def self.backup!(instance)
BackupData.create!(instance_type: instance.class.name, instance_id: instance.id, instance_user_id: instance.user_id, json_data: instance.attributes)
end
def recover!
instance = instance_type.constantize.create!(json_data.to_h)
destroy!
instance
end
end