Scala: проверка остальных параметров в контроллере - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь проверить языковой параметр, поступающий из RESTful API.Я хочу изменить en_US на en-US, но входящие параметры определены как val.

Я понимаю, что типы val не могут быть переназначены, но тогда как мы проверяем параметры.Вот мой код контроллера.

def create = Action.async(parse.json) { implicit rs =>
    var feedback = rs.body.validate[FeedbacksView]
    feedback.fold(
      errors => {
        play.api.Logger.debug(JsError.toJson(errors).toString())
        Future.successful(BadRequest(Json.obj("message" -> JsError.toJson(errors))))
      },
      feedbackView => {
        feedbackService.createUpdate(feedbackView,"quality_feedback_created").map { result =>
          val updatedFeedbackView = result.feedbacks.headOption.get.copy(id = Some(result.feedbacks.headOption.get.id.get))
          Ok(Json.toJson(updatedFeedbackView))
        }
      }
    )
  }

А вот мой класс дел FeedbacksView.

case class FeedbacksView(feedbacks: Seq[FeedbackView] = Seq.empty) {

}

А вот мой класс дел FeedbackView.

case class FeedbackView(id: Option[UUID] = None,
                        targetLanguage: String,
                        feedbackNotes: Option[String] = None
                       ) {
  targetLanguage = targetLanguage.replace("_", "-"); // Val reassignment error

Как мне сделатьизменяемый целевой язык?

1 Ответ

0 голосов
/ 26 июня 2018

После настройки поискового запроса Google я нашел ответ.В Scala вы должны явно описать параметр API RESTful как «var» в контроллере.Вот сообщение о переполнении стека, которое я нашел.

Неожиданная ошибка: переназначение в val

...