Mark
Mark

Reputation: 2063

How to convert Future[Seq[A]] into Map[String, Seq[A]]?

I have a function which return a Future[Seq[A]]

def foo(x:String): Future[Seq[A]]

Then how can I convert it into a Map[String, Seq[A]] ?

This is What I have tried

foo(x).map { e =>
(ResponseHeader.Ok, e.groupBy(_.use).mapValues(???))
}

*EDIT : What I want to achieve is to group by my Seq based on 1 of its column as the key, and convert it into a Map[key, Seq[A]]. I tried to group by it, but I dont know what to put inside the mapValues

Upvotes: 0

Views: 122

Answers (1)

Tim
Tim

Reputation: 27356

The mapValues call is not required, the groupBy will give you what you want:

val e: Seq[A] = ???
val map: Map[String, Seq[A]] = e.groupBy(_.use)

val res: Future[(Int, Map[String, Seq[A]])] =
  foo("").map { e =>
    (ResponseHeader.Ok, e.groupBy(_.use))
  }

Upvotes: 2

Related Questions