Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Loader[A,Marker](retrieve: Option[Marker] => Future[PagedResults[A,Marker]])(implicit ec:ExecutionContext){
- def foldUntil[B]( initial:B )( folder: (B, PagedResults[A,Marker]) => Future[(B,Boolean)], marker:Option[Marker] = None)(implicit rc:RequestContext):Future[B] = {
- retrieve(marker).flatMap( results => {
- folder(initial,results).flatMap({ case (acc, finished) =>
- if (finished || !results.hasMore) Future successful acc
- else foldUntil(acc)(folder, results.marker)
- })
- })
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement