private def addAdditionalFields()

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")
  }