クライアントからのリクエストをModelOne
に抽出するコントローラーメソッドがあります。このモデルを変更してより大きなモデルにする必要があります。ModelTwo
と呼びます。別のサービスに送信できます。私のアプリフローで複雑なケースクラスを効率的に構築する方法はありますか?
これはModelOne
ケースクラスです:
case class ModelOne(list: List[String], expectedListSize: Int)
そして、これはModelTwo
ケースクラスである:私はからの要求を取得するたび
case class ModelTwo(modelThree: Option[ModelThree])
case class ModelThree(status: Status(its enum),
list: List[String],
amount: Option[Int],
message: Option[String])
だから、私は現在、それを構築するためにやっていることですモデムからlist
プロパティを取得してModelTwoを構築する必要があるため、構築するメソッドを持つサービスを呼び出します。
def buildModelTwoResponse(modelOne: ModelOne): ModelTwo = {
ModelTwo(Some(ModelThree(Status.Done, modelOne.list, None, None)))
}
ので、私は行くコントローラで:
val modelOne = request.body.extractOpt[ModelOne]
val modelTwo = myService.buildModelTwoResponse(modelOne)
これを行うにはよりエレガントな方法はありますか?