-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
MTDSA-8886: Investigate Play 28 upgrade (#56)
* MTDSA-8886: Update non-play plugins. * MTDSA-8886: Bump sbt version to see if anything breaks. * MTDSA-8886: Bump everything to latest Play 28 version available. Copy out code from domain library as it does not have a Play 28 version and isn't going to. * MTDSA-8886: Remove dependency comments. * MTDSA-8886: Remove build.sbt deprecations. * MTDSA-8886: Remove build.sbt deprecations. * MTDSA-8886: whoops * MTDSA-8886: play 28 alignments * MTDSA-8886: play 28 alignments * MTDSA-8886: play 28 alignments * MTDSA-8886: play 28 alignments * MTDSA-8886: Fix unit testing for DES connectors for new version of HTTP verbs. Some minor renaming for clarity. * MTDSA-8886: Add environment config option for DES to selectively allow certain headers to be sent to DES/ our stub. * MTDSA-8886: Remove warnings * MTDSA-8886: Remove deprecations (and some extra warnings) * MTDSA-8886: Some renamings and other minor refactoring. * MTDSA-8886: Remove unused `whitelisting`. * MTDSA-8886: Some streamlining and coverage refactoring. * MTDSA-8886: Review comments
- Loading branch information
1 parent
a42d5dc
commit eb1fc04
Showing
55 changed files
with
566 additions
and
441 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
/* | ||
* Copyright 2021 HM Revenue & Customs | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
*/ | ||
|
||
package v1.models.domain | ||
|
||
case class Nino(nino: String) { | ||
require(Nino.isValid(nino), s"$nino is not a valid nino.") | ||
|
||
private val LengthWithoutSuffix: Int = 8 | ||
def value: String = nino | ||
val name = "nino" | ||
def formatted: String = value.grouped(2).mkString(" ") | ||
def withoutSuffix: String = value.take(LengthWithoutSuffix) | ||
} | ||
|
||
object Nino extends (String => Nino) { | ||
private val validNinoFormat = "[[A-Z]&&[^DFIQUV]][[A-Z]&&[^DFIQUVO]] ?\\d{2} ?\\d{2} ?\\d{2} ?[A-D]{1}" | ||
private val invalidPrefixes = List("BG", "GB", "NK", "KN", "TN", "NT", "ZZ") | ||
|
||
private def hasValidPrefix(nino: String) = !invalidPrefixes.exists(nino.startsWith) | ||
def isValid(nino: String): Boolean = nino != null && hasValidPrefix(nino) && nino.matches(validNinoFormat) | ||
|
||
private[domain] val validFirstCharacters = ('A' to 'Z').filterNot(List('D', 'F', 'I', 'Q', 'U', 'V').contains).map(_.toString) | ||
private[domain] val validSecondCharacters = ('A' to 'Z').filterNot(List('D', 'F', 'I', 'O', 'Q', 'U', 'V').contains).map(_.toString) | ||
val validPrefixes: Seq[String] = validFirstCharacters.flatMap(a => validSecondCharacters.map(a + _)).filterNot(invalidPrefixes.contains(_)) | ||
val validSuffixes: Seq[String] = ('A' to 'D').map(_.toString) | ||
} | ||
|
Oops, something went wrong.