Scala を学習し、次の 2 つの関数をリファクタリングして、重複するロジックを削除しようとしています。コードの重複を避けるために、高次関数などを作成する必要がありますか? このような重複コードを使用して、さらにいくつかの同様のメソッドを用意しますが、異なるドメイン メソッドの呼び出しのみが異なります。
リファクタリングについて少し混乱しました。Scala バージョン 2.10 の使用
def authenticate = Action(parse.json) { request =>
val json = request.body
val input = Json.fromJson[User](json)
input.asOpt match {
case Some(m: User) => Ok(Domain.authenticate(m)).as("application/json")
case None => Ok("bad input")
}
}
def addUser = Action(parse.json) { request =>
val json = request.body
val input = Json.fromJson[User](json)
input.asOpt match {
case Some(m: User) => Ok(Domain.addUser(m)).as("application/json")
case None => Ok("bad input")
}
}