membership-attribute-service/app/models/MobileSubscriptionStatus.scala (17 lines of code) (raw):
package models
import org.joda.time.DateTime
import play.api.libs.json._
import scala.util.Try
case class MobileSubscriptionStatus(
valid: Boolean,
to: DateTime,
)
object MobileSubscriptionStatus {
private implicit val dateTimeReads: Reads[DateTime] = new Reads[DateTime] {
override def reads(json: JsValue): JsResult[DateTime] = json match {
case JsString(date) => Try(DateTime.parse(date)).map(res => JsSuccess(res)).getOrElse(JsError(s"Unable to parse Date $date"))
case _ => JsError("Unable to parse date, was expecting a JsString")
}
}
implicit val mobileSubscriptionStatusReads: Reads[MobileSubscriptionStatus] = Json.reads[MobileSubscriptionStatus]
}