From e0c127054342a867f9ee1f2ee161009c0b0ee0d9 Mon Sep 17 00:00:00 2001 From: "jose.puente" Date: Thu, 1 Feb 2018 14:50:12 +0000 Subject: [PATCH] Do not use main or sub values to identify charge codes --- .../hmrc/epayeapi/models/in/EpayeReads.scala | 10 ++++-- .../epaye/monthly-statement/in/2017-3.json | 36 ++++--------------- .../hmrc/epayeapi/router/ApiRouterTest.scala | 1 - 3 files changed, 14 insertions(+), 33 deletions(-) diff --git a/app/uk/gov/hmrc/epayeapi/models/in/EpayeReads.scala b/app/uk/gov/hmrc/epayeapi/models/in/EpayeReads.scala index a755969..47c1a88 100644 --- a/app/uk/gov/hmrc/epayeapi/models/in/EpayeReads.scala +++ b/app/uk/gov/hmrc/epayeapi/models/in/EpayeReads.scala @@ -17,12 +17,19 @@ package uk.gov.hmrc.epayeapi.models.in import play.api.libs.json.Json.reads -import play.api.libs.json.{Format, Json, Reads} +import play.api.libs.json._ import uk.gov.hmrc.epayeapi.models.TaxYear trait EpayeReads { implicit lazy val taxYearReads: Reads[TaxYear] = reads[TaxYear] implicit lazy val epayeTaxMonthReads: Reads[EpayeTaxMonth] = reads[EpayeTaxMonth] + implicit lazy val epayeCodeReads: Reads[EpayeCode] = new Reads[EpayeCode]() { + override def reads(json: JsValue): JsResult[EpayeCode] = + json match { + case JsString(name) => JsSuccess(EpayeCode(name)) + case _ => JsError() + } + } implicit lazy val annualTotalReads: Reads[AnnualTotal] = reads[AnnualTotal] implicit lazy val lineItemReads: Reads[LineItem] = reads[LineItem] @@ -40,7 +47,6 @@ trait EpayeReads { implicit lazy val epayeMonthlyCreditsReads: Reads[EpayeMonthlyCredits] = reads[EpayeMonthlyCredits] implicit lazy val epayeMonthlyChargesDetailsReads: Reads[EpayeMonthlyChargesDetails] = reads[EpayeMonthlyChargesDetails] implicit lazy val epayeMonthlyStatementItemReads: Reads[EpayeMonthlyStatementItem] = reads[EpayeMonthlyStatementItem] - implicit lazy val epayeCodeReads: Reads[EpayeCode] = reads[EpayeCode] implicit lazy val epayeMonthlyPaymentDetailsReads: Reads[EpayeMonthlyPaymentDetails] = reads[EpayeMonthlyPaymentDetails] implicit lazy val epayeMonthlyPaymentItemReads: Reads[EpayeMonthlyPaymentItem] = reads[EpayeMonthlyPaymentItem] implicit lazy val epayeMonthlyBalanceReads: Reads[EpayeMonthlyBalance] = reads[EpayeMonthlyBalance] diff --git a/test/resources/epaye/monthly-statement/in/2017-3.json b/test/resources/epaye/monthly-statement/in/2017-3.json index b88ee23..4a492e6 100644 --- a/test/resources/epaye/monthly-statement/in/2017-3.json +++ b/test/resources/epaye/monthly-statement/in/2017-3.json @@ -3,27 +3,15 @@ "fps": { "items": [ { - "code": { - "main": "2000", - "sub": "1020", - "name": "RTI_IN_YEAR_CHARGE_NIC1" - }, + "code": "RTI_IN_YEAR_CHARGE_NIC1", "amount": 300 }, { - "code": { - "main": "2000", - "sub": "1100", - "name": "RTI_IN_YEAR_CHARGE_STUDENT_LOAN_DEDUCTION" - }, + "code": "RTI_IN_YEAR_CHARGE_STUDENT_LOAN_DEDUCTION", "amount": 300 }, { - "code": { - "main": "2000", - "sub": "1000", - "name": "RTI_IN_YEAR_CHARGE_INCOME_TAX" - }, + "code": "RTI_IN_YEAR_CHARGE_INCOME_TAX", "amount": 500 } ], @@ -52,19 +40,11 @@ "eps": { "items": [ { - "code": { - "main": "2130", - "sub": "1355", - "name": "RTI_EMPLOYMENT_ALLOWANCE_CHARGE" - }, + "code": "RTI_EMPLOYMENT_ALLOWANCE_CHARGE", "amount": 300 }, { - "code": { - "main": "2030", - "sub": "1290", - "name": "RTI_SHARED_PARENT_PAY" - }, + "code": "RTI_SHARED_PARENT_PAY", "amount": 200 } ], @@ -84,11 +64,7 @@ "writeOffs": { "items": [ { - "code": { - "main": "2000", - "sub": "1020", - "name": "RTI_IN_YEAR_CHARGE_NIC1" - }, + "code": "RTI_IN_YEAR_CHARGE_NIC1", "amount": 50 } ], diff --git a/test/uk/gov/hmrc/epayeapi/router/ApiRouterTest.scala b/test/uk/gov/hmrc/epayeapi/router/ApiRouterTest.scala index 625ace8..9458303 100644 --- a/test/uk/gov/hmrc/epayeapi/router/ApiRouterTest.scala +++ b/test/uk/gov/hmrc/epayeapi/router/ApiRouterTest.scala @@ -14,7 +14,6 @@ * limitations under the License. */ - package uk.gov.hmrc.epayeapi.router