class OpenSecret::DeleteMe

The delete use case delete's one or more of the safe's entities.

Attributes

entity_id[W]

Public Instance Methods

execute() click to toggle source

Deletion that currently expects an open chapter and verse and always wants to delete only one line (key/value pair).

# File lib/usecase/edit/delete.rb, line 18
def execute

  return unless ops_key_exists?
  master_db = OpenKey::KeyApi.read_master_db()
  return if unopened_envelope?( master_db )

  chapter_id = ENVELOPE_KEY_PREFIX + master_db[ ENV_PATH ]
  chapter_exists = OpenKey::KeyApi.db_envelope_exists?( master_db[ chapter_id ] )
  chapter_data = OpenKey::KeyDb.from_json( OpenKey::KeyApi.content_unlock( master_db[ chapter_id ] ) ) if chapter_exists
  chapter_data = OpenKey::KeyDb.new() unless chapter_exists

  content_hdr = create_header()
  master_db[ chapter_id ] = {} unless chapter_exists
  verse_id = master_db[ KEY_PATH ]

  chapter_data.delete_entry( verse_id, @entity_id )
  chapter_data.delete_entry( verse_id, "#{FILE_KEY_PREFIX}#{@entity_id}" )

  OpenKey::KeyApi.content_lock( master_db[ chapter_id ], chapter_data.to_json, content_hdr )
  OpenKey::KeyApi.write_master_db( content_hdr, master_db )
  Show.new.flow_of_events

end