Phantom DSL - 读取后写入

时间:2017-09-30 17:57:31

标签: 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]],其中T gas是isPending方法。

0 个答案:

没有答案