def loadExistingContent()

in app/services/DuplicateFinderService.scala [19:54]


  def loadExistingContent(vaultId: String) = {
    val interestingFields = Array(
      "MXFS_PATH",
      "MXFS_FILENAME",
      "GNM_ASSET_FOLDER",
      "GNM_TYPE",
      "GNM_PROJECT_ID"
    )

    val catchAllSearchTerm = SearchTerm.createNOTTerm(SearchTerm.createSimpleTerm("oid", ""))
    val finalSink = Sink.seq[CachedEntry]
    val content = userInfoCache.infoForVaultId(vaultId)
    val graph = GraphDSL.create(finalSink) { implicit builder =>
      sink =>
        import akka.stream.scaladsl.GraphDSL.Implicits._

        val src = builder.add(new OMFastSearchSource(content.head, Array(catchAllSearchTerm), interestingFields, atOnce = 100))
        src.out.map(elem => {
          val ent = CachedEntry(
            elem.oid,
            elem.attributes.flatMap(_.stringValues.get("MXFS_PATH")).getOrElse("(no path)"),
            elem.attributes.flatMap(_.stringValues.get("MXFS_FILENAME")).getOrElse("(no filename)"),
            elem.attributes.flatMap(_.stringValues.get("GNM_ASSET_FOLDER")),
            elem.attributes.flatMap(_.stringValues.get("GNM_TYPE")),
            elem.attributes.flatMap(_.stringValues.get("GNM_PROJECT_ID")),
            ""
          )

          logger.debug(s"Got entry $ent")
          ent
        }) ~> sink
        ClosedShape
    }

    RunnableGraph.fromGraph(graph).run()
  }