diff --git a/.g8/addressPage/app/controllers/$package$/$className$Controller.scala b/.g8/addressPage/app/controllers/$package$/$className$Controller.scala index 25f7a628e..b561c070f 100644 --- a/.g8/addressPage/app/controllers/$package$/$className$Controller.scala +++ b/.g8/addressPage/app/controllers/$package$/$className$Controller.scala @@ -21,7 +21,7 @@ import scala.concurrent.{ExecutionContext, Future} class $className;format="cap"$Controller @Inject()( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, navigatorProvider: $navRoute$NavigatorProvider, actions: Actions, getMandatoryPage: SpecificDataRequiredActionProvider, @@ -72,8 +72,8 @@ class $className;format="cap"$Controller @Inject()( .fold( formWithErrors => Future.successful(BadRequest(view(formWithErrors, lrn, mode, name, isPostalCodeRequired))), value => { - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) - $className$Page.writeToUserAnswers(value).updateTask[$navRoute$Domain]().writeToSession().navigate() + val navigator: UserAnswersNavigator = navigatorProvider(mode) + $className$Page.writeToUserAnswers(value).updateTask[$navRoute$Domain]().writeToSession(sessionRepository).navigateWith(navigator) } ) } diff --git a/.g8/datePage/app/controllers/$package$/$className$Controller.scala b/.g8/datePage/app/controllers/$package$/$className$Controller.scala index b178e3c60..d97ca1823 100644 --- a/.g8/datePage/app/controllers/$package$/$className$Controller.scala +++ b/.g8/datePage/app/controllers/$package$/$className$Controller.scala @@ -18,7 +18,7 @@ import scala.concurrent.{ExecutionContext, Future} class $className;format="cap"$Controller @Inject()( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, navigatorProvider: $navRoute$NavigatorProvider, formProvider: DateFormProvider, actions: Actions, @@ -49,8 +49,8 @@ class $className;format="cap"$Controller @Inject()( .fold( formWithErrors => Future.successful(BadRequest(view(formWithErrors, lrn, mode))), value => { - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) - $className$Page.writeToUserAnswers(value).updateTask[$navRoute$Domain]().writeToSession().navigate() + val navigator: UserAnswersNavigator = navigatorProvider(mode) + $className$Page.writeToUserAnswers(value).updateTask[$navRoute$Domain]().writeToSession(sessionRepository).navigateWith(navigator) } ) } diff --git a/.g8/inputSelectPage/app/controllers/$package$/$className$Controller.scala b/.g8/inputSelectPage/app/controllers/$package$/$className$Controller.scala index 37f49cff8..15c5e31fa 100644 --- a/.g8/inputSelectPage/app/controllers/$package$/$className$Controller.scala +++ b/.g8/inputSelectPage/app/controllers/$package$/$className$Controller.scala @@ -18,7 +18,7 @@ import scala.concurrent.{ExecutionContext, Future} class $className$Controller @Inject()( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, navigatorProvider: $navRoute$NavigatorProvider, actions: Actions, formProvider: SelectableFormProvider, @@ -51,8 +51,8 @@ class $className$Controller @Inject()( form.bindFromRequest().fold( formWithErrors => Future.successful(BadRequest(view(formWithErrors, lrn, $referenceClass;format="decap"$List.values, mode))), value => { - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) - $className$Page.writeToUserAnswers(value).updateTask().writeToSession().navigate() + val navigator: UserAnswersNavigator = navigatorProvider(mode) + $className$Page.writeToUserAnswers(value).updateTask().writeToSession(sessionRepository).navigateWith(navigator) } ) } diff --git a/.g8/intPage/app/controllers/$package$/$className$Controller.scala b/.g8/intPage/app/controllers/$package$/$className$Controller.scala index 2c4d5599e..185e2ecfa 100644 --- a/.g8/intPage/app/controllers/$package$/$className$Controller.scala +++ b/.g8/intPage/app/controllers/$package$/$className$Controller.scala @@ -17,7 +17,7 @@ import scala.concurrent.{ExecutionContext, Future} class $className;format="cap"$Controller @Inject()( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, navigatorProvider: $navRoute$NavigatorProvider, formProvider: $formProvider$, actions: Actions, @@ -44,8 +44,8 @@ class $className;format="cap"$Controller @Inject()( .fold( formWithErrors => Future.successful(BadRequest(view(formWithErrors, lrn, mode))), value => { - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) - $className$Page.writeToUserAnswers(value).updateTask[$navRoute$Domain]().writeToSession().navigate() + val navigator: UserAnswersNavigator = navigatorProvider(mode) + $className$Page.writeToUserAnswers(value).updateTask[$navRoute$Domain]().writeToSession(sessionRepository).navigateWith(navigator) } ) } diff --git a/.g8/radioButtonPage/app/controllers/$package$/$className$Controller.scala b/.g8/radioButtonPage/app/controllers/$package$/$className$Controller.scala index 8d645c058..24dc9f22a 100644 --- a/.g8/radioButtonPage/app/controllers/$package$/$className$Controller.scala +++ b/.g8/radioButtonPage/app/controllers/$package$/$className$Controller.scala @@ -18,7 +18,7 @@ import scala.concurrent.{ExecutionContext, Future} class $className$Controller @Inject()( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, navigatorProvider: $navRoute$NavigatorProvider, actions: Actions, formProvider: EnumerableFormProvider, @@ -45,8 +45,8 @@ class $className$Controller @Inject()( form.bindFromRequest().fold( formWithErrors => Future.successful(BadRequest(view(formWithErrors, lrn, $className$.values, mode))), value => { - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) - $className$Page.writeToUserAnswers(value).updateTask[$navRoute$Domain]().writeToSession().navigate() + val navigator: UserAnswersNavigator = navigatorProvider(mode) + $className$Page.writeToUserAnswers(value).updateTask[$navRoute$Domain]().writeToSession(sessionRepository).navigateWith(navigator) } ) } diff --git a/.g8/stringPage/app/controllers/$package$/$className$Controller.scala b/.g8/stringPage/app/controllers/$package$/$className$Controller.scala index d25326eb5..720e21efc 100644 --- a/.g8/stringPage/app/controllers/$package$/$className$Controller.scala +++ b/.g8/stringPage/app/controllers/$package$/$className$Controller.scala @@ -17,7 +17,7 @@ import scala.concurrent.{ExecutionContext, Future} class $className;format="cap"$Controller @Inject()( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, navigatorProvider: $navRoute$NavigatorProvider, formProvider: $formProvider$, actions: Actions, @@ -44,8 +44,8 @@ class $className;format="cap"$Controller @Inject()( .fold( formWithErrors => Future.successful(BadRequest(view(formWithErrors, lrn, mode))), value => { - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) - $className$Page.writeToUserAnswers(value).updateTask[$navRoute$Domain]().writeToSession().navigate() + val navigator: UserAnswersNavigator = navigatorProvider(mode) + $className$Page.writeToUserAnswers(value).updateTask[$navRoute$Domain]().writeToSession(sessionRepository).navigateWith(navigator) } ) } diff --git a/.g8/yesNoPage/app/controllers/$package$/$className$Controller.scala b/.g8/yesNoPage/app/controllers/$package$/$className$Controller.scala index d27c60cfe..369b7fd50 100644 --- a/.g8/yesNoPage/app/controllers/$package$/$className$Controller.scala +++ b/.g8/yesNoPage/app/controllers/$package$/$className$Controller.scala @@ -17,7 +17,7 @@ import scala.concurrent.{ExecutionContext, Future} class $className;format="cap"$Controller @Inject()( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, navigatorProvider: $navRoute$NavigatorProvider, actions: Actions, formProvider: YesNoFormProvider, @@ -44,8 +44,8 @@ class $className;format="cap"$Controller @Inject()( form.bindFromRequest().fold( formWithErrors => Future.successful(BadRequest(view(formWithErrors, lrn, mode))), value => { - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) - $className$Page.writeToUserAnswers(value).updateTask[$navRoute$Domain]().writeToSession().navigate() + val navigator: UserAnswersNavigator = navigatorProvider(mode) + $className$Page.writeToUserAnswers(value).updateTask[$navRoute$Domain]().writeToSession(sessionRepository).navigateWith(navigator) } ) } diff --git a/app/controllers/package.scala b/app/controllers/package.scala index 2937c52b0..c002cb322 100644 --- a/app/controllers/package.scala +++ b/app/controllers/package.scala @@ -103,8 +103,9 @@ package object controllers { } def writeToSession( - userAnswers: UserAnswers - )(implicit sessionRepository: SessionRepository, executionContext: ExecutionContext, hc: HeaderCarrier): Future[Write[A]] = + userAnswers: UserAnswers, + sessionRepository: SessionRepository + )(implicit executionContext: ExecutionContext, hc: HeaderCarrier): Future[Write[A]] = userAnswersWriter.run(userAnswers) match { case Left(opsError) => Future.failed(new Exception(s"${opsError.toString}")) case Right(value) => @@ -116,17 +117,16 @@ package object controllers { } } - def writeToSession()(implicit + def writeToSession(sessionRepository: SessionRepository)(implicit dataRequest: MandatoryDataRequest[_], - sessionRepository: SessionRepository, ex: ExecutionContext, hc: HeaderCarrier - ): Future[Write[A]] = writeToSession(dataRequest.userAnswers) + ): Future[Write[A]] = writeToSession(dataRequest.userAnswers, sessionRepository) } implicit class NavigatorOps[A](write: Future[Write[A]]) { - def navigate()(implicit navigator: UserAnswersNavigator, executionContext: ExecutionContext): Future[Result] = + def navigateWith(navigator: UserAnswersNavigator)(implicit executionContext: ExecutionContext): Future[Result] = navigate { case (page, userAnswers) => navigator.nextPage(userAnswers, Some(page)) } diff --git a/app/controllers/preTaskList/AdditionalDeclarationTypeController.scala b/app/controllers/preTaskList/AdditionalDeclarationTypeController.scala index a2052a32d..04d906ab1 100644 --- a/app/controllers/preTaskList/AdditionalDeclarationTypeController.scala +++ b/app/controllers/preTaskList/AdditionalDeclarationTypeController.scala @@ -37,7 +37,7 @@ import scala.concurrent.{ExecutionContext, Future} class AdditionalDeclarationTypeController @Inject() ( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, val frontendAppConfig: FrontendAppConfig, navigatorProvider: PreTaskListNavigatorProvider, actions: Actions, @@ -87,8 +87,8 @@ class AdditionalDeclarationTypeController @Inject() ( .fold( formWithErrors => Future.successful(BadRequest(view(formWithErrors, lrn, additionalDeclarationTypes, mode))), value => { - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) - AdditionalDeclarationTypePage.writeToUserAnswers(value).writeToSession().navigate() + val navigator: UserAnswersNavigator = navigatorProvider(mode) + AdditionalDeclarationTypePage.writeToUserAnswers(value).writeToSession(sessionRepository).navigateWith(navigator) } ) } diff --git a/app/controllers/preTaskList/CheckYourAnswersController.scala b/app/controllers/preTaskList/CheckYourAnswersController.scala index a28987f28..d4560e147 100644 --- a/app/controllers/preTaskList/CheckYourAnswersController.scala +++ b/app/controllers/preTaskList/CheckYourAnswersController.scala @@ -35,7 +35,7 @@ import scala.concurrent.ExecutionContext class CheckYourAnswersController @Inject() ( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, val frontendAppConfig: FrontendAppConfig, actions: Actions, checkIfPreTaskListAlreadyCompleted: PreTaskListCompletedAction, @@ -68,7 +68,7 @@ class CheckYourAnswersController @Inject() ( implicit request => PreTaskListSection .updateTask(frontendAppConfig.isPreLodgeEnabled) - .writeToSession() + .writeToSession(sessionRepository) .navigateTo(controllers.routes.TaskListController.onPageLoad(lrn)) } diff --git a/app/controllers/preTaskList/DeclarationTypeController.scala b/app/controllers/preTaskList/DeclarationTypeController.scala index 05e72d7ad..fa7191faf 100644 --- a/app/controllers/preTaskList/DeclarationTypeController.scala +++ b/app/controllers/preTaskList/DeclarationTypeController.scala @@ -36,7 +36,7 @@ import scala.concurrent.{ExecutionContext, Future} class DeclarationTypeController @Inject() ( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, navigatorProvider: PreTaskListNavigatorProvider, actions: Actions, checkIfPreTaskListAlreadyCompleted: PreTaskListCompletedAction, @@ -84,8 +84,8 @@ class DeclarationTypeController @Inject() ( .fold( formWithErrors => Future.successful(BadRequest(view(formWithErrors, declarationTypes, lrn, mode))), value => { - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) - DeclarationTypePage.writeToUserAnswers(value).writeToSession().navigate() + val navigator: UserAnswersNavigator = navigatorProvider(mode) + DeclarationTypePage.writeToUserAnswers(value).writeToSession(sessionRepository).navigateWith(navigator) } ) } diff --git a/app/controllers/preTaskList/OfficeOfDepartureController.scala b/app/controllers/preTaskList/OfficeOfDepartureController.scala index 804116345..ec40908e1 100644 --- a/app/controllers/preTaskList/OfficeOfDepartureController.scala +++ b/app/controllers/preTaskList/OfficeOfDepartureController.scala @@ -36,7 +36,7 @@ import scala.concurrent.{ExecutionContext, Future} class OfficeOfDepartureController @Inject() ( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, navigatorProvider: PreTaskListNavigatorProvider, actions: Actions, checkIfPreTaskListAlreadyCompleted: PreTaskListCompletedAction, @@ -79,7 +79,7 @@ class OfficeOfDepartureController @Inject() ( .fold( formWithErrors => Future.successful(BadRequest(view(formWithErrors, lrn, customsOfficeList.values, mode))), value => { - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) + val navigator: UserAnswersNavigator = navigatorProvider(mode) for { isInCL112 <- countriesService.isInCL112(value) isInCL147 <- countriesService.isInCL147(value) @@ -89,8 +89,8 @@ class OfficeOfDepartureController @Inject() ( .appendValue(OfficeOfDepartureInCL112Page, isInCL112) .appendValue(OfficeOfDepartureInCL147Page, isInCL147) .appendValue(OfficeOfDepartureInCL010Page, isInCL010) - .writeToSession() - .navigate() + .writeToSession(sessionRepository) + .navigateWith(navigator) } yield result } ) diff --git a/app/controllers/preTaskList/ProcedureTypeController.scala b/app/controllers/preTaskList/ProcedureTypeController.scala index a739b423a..0c638d581 100644 --- a/app/controllers/preTaskList/ProcedureTypeController.scala +++ b/app/controllers/preTaskList/ProcedureTypeController.scala @@ -33,7 +33,7 @@ import scala.concurrent.{ExecutionContext, Future} class ProcedureTypeController @Inject() ( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, navigatorProvider: PreTaskListNavigatorProvider, actions: Actions, checkIfPreTaskListAlreadyCompleted: PreTaskListCompletedAction, @@ -68,8 +68,8 @@ class ProcedureTypeController @Inject() ( .fold( formWithErrors => Future.successful(BadRequest(view(formWithErrors, ProcedureType.values, lrn, mode))), value => { - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) - ProcedureTypePage.writeToUserAnswers(value).writeToSession().navigate() + val navigator: UserAnswersNavigator = navigatorProvider(mode) + ProcedureTypePage.writeToUserAnswers(value).writeToSession(sessionRepository).navigateWith(navigator) } ) } diff --git a/app/controllers/preTaskList/SecurityDetailsTypeController.scala b/app/controllers/preTaskList/SecurityDetailsTypeController.scala index a00d1f515..0a9414cee 100644 --- a/app/controllers/preTaskList/SecurityDetailsTypeController.scala +++ b/app/controllers/preTaskList/SecurityDetailsTypeController.scala @@ -36,7 +36,7 @@ import scala.concurrent.{ExecutionContext, Future} class SecurityDetailsTypeController @Inject() ( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, navigatorProvider: PreTaskListNavigatorProvider, actions: Actions, checkIfPreTaskListAlreadyCompleted: PreTaskListCompletedAction, @@ -79,8 +79,8 @@ class SecurityDetailsTypeController @Inject() ( .fold( formWithErrors => Future.successful(BadRequest(view(formWithErrors, securityTypes, lrn, mode))), value => { - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) - SecurityDetailsTypePage.writeToUserAnswers(value).writeToSession().navigate() + val navigator: UserAnswersNavigator = navigatorProvider(mode) + SecurityDetailsTypePage.writeToUserAnswers(value).writeToSession(sessionRepository).navigateWith(navigator) } ) } diff --git a/app/controllers/preTaskList/StandardDeclarationController.scala b/app/controllers/preTaskList/StandardDeclarationController.scala index 1c2424919..6834ab416 100644 --- a/app/controllers/preTaskList/StandardDeclarationController.scala +++ b/app/controllers/preTaskList/StandardDeclarationController.scala @@ -33,7 +33,7 @@ import scala.concurrent.ExecutionContext class StandardDeclarationController @Inject() ( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, val controllerComponents: MessagesControllerComponents, checkIfPreTaskListAlreadyCompleted: PreTaskListCompletedAction, val config: FrontendAppConfig, @@ -55,9 +55,9 @@ class StandardDeclarationController @Inject() ( .requireData(lrn) .async { implicit request => - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) + val navigator: UserAnswersNavigator = navigatorProvider(mode) - StandardDeclarationPage.writeToUserAnswers("A").writeToSession().navigate() + StandardDeclarationPage.writeToUserAnswers("A").writeToSession(sessionRepository).navigateWith(navigator) } } diff --git a/app/controllers/preTaskList/TIRCarnetReferenceController.scala b/app/controllers/preTaskList/TIRCarnetReferenceController.scala index 09480280b..f49f88c3f 100644 --- a/app/controllers/preTaskList/TIRCarnetReferenceController.scala +++ b/app/controllers/preTaskList/TIRCarnetReferenceController.scala @@ -34,7 +34,7 @@ import scala.concurrent.{ExecutionContext, Future} class TIRCarnetReferenceController @Inject() ( override val messagesApi: MessagesApi, - implicit val sessionRepository: SessionRepository, + sessionRepository: SessionRepository, navigatorProvider: PreTaskListNavigatorProvider, actions: Actions, checkIfPreTaskListAlreadyCompleted: PreTaskListCompletedAction, @@ -72,8 +72,8 @@ class TIRCarnetReferenceController @Inject() ( .fold( formWithErrors => Future.successful(BadRequest(view(formWithErrors, lrn, mode))), value => { - implicit val navigator: UserAnswersNavigator = navigatorProvider(mode) - TIRCarnetReferencePage.writeToUserAnswers(value).writeToSession().navigate() + val navigator: UserAnswersNavigator = navigatorProvider(mode) + TIRCarnetReferencePage.writeToUserAnswers(value).writeToSession(sessionRepository).navigateWith(navigator) } ) }