次のコードが map 関数の ask 'callback' で id 値を閉じるかどうかを知りたいです。
val id = if (model.id.isEmpty) UUID.randomUUID().toString else model.id
val result = couchbaseActor ? SetDoc(s"user:$id", model.toJson.compactPrint)
result map {
case true => sender ! Right(Success(id))
case false => sender ! Left(makeFailureFromErrorEnum(ErrorCode.DbSaveFailed, List("User", "Error occurred while saving to Couchbase")))
}
ありがとう、アーロン
最終的な解決策:
メッセージ ハンドラ:
case SaveUserReq(model) => saveDocument[User](sender, "User", model.id, model)
意味:
def saveDocument[T:JsonWriter](requester: ActorRef, prefix: String, id: String, model: T): Unit = {
couchbaseActor ? SetDoc(s"${prefix.toLowerCase}:$id", model.toJson.compactPrint) map {
case true => requester ! Right(Success(id))
case false => requester ! Left(makeFailureFromErrorEnum(ErrorCode.DbSaveFailed, List(prefix, errorCouchbaseSaveFailed)))
}
}
支援してくれたすべての人に感謝します。