Я работаю над воспроизведением 2.3, я хочу обновить коллекцию, вставляя ее в другую коллекцию. Ниже приведен код ошибки.Проблема с несоответствием типа
def create(message : MessageThread) : Future[reactivemongo.core.commands.LastError] = {
collectionThread.insert(message.copy(
createDate = Some(new DateTime()),
updateDate = Some(new DateTime())
))
}
def updateMessage(messageId : JsValue) : Future[reactivemongo.core.commands.LastError] = {
collection.update(Json.obj("_id" -> (Json.obj("$oid" -> messageId))),
Json.obj("$set" -> Json.obj("isRead" -> false,
"lastRepliedDate" -> Some(new DateTime()))))
}
def createThread = Action.async(parse.json) { request =>
request.body.validate[MessageThread].flatMap { message =>
create(message).flatMap { created =>
updateMessage(request.body \ "messageId").flatMap{ updated =>
Created
}
}
}.getOrElse(Future.successful(BadRequest("invalid json")))
}
Я вызываю обновление и создаю из createThread. Я не могу отправить результат обратно
Ошибка заключается в следующем
type mismatch;
found : controllers.Messages.Status
required: scala.concurrent.Future[?]
Как я все еще рано с изучением scala
. Любая помощь будет оценена.
Это все еще не работает. Теперь он выбрасывает тип несоответствия; найдено: scala.concurrent.Future [controllers.Messages.Status] требуется: play.api.libs.json.JsResult [?] –
Вам нужно ответить JSON. Я предлагаю вам внимательно ознакомиться с игровым доком, сверху вниз, если у вас нет времени попытаться понять это здесь: https://www.playframework.com/documentation/2.3.x/ScalaJsonHttp – lambdista