Я создал SIRD
маршрутизатор
class UserRouter @Inject()(controller:UserController) extends SimpleRouter {
override def routes:Routes = {
case GET (p"/signup/:token") =>{ //corresponds to email verification from user after sign up. This was the URL which the server had sent
println("add user request with token"); //TODOM - print token
controller.verifyUser(); //
}
}
}
Код routes.conf
для использования маршрутизатора SIRD
:
-> /ws/users WSRouters.UserRouter #use UserRouter for /ws/users
Действие
def verifyUser(token:String) = Action.async{
implicit request => {
println("verifyUser action called with token: "+token) //TODOM - add proper handling and response
Future(Ok("user verified"))
}
}
как извлечь динамическую часть из URL (token
) в case GET (p"/signup/:token")
и передать ее в verifyUser
? В норме routes.conf
. Я могу просто сделать что-то вроде GET /home/:id controllers.HomeController.index2(id)
, но когда я делаю то же самое в SIRD
роутере, я получаю сообщение об ошибке, что token
не определено
case GET (p"/signup/:token") =>{ //corresponds to email verification from user after sign up. This was the URL which the server had sent
println("add user request with token"); //TODOM - print token
controller.verifyUser(token); //COMPILE ERROR - token is undefined.
}