diff --git a/app/models/Backend.scala b/app/models/Backend.scala index bab21f64..322a18fc 100644 --- a/app/models/Backend.scala +++ b/app/models/Backend.scala @@ -251,14 +251,14 @@ class Backend @Inject() (implicit retriever.map { case (Seq(), _, _) => None case (credset, _, _) => - val loci = credset.flatMap(cs => (cs \ "locus").as[Seq[Locus]]) + val loci = credset.flatMap(cs => (cs \ "locus").asOpt[Seq[Locus]].getOrElse(Seq())) logger.info(s"loci: $loci") val count = loci.size val filteredLoci = variantIds match { case Some(variantIds) => loci.filter(l => variantIds.contains(l.variantId.getOrElse(""))) case None => loci } - Some(Loci(count, filteredLoci.take(sizeLimit.getOrElse(Pagination.sizeDefault)))) + Some(Loci(count, Some(filteredLoci.take(sizeLimit.getOrElse(Pagination.sizeDefault))))) } } diff --git a/app/models/entities/CredibleSet.scala b/app/models/entities/CredibleSet.scala index 996387c2..529031ed 100644 --- a/app/models/entities/CredibleSet.scala +++ b/app/models/entities/CredibleSet.scala @@ -44,7 +44,7 @@ case class Locus( case class Loci( count: Long, - rows: Seq[Locus] + rows: Option[Seq[Locus]] ) case class LdSet( @@ -116,7 +116,7 @@ object CredibleSet extends Logging { implicit val lociR: Reads[Loci] = ( (JsPath \ "count").read[Long] and - (JsPath \ "locus").read[Seq[Locus]] + (JsPath \ "locus").readNullable[Seq[Locus]] )(Loci.apply _) val credibleSetFields: Seq[Field[Backend, JsValue]] = Seq(