in src/main/scala/com/gu/flexible/snapshotter/logic/SNSLogic.scala [15:29]
def serialise[T](o: T)(implicit writes:Writes[T]): String = Json.stringify(Json.toJson(o))
def deserialise[T](jsonString: String)(implicit reads:Reads[T]): Attempt[T] = {
val json = Json.parse(jsonString)
Json.fromJson[T](json).fold(
{ failures =>
val attemptErrors = failures.map { case (path, errors) =>
AttemptError(errors.map(_.messages.mkString(",")).mkString(";"), context = Some(path.toString))
}
attemptErrors.foreach(error => log.error(error.logString, error.throwable.orNull))
Attempt.Left(AttemptErrors(attemptErrors))
},
Attempt.Right
)
}