Skip to content

Commit

Permalink
Merge pull request #14 from hmrc/submit-organisation
Browse files Browse the repository at this point in the history
Submit organisation
  • Loading branch information
TheNickWilson committed Aug 26, 2024
2 parents 4234898 + 25492ac commit ddea185
Show file tree
Hide file tree
Showing 15 changed files with 618 additions and 109 deletions.
16 changes: 11 additions & 5 deletions app/controllers/CanPhonePrimaryContactController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,19 @@

package controllers

import connector.SubscriptionConnector
import controllers.actions._
import forms.CanPhonePrimaryContactFormProvider

import javax.inject.Inject
import models.Mode
import navigation.Navigator
import org.apache.pekko.Done
import pages.{CanPhonePrimaryContactPage, PrimaryContactNamePage}
import play.api.i18n.{I18nSupport, MessagesApi}
import play.api.mvc.{Action, AnyContent, MessagesControllerComponents}
import repositories.SessionRepository
import services.UserAnswersService
import uk.gov.hmrc.play.bootstrap.frontend.controller.FrontendBaseController
import views.html.CanPhonePrimaryContactView

Expand All @@ -40,9 +43,11 @@ class CanPhonePrimaryContactController @Inject()(
requireData: DataRequiredAction,
formProvider: CanPhonePrimaryContactFormProvider,
val controllerComponents: MessagesControllerComponents,
view: CanPhonePrimaryContactView
view: CanPhonePrimaryContactView,
val connector: SubscriptionConnector,
val userAnswersService: UserAnswersService
)(implicit ec: ExecutionContext)
extends FrontendBaseController with I18nSupport with AnswerExtractor {
extends FrontendBaseController with I18nSupport with AnswerExtractor with SubscriptionUpdater {

def onPageLoad(mode: Mode): Action[AnyContent] = (identify andThen getData andThen requireData) {
implicit request =>
Expand All @@ -69,10 +74,11 @@ class CanPhonePrimaryContactController @Inject()(
formWithErrors =>
Future.successful(BadRequest(view(formWithErrors, mode, contactName))),

value =>
canPhone =>
for {
updatedAnswers <- Future.fromTry(request.userAnswers.set(CanPhonePrimaryContactPage, value))
_ <- sessionRepository.set(updatedAnswers)
updatedAnswers <- Future.fromTry(request.userAnswers.set(CanPhonePrimaryContactPage, canPhone))
_ <- if (canPhone) Future.successful(Done) else updateSubscription(updatedAnswers)
_ <- sessionRepository.set(updatedAnswers)
} yield Redirect(navigator.nextPage(CanPhonePrimaryContactPage, mode, updatedAnswers))
)
}
Expand Down
34 changes: 20 additions & 14 deletions app/controllers/CanPhoneSecondaryContactController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,32 +16,37 @@

package controllers

import connector.SubscriptionConnector
import controllers.actions._
import forms.CanPhoneSecondaryContactFormProvider
import models.Mode
import navigation.Navigator
import org.apache.pekko.Done
import pages.{CanPhoneSecondaryContactPage, SecondaryContactNamePage}
import play.api.i18n.{I18nSupport, MessagesApi}
import play.api.mvc.{Action, AnyContent, MessagesControllerComponents}
import repositories.SessionRepository
import services.UserAnswersService
import uk.gov.hmrc.play.bootstrap.frontend.controller.FrontendBaseController
import views.html.CanPhoneSecondaryContactView

import javax.inject.Inject
import scala.concurrent.{ExecutionContext, Future}

class CanPhoneSecondaryContactController @Inject()(
override val messagesApi: MessagesApi,
sessionRepository: SessionRepository,
navigator: Navigator,
identify: IdentifierAction,
getData: DataRetrievalAction,
requireData: DataRequiredAction,
formProvider: CanPhoneSecondaryContactFormProvider,
val controllerComponents: MessagesControllerComponents,
view: CanPhoneSecondaryContactView
)(implicit ec: ExecutionContext)
extends FrontendBaseController with I18nSupport with AnswerExtractor {
override val messagesApi: MessagesApi,
sessionRepository: SessionRepository,
navigator: Navigator,
identify: IdentifierAction,
getData: DataRetrievalAction,
requireData: DataRequiredAction,
formProvider: CanPhoneSecondaryContactFormProvider,
val controllerComponents: MessagesControllerComponents,
view: CanPhoneSecondaryContactView,
val connector: SubscriptionConnector,
val userAnswersService: UserAnswersService
)(implicit ec: ExecutionContext)
extends FrontendBaseController with I18nSupport with AnswerExtractor with SubscriptionUpdater {

def onPageLoad(mode: Mode): Action[AnyContent] = (identify andThen getData andThen requireData) {
implicit request =>
Expand All @@ -68,10 +73,11 @@ class CanPhoneSecondaryContactController @Inject()(
formWithErrors =>
Future.successful(BadRequest(view(formWithErrors, mode, contactName))),

value =>
canPhone =>
for {
updatedAnswers <- Future.fromTry(request.userAnswers.set(CanPhoneSecondaryContactPage, value))
_ <- sessionRepository.set(updatedAnswers)
updatedAnswers <- Future.fromTry(request.userAnswers.set(CanPhoneSecondaryContactPage, canPhone))
_ <- if (canPhone) Future.successful(Done) else updateSubscription(updatedAnswers)
_ <- sessionRepository.set(updatedAnswers)
} yield Redirect(navigator.nextPage(CanPhoneSecondaryContactPage, mode, updatedAnswers))
)
}
Expand Down
34 changes: 20 additions & 14 deletions app/controllers/HasSecondaryContactController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,33 +16,38 @@

package controllers

import connector.SubscriptionConnector
import controllers.actions._
import forms.HasSecondaryContactFormProvider

import javax.inject.Inject
import models.Mode
import navigation.Navigator
import org.apache.pekko.Done
import pages.{HasSecondaryContactPage, PrimaryContactNamePage}
import play.api.i18n.{I18nSupport, MessagesApi}
import play.api.mvc.{Action, AnyContent, MessagesControllerComponents}
import repositories.SessionRepository
import services.UserAnswersService
import uk.gov.hmrc.play.bootstrap.frontend.controller.FrontendBaseController
import views.html.HasSecondaryContactView

import scala.concurrent.{ExecutionContext, Future}

class HasSecondaryContactController @Inject()(
override val messagesApi: MessagesApi,
sessionRepository: SessionRepository,
navigator: Navigator,
identify: IdentifierAction,
getData: DataRetrievalAction,
requireData: DataRequiredAction,
formProvider: HasSecondaryContactFormProvider,
val controllerComponents: MessagesControllerComponents,
view: HasSecondaryContactView
)(implicit ec: ExecutionContext)
extends FrontendBaseController with I18nSupport with AnswerExtractor {
override val messagesApi: MessagesApi,
sessionRepository: SessionRepository,
navigator: Navigator,
identify: IdentifierAction,
getData: DataRetrievalAction,
requireData: DataRequiredAction,
formProvider: HasSecondaryContactFormProvider,
val controllerComponents: MessagesControllerComponents,
view: HasSecondaryContactView,
val connector: SubscriptionConnector,
val userAnswersService: UserAnswersService
)(implicit ec: ExecutionContext)
extends FrontendBaseController with I18nSupport with AnswerExtractor with SubscriptionUpdater {

def onPageLoad(mode: Mode): Action[AnyContent] = (identify andThen getData andThen requireData) {
implicit request =>
Expand All @@ -69,10 +74,11 @@ class HasSecondaryContactController @Inject()(
formWithErrors =>
Future.successful(BadRequest(view(formWithErrors, mode, contactName))),

value =>
hasSecondContact =>
for {
updatedAnswers <- Future.fromTry(request.userAnswers.set(HasSecondaryContactPage, value))
_ <- sessionRepository.set(updatedAnswers)
updatedAnswers <- Future.fromTry(request.userAnswers.set(HasSecondaryContactPage, hasSecondContact))
_ <- if (hasSecondContact) Future.successful(Done) else updateSubscription(updatedAnswers)
_ <- sessionRepository.set(updatedAnswers)
} yield Redirect(navigator.nextPage(HasSecondaryContactPage, mode, updatedAnswers))
)
}
Expand Down
29 changes: 17 additions & 12 deletions app/controllers/PrimaryContactPhoneNumberController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

package controllers

import connector.SubscriptionConnector
import controllers.actions._
import forms.PrimaryContactPhoneNumberFormProvider

Expand All @@ -26,23 +27,26 @@ import pages.{PrimaryContactNamePage, PrimaryContactPhoneNumberPage}
import play.api.i18n.{I18nSupport, MessagesApi}
import play.api.mvc.{Action, AnyContent, MessagesControllerComponents}
import repositories.SessionRepository
import services.UserAnswersService
import uk.gov.hmrc.play.bootstrap.frontend.controller.FrontendBaseController
import views.html.PrimaryContactPhoneNumberView

import scala.concurrent.{ExecutionContext, Future}

class PrimaryContactPhoneNumberController @Inject()(
override val messagesApi: MessagesApi,
sessionRepository: SessionRepository,
navigator: Navigator,
identify: IdentifierAction,
getData: DataRetrievalAction,
requireData: DataRequiredAction,
formProvider: PrimaryContactPhoneNumberFormProvider,
val controllerComponents: MessagesControllerComponents,
view: PrimaryContactPhoneNumberView
)(implicit ec: ExecutionContext)
extends FrontendBaseController with I18nSupport with AnswerExtractor {
override val messagesApi: MessagesApi,
sessionRepository: SessionRepository,
navigator: Navigator,
identify: IdentifierAction,
getData: DataRetrievalAction,
requireData: DataRequiredAction,
formProvider: PrimaryContactPhoneNumberFormProvider,
val controllerComponents: MessagesControllerComponents,
view: PrimaryContactPhoneNumberView,
val connector: SubscriptionConnector,
val userAnswersService: UserAnswersService
)(implicit ec: ExecutionContext)
extends FrontendBaseController with I18nSupport with AnswerExtractor with SubscriptionUpdater {

def onPageLoad(mode: Mode): Action[AnyContent] = (identify andThen getData andThen requireData) {
implicit request =>
Expand Down Expand Up @@ -72,7 +76,8 @@ class PrimaryContactPhoneNumberController @Inject()(
value =>
for {
updatedAnswers <- Future.fromTry(request.userAnswers.set(PrimaryContactPhoneNumberPage, value))
_ <- sessionRepository.set(updatedAnswers)
_ <- updateSubscription(updatedAnswers)
_ <- sessionRepository.set(updatedAnswers)
} yield Redirect(navigator.nextPage(PrimaryContactPhoneNumberPage, mode, updatedAnswers))
)
}
Expand Down
29 changes: 17 additions & 12 deletions app/controllers/SecondaryContactPhoneNumberController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@

package controllers

import connector.SubscriptionConnector
import controllers.actions._
import forms.SecondaryContactPhoneNumberFormProvider

Expand All @@ -26,23 +27,26 @@ import pages.{SecondaryContactNamePage, SecondaryContactPhoneNumberPage}
import play.api.i18n.{I18nSupport, MessagesApi}
import play.api.mvc.{Action, AnyContent, MessagesControllerComponents}
import repositories.SessionRepository
import services.UserAnswersService
import uk.gov.hmrc.play.bootstrap.frontend.controller.FrontendBaseController
import views.html.SecondaryContactPhoneNumberView

import scala.concurrent.{ExecutionContext, Future}

class SecondaryContactPhoneNumberController @Inject()(
override val messagesApi: MessagesApi,
sessionRepository: SessionRepository,
navigator: Navigator,
identify: IdentifierAction,
getData: DataRetrievalAction,
requireData: DataRequiredAction,
formProvider: SecondaryContactPhoneNumberFormProvider,
val controllerComponents: MessagesControllerComponents,
view: SecondaryContactPhoneNumberView
)(implicit ec: ExecutionContext)
extends FrontendBaseController with I18nSupport with AnswerExtractor {
override val messagesApi: MessagesApi,
sessionRepository: SessionRepository,
navigator: Navigator,
identify: IdentifierAction,
getData: DataRetrievalAction,
requireData: DataRequiredAction,
formProvider: SecondaryContactPhoneNumberFormProvider,
val controllerComponents: MessagesControllerComponents,
view: SecondaryContactPhoneNumberView,
val connector: SubscriptionConnector,
val userAnswersService: UserAnswersService
)(implicit ec: ExecutionContext)
extends FrontendBaseController with I18nSupport with AnswerExtractor with SubscriptionUpdater{

def onPageLoad(mode: Mode): Action[AnyContent] = (identify andThen getData andThen requireData) {
implicit request =>
Expand Down Expand Up @@ -72,7 +76,8 @@ class SecondaryContactPhoneNumberController @Inject()(
value =>
for {
updatedAnswers <- Future.fromTry(request.userAnswers.set(SecondaryContactPhoneNumberPage, value))
_ <- sessionRepository.set(updatedAnswers)
_ <- updateSubscription(updatedAnswers)
_ <- sessionRepository.set(updatedAnswers)
} yield Redirect(navigator.nextPage(SecondaryContactPhoneNumberPage, mode, updatedAnswers))
)
}
Expand Down
2 changes: 1 addition & 1 deletion app/forms/Validation.scala
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,6 @@ import scala.util.matching.Regex

object Validation {

val textInputPattern: Regex = "[0-9A-Za-zÀ-ÅÇ-ÖØ-Ýà-åç-öø-ýÿĀ-ľŁ-ňŊ-őŔ-ſ'’ -]+".r.anchored
val textInputPattern: Regex = "[0-9A-Za-zÀ-ÅÇ-ÖØ-Ýà-åç-öø-ýÿĀ-ľŁ-ňŊ-őŔ-ſ'’ -.,]+".r.anchored
val emailPattern: Regex = "^.+@.+[.].+$".r.anchored
}
2 changes: 1 addition & 1 deletion app/viewmodels/ContactDetailsOrganisationViewModel.scala
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ object ContactDetailsOrganisationViewModel {
actions = Some(Actions(
items = Seq(ActionItem(
content = Text(messages("site.change")),
href = routes.PrimaryContactNameController.onPageLoad(NormalMode).url,
href = routes.HasSecondaryContactController.onPageLoad(NormalMode).url,
visuallyHiddenText = Some(messages("contactDetails.organisation.secondaryContact.change.hidden"))
))
))
Expand Down
6 changes: 1 addition & 5 deletions app/views/HasSecondaryContactView.scala.html
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,10 @@
@govukErrorSummary(ErrorSummaryViewModel(form))
}

<h1 class="govuk-heading-xl">@messages("hasSecondaryContact.heading", contactName)</h1>

<p class="govuk-body">@messages("hasSecondaryContact.p1")</p>

@govukRadios(
RadiosViewModel.yesNo(
field = form("value"),
legend = LegendViewModel(messages("hasSecondaryContact.heading")).withCssClass("govuk-visually-hidden")
legend = LegendViewModel(messages("hasSecondaryContact.heading", contactName)).asPageHeading()
)
)

Expand Down
Loading

0 comments on commit ddea185

Please sign in to comment.