J'ai un contrôleur qui a beaucoup de logique métier, je voudrais déplacer le code à l'intérieur Action.async bloc de code. Ce code fonctionne, comment puis-je passer à une autre classe (service) le code qui est à l'intérieur de la Action.async ?:play framework 2.5 déplacer Action.async logique du contrôleur au service
def tweetsnew(query: String) = Action.async {
// Move From Here...
credentials.map {
case (consumerKey, requestToken) =>
ws.url("https://api.twitter.com/1.1/search/tweets.json")
.sign(OAuthCalculator(consumerKey, requestToken))
.withQueryString("q" -> query)
.withQueryString("max_id" -> "833342796736167936")
.get().map { twitterResponse =>
if (twitterResponse.status == 200) {
// Here There Are More Complex Logic
Ok("That is fine: "+twitterResponse.body)
} else {
throw new Exception(s"Could not retrieve tweets for $query query term")
}
}
}.getOrElse {
Future.failed(new Exception("You did not correctly configure the Twitter credentials"))
}
//....To Here. To Another Class
}
J'ai vérifié le docummentation, quelque chose lié à create a Future[Result] mais je ne suis pas en mesure pour que la fonction renvoie le même type que celui attendu par Action.async.
Merci @vdebegue c'est une bonne solution. Je voudrais proposer une autre solution. –