module Koine::Repository::Repository::IdAwareEntity

Public Instance Methods

create(entity) click to toggle source
# File lib/koine/repository/repository/id_aware_entity.rb, line 13
def create(entity)
  values = hydrator.extract(entity)
  values.delete("id")
  values.delete(:id)
  entity.id = storage.insert(values)
end
find(id) click to toggle source
# File lib/koine/repository/repository/id_aware_entity.rb, line 5
def find(id)
  data = storage.find_one_by(id: id)
  return data unless data
  entity = new_entity
  hydrate(data, entity)
  entity
end
remove(entity) click to toggle source
# File lib/koine/repository/repository/id_aware_entity.rb, line 26
def remove(entity)
  storage.delete_where({ id: entity.id })
end
update(entity) click to toggle source
# File lib/koine/repository/repository/id_aware_entity.rb, line 20
def update(entity)
  values = hydrator.extract(entity)
  values.delete(:id)
  storage.update_where({ id: entity.id }, values)
end