RestoreFromFile.scala 551 B

123456789101112131415161718192021
  1. package com.weEat.migrations
  2. import com.weEat.models.Collectable
  3. import org.mongodb.scala.MongoDatabase
  4. import scala.io.Source
  5. import scala.concurrent.Future
  6. import scala.reflect.ClassTag
  7. import play.api.libs.json.{Reads,Json}
  8. import scala.jdk.StreamConverters._
  9. case class RestoreFromFile[T](
  10. f: Source,
  11. col: Collectable[T]
  12. )(implicit
  13. tag: ClassTag[T],
  14. reads: Reads[Seq[T]]
  15. ) extends Migration {
  16. def execute(db: MongoDatabase) = db.getCollection[T](col.collectionName)
  17. .insertMany(Json.parse(f.mkString).as[Seq[T]])
  18. .toFuture()
  19. }