Skip to content

Commit 7dcce1c

Browse files
Merge pull request #40 from hmrc/feature/relative-links
YTA-3213: Modifying relative links to exclude the base part of the url.
2 parents 6f6b2ec + 35211a2 commit 7dcce1c

24 files changed

+124
-139
lines changed

app/uk/gov/hmrc/epayeapi/controllers/GetEmpRefsController.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ case class GetEmpRefsController @Inject() (
5454
def successHandler: PartialFunction[EpayeResponse[EpayeEmpRefsResponse], Result] = {
5555
case EpayeSuccess(EpayeEmpRefsResponse(empRefs)) =>
5656
Logger.error(s"EmpRefs received: $empRefs")
57-
val empRefsJson = EmpRefsJson.fromSeq(config.apiBaseUrl, empRefs)
57+
val empRefsJson = EmpRefsJson.fromSeq(empRefs)
5858
Ok(Json.toJson(empRefsJson))
5959
}
6060
}

app/uk/gov/hmrc/epayeapi/controllers/GetStatementsController.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ case class GetStatementsController @Inject()(
5454

5555
def successHandler(empRef: EmpRef): PartialFunction[EpayeResponse[EpayeMasterData], Result] = {
5656
case EpayeSuccess(EpayeMasterData(_, yearRegistered)) =>
57-
val statements = StatementsJson(config.apiBaseUrl, empRef, yearRegistered)
57+
val statements = StatementsJson(empRef, yearRegistered)
5858
Ok(Json.toJson(statements))
5959
}
6060
}

app/uk/gov/hmrc/epayeapi/controllers/GetSummaryController.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,6 @@ case class GetSummaryController @Inject() (
5252

5353
def successHandler(empRef: EmpRef): PartialFunction[EpayeResponse[EpayeTotalsResponse], Result] = {
5454
case EpayeSuccess(totals) =>
55-
Ok(Json.toJson(SummaryJson(config.apiBaseUrl, empRef, totals)))
55+
Ok(Json.toJson(SummaryJson(empRef, totals)))
5656
}
5757
}

app/uk/gov/hmrc/epayeapi/models/out/AnnualStatementJson.scala

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,7 @@ case class MonthlyChargesJson(
9494

9595
object MonthlyChargesJson {
9696

97-
def from(apiBaseUrl: String, lineItem: LineItem, empRef: EmpRef, taxYear: TaxYear): Option[MonthlyChargesJson] = {
97+
def from(lineItem: LineItem, empRef: EmpRef, taxYear: TaxYear): Option[MonthlyChargesJson] = {
9898
for {
9999
epayeTaxMonth <- lineItem.taxMonth
100100
taxMonth = TaxMonth(taxYear, epayeTaxMonth.month)
@@ -107,7 +107,7 @@ object MonthlyChargesJson {
107107
balance = lineItem.balance,
108108
dueDate = lineItem.dueDate,
109109
isSpecified = lineItem.isSpecified,
110-
_links = SelfLink(Link.monthlyStatementLink(apiBaseUrl, empRef, taxYear, taxMonth))
110+
_links = SelfLink(Link.monthlyStatementLink(empRef, taxYear, taxMonth))
111111
)
112112
}
113113
}
@@ -137,15 +137,15 @@ object AnnualStatementJson {
137137
taxYear = taxYear,
138138
_embedded = EmbeddedRtiChargesJson(
139139
EarlierYearUpdateJson.extractFrom(epayeAnnualStatement.rti.lineItems),
140-
epayeAnnualStatement.rti.lineItems.flatMap(MonthlyChargesJson.from(apiBaseUrl, _, empRef, taxYear))
140+
epayeAnnualStatement.rti.lineItems.flatMap(MonthlyChargesJson.from(_, empRef, taxYear))
141141
),
142142
nonRtiCharges = epayeAnnualStatement.nonRti.lineItems.flatMap(NonRtiChargesJson.from(_, taxYear)),
143143
_links = AnnualStatementLinksJson(
144-
empRefs = Link.empRefsLink(apiBaseUrl),
145-
statements = Link.statementsLink(apiBaseUrl, empRef),
146-
self = Link.anualStatementLink(apiBaseUrl, empRef, taxYear),
147-
next = Link.anualStatementLink(apiBaseUrl, empRef, taxYear.next),
148-
previous = Link.anualStatementLink(apiBaseUrl, empRef, taxYear.previous)
144+
empRefs = Link.empRefsLink,
145+
statements = Link.statementsLink(empRef),
146+
self = Link.anualStatementLink(empRef, taxYear),
147+
next = Link.anualStatementLink(empRef, taxYear.next),
148+
previous = Link.anualStatementLink(empRef, taxYear.previous)
149149
)
150150
)
151151

app/uk/gov/hmrc/epayeapi/models/out/EmpRefsJson.scala

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -30,25 +30,23 @@ case class EmbeddedEmpRefs(
3030
)
3131

3232
object EmpRefsJson {
33-
def fromSeq(apiBaseUrl: String, seq: Seq[EmpRef]): EmpRefsJson =
34-
EmpRefsJson(EmbeddedEmpRefs(seq.map(EmpRefItem(apiBaseUrl, _))), EmpRefsLinks(apiBaseUrl))
33+
def fromSeq(seq: Seq[EmpRef]): EmpRefsJson =
34+
EmpRefsJson(EmbeddedEmpRefs(seq.map(EmpRefItem(_))), EmpRefsLinks())
3535

36-
def apply(apiBaseUrl: String, empRef: EmpRef): EmpRefsJson =
37-
fromSeq(apiBaseUrl, Seq(empRef))
36+
def apply(empRef: EmpRef): EmpRefsJson = fromSeq(Seq(empRef))
3837
}
3938

4039
case class EmpRefItem(taxOfficeNumber: String, taxOfficeReference: String, _links: EmpRefLinks)
4140

4241
object EmpRefItem {
43-
def apply(apiBaseUrl: String, empRef: EmpRef): EmpRefItem =
44-
EmpRefItem(empRef.taxOfficeNumber, empRef.taxOfficeReference, EmpRefLinks(apiBaseUrl, empRef))
42+
def apply(empRef: EmpRef): EmpRefItem =
43+
EmpRefItem(empRef.taxOfficeNumber, empRef.taxOfficeReference, EmpRefLinks(empRef))
4544
}
4645

4746
case class EmpRefsLinks(self: Link)
4847

4948
object EmpRefsLinks {
50-
def apply(apiBaseUrl: String): EmpRefsLinks =
51-
new EmpRefsLinks(self = Link.empRefsLink(apiBaseUrl))
49+
def apply(): EmpRefsLinks = new EmpRefsLinks(self = Link.empRefsLink)
5250
}
5351

5452
case class EmpRefLinks(
@@ -58,12 +56,11 @@ case class EmpRefLinks(
5856
)
5957

6058
object EmpRefLinks {
61-
def apply(apiBaseUrl: String, empRef: EmpRef): EmpRefLinks =
59+
def apply(empRef: EmpRef): EmpRefLinks =
6260
EmpRefLinks(
63-
self = Link.summaryLink(apiBaseUrl, empRef),
64-
statements = Link.statementsLink(apiBaseUrl, empRef),
65-
currentStatement = Link.anualStatementLink(apiBaseUrl, empRef, taxYear = TaxYear(TaxYearResolver.currentTaxYear))
61+
self = Link.summaryLink(empRef),
62+
statements = Link.statementsLink(empRef),
63+
currentStatement = Link.anualStatementLink(empRef, TaxYear(TaxYearResolver.currentTaxYear))
6664
)
67-
// EmpRefLinks(summary = Link.summaryLink(apiBaseUrl, empRef))
6865
}
6966

app/uk/gov/hmrc/epayeapi/models/out/Link.scala

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,18 @@ case class Link(href: String)
2424
object Link {
2525
val prefix = "/organisations/paye"
2626

27-
def empRefsLink(apiBaseUrl: String): Link =
28-
Link(s"$apiBaseUrl$prefix/")
27+
def empRefsLink: Link =
28+
Link(s"$prefix/")
2929

30-
def summaryLink(apiBaseUrl: String, empRef: EmpRef): Link =
31-
Link(s"$apiBaseUrl$prefix/${empRef.taxOfficeNumber}/${empRef.taxOfficeReference}")
30+
def summaryLink(empRef: EmpRef): Link =
31+
Link(s"$prefix/${empRef.taxOfficeNumber}/${empRef.taxOfficeReference}")
3232

33-
def statementsLink(apiBaseUrl: String, empRef: EmpRef): Link =
34-
Link(s"$apiBaseUrl$prefix/${empRef.taxOfficeNumber}/${empRef.taxOfficeReference}/statements")
33+
def statementsLink(empRef: EmpRef): Link =
34+
Link(s"$prefix/${empRef.taxOfficeNumber}/${empRef.taxOfficeReference}/statements")
3535

36-
def anualStatementLink(apiBaseUrl: String, empRef: EmpRef, taxYear: TaxYear): Link =
37-
Link(s"$apiBaseUrl$prefix/${empRef.taxOfficeNumber}/${empRef.taxOfficeReference}/statements/${taxYear.asString}")
36+
def anualStatementLink(empRef: EmpRef, taxYear: TaxYear): Link =
37+
Link(s"$prefix/${empRef.taxOfficeNumber}/${empRef.taxOfficeReference}/statements/${taxYear.asString}")
3838

39-
def monthlyStatementLink(apiBaseUrl: String, empRef: EmpRef, taxYear: TaxYear, taxMonth: TaxMonth): Link =
40-
Link(s"$apiBaseUrl$prefix/${empRef.taxOfficeNumber}/${empRef.taxOfficeReference}/statements/${taxYear.asString}/${taxMonth.asString}")
39+
def monthlyStatementLink(empRef: EmpRef, taxYear: TaxYear, taxMonth: TaxMonth): Link =
40+
Link(s"$prefix/${empRef.taxOfficeNumber}/${empRef.taxOfficeReference}/statements/${taxYear.asString}/${taxMonth.asString}")
4141
}

app/uk/gov/hmrc/epayeapi/models/out/MonthlyStatementJson.scala

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ object MonthlyStatementJson {
8686
writeOffs = Charges(json.writeOffs),
8787
dueDate = json.balance.dueDate,
8888
summary = MonthlySummaryJson(json),
89-
_links = MonthlyStatementLinksJson(apiBaseUrl, empRef, taxYear, taxMonth)
89+
_links = MonthlyStatementLinksJson(empRef, taxYear, taxMonth)
9090
)
9191
}
9292

@@ -123,19 +123,19 @@ object MonthlySummaryJson {
123123
}
124124

125125
object MonthlyStatementLinksJson {
126-
def apply(apiBaseUrl: String, empRef: EmpRef, taxYear: TaxYear, taxMonth: TaxMonth): MonthlyStatementLinksJson =
126+
def apply(empRef: EmpRef, taxYear: TaxYear, taxMonth: TaxMonth): MonthlyStatementLinksJson =
127127
MonthlyStatementLinksJson(
128128
empRefs =
129-
Link.empRefsLink(apiBaseUrl),
129+
Link.empRefsLink,
130130
statements =
131-
Link.summaryLink(apiBaseUrl, empRef),
131+
Link.summaryLink(empRef),
132132
annualStatement =
133-
Link.anualStatementLink(apiBaseUrl, empRef, taxYear),
133+
Link.anualStatementLink(empRef, taxYear),
134134
self =
135-
Link.monthlyStatementLink(apiBaseUrl, empRef, taxYear, taxMonth),
135+
Link.monthlyStatementLink(empRef, taxYear, taxMonth),
136136
next =
137-
Link.monthlyStatementLink(apiBaseUrl, empRef, if (taxMonth.isLast) taxYear.next else taxYear, taxMonth.next),
137+
Link.monthlyStatementLink(empRef, if (taxMonth.isLast) taxYear.next else taxYear, taxMonth.next),
138138
previous =
139-
Link.monthlyStatementLink(apiBaseUrl, empRef, if (taxMonth.isFirst) taxYear.previous else taxYear, taxMonth.previous)
139+
Link.monthlyStatementLink(empRef, if (taxMonth.isFirst) taxYear.previous else taxYear, taxMonth.previous)
140140
)
141141
}

app/uk/gov/hmrc/epayeapi/models/out/StatementsJson.scala

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,11 +44,11 @@ case class Links(
4444
)
4545

4646
object StatementsJson {
47-
def apply(apiBaseUrl: String, empRef: EmpRef, taxYearOfRegistration: Option[TaxYear]): StatementsJson = {
47+
def apply(empRef: EmpRef, taxYearOfRegistration: Option[TaxYear]): StatementsJson = {
4848
def taxYearStatement(taxYear: TaxYear): Statement = {
4949
Statement(
5050
taxYear = taxYear,
51-
_links = StatementLinks(self = Link.anualStatementLink(apiBaseUrl, empRef, taxYear))
51+
_links = StatementLinks(self = Link.anualStatementLink(empRef, taxYear))
5252
)
5353
}
5454

@@ -61,8 +61,8 @@ object StatementsJson {
6161
} yield taxYearStatement(taxYear)
6262

6363
val links = Links(
64-
empRefs = Link.empRefsLink(apiBaseUrl),
65-
self = Link.statementsLink(apiBaseUrl, empRef)
64+
empRefs = Link.empRefsLink,
65+
self = Link.statementsLink(empRef)
6666
)
6767

6868
StatementsJson(

app/uk/gov/hmrc/epayeapi/models/out/SummaryJson.scala

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ case class SummaryJson(
3535
)
3636

3737
object SummaryJson {
38-
def apply(apiBaseUrl: String, empRef: EmpRef, total: EpayeTotalsResponse): SummaryJson =
38+
def apply(empRef: EmpRef, total: EpayeTotalsResponse): SummaryJson =
3939
SummaryJson(
4040
OutstandingCharges(
4141
total.overall,
@@ -44,7 +44,7 @@ object SummaryJson {
4444
nonRti = total.nonRti.totals.balance
4545
)
4646
),
47-
SummaryLinks(apiBaseUrl, empRef)
47+
SummaryLinks(empRef)
4848
)
4949
}
5050

@@ -54,9 +54,9 @@ case class SummaryLinks(
5454
)
5555

5656
object SummaryLinks {
57-
def apply(apiBaseUrl: String, empRef: EmpRef): SummaryLinks = SummaryLinks(
58-
Link.empRefsLink(apiBaseUrl),
59-
Link.summaryLink(apiBaseUrl, empRef)
57+
def apply(empRef: EmpRef): SummaryLinks = SummaryLinks(
58+
Link.empRefsLink,
59+
Link.summaryLink(empRef)
6060
)
6161
}
6262

resources/public/api/conf/1.0/examples/AnnualStatement.get.json

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,27 +40,27 @@
4040
"isSpecified": false,
4141
"_links": {
4242
"self": {
43-
"href": "https://api.service.hmrc.gov.uk/organisations/paye/001/AB00001/statements/2016-17/4"
43+
"href": "/organisations/paye/001/AB00001/statements/2016-17/4"
4444
}
4545
}
4646
}
4747
]
4848
},
4949
"_links": {
5050
"empRefs": {
51-
"href": "https://api.service.hmrc.gov.uk/organisations/paye/"
51+
"href": "/organisations/paye/"
5252
},
5353
"statements": {
54-
"href": "https://api.service.hmrc.gov.uk/organisations/paye/001/AB00001/statements"
54+
"href": "/organisations/paye/001/AB00001/statements"
5555
},
5656
"self": {
57-
"href": "https://api.service.hmrc.gov.uk/organisations/paye/001/AB00001/statements/2016-17"
57+
"href": "/organisations/paye/001/AB00001/statements/2016-17"
5858
},
5959
"next": {
60-
"href": "https://api.service.hmrc.gov.uk/organisations/paye/001/AB00001/statements/2017-18"
60+
"href": "/organisations/paye/001/AB00001/statements/2017-18"
6161
},
6262
"previous": {
63-
"href": "https://api.service.hmrc.gov.uk/organisations/paye/001/AB00001/statements/2015-16"
63+
"href": "/organisations/paye/001/AB00001/statements/2015-16"
6464
}
6565
}
6666
}

0 commit comments

Comments
 (0)