in formstack-baton-requests/src/main/scala/com/gu/identity/formstackbatonrequests/CirceCodecs.scala [44:62]
private def addAdditionalFields(
response: JsonObject,
requestType: String,
action: String
): Json =
response
.add("action", action.asJson)
.add("requestType", requestType.asJson)
.add("dataProvider", "formstack".asJson)
.asJson
implicit val sarResponseEncoder: Encoder[SarResponse] = Encoder.instance {
case ir: SarInitiateResponse =>
addAdditionalFields(ir.asJsonObject, "SAR", "initiate")
case sr: SarStatusResponse =>
addAdditionalFields(sr.asJsonObject, "SAR", "status")
case pr: SarPerformResponse =>
addAdditionalFields(pr.asJsonObject, "SAR", "perform")
}