Phantom DSL - чтение с последующей записью

Мне нужно обновить столбец, только если текущее значение удовлетворяет предварительному условию. Я попробовал ниже,

def acceptDelivery(implicit sc: SecurityContext, ar: AcceptRequest) : Future[DeliveryResponse] = {
for {
  d <- Database.DeliveryForVendorModel.findDelivery(ar) if d.isDefined && d.get.isPending
  _ <- Database.acceptDelivery(d.get, sc.ownerId, sc.ownerName)
} yield buildAcceptResponse(d)

}

Однако, если первое будущее не материализуется, оно создает исключение. Метод findDelivery возвращает Future[Option[T]]где Т газ - метод ожидания.

0 ответов

Другие вопросы по тегам