aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuicommon/synchronization/utils/package.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuicommon/synchronization/utils/package.scala')
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/synchronization/utils/package.scala64
1 files changed, 0 insertions, 64 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/synchronization/utils/package.scala b/src/main/scala/xyz/driver/pdsuicommon/synchronization/utils/package.scala
deleted file mode 100644
index 1b30158..0000000
--- a/src/main/scala/xyz/driver/pdsuicommon/synchronization/utils/package.scala
+++ /dev/null
@@ -1,64 +0,0 @@
-package xyz.driver.pdsuicommon.synchronization
-
-import java.net.URL
-import java.nio.ByteBuffer
-import java.util.UUID
-
-import xyz.driver.pdsuicommon.domain.{LongId, UuidId}
-import xyz.driver.pdsuicommon.http.HttpFetcher
-import xyz.driver.pdsuicommon.json.JsonSerializer
-import xyz.driver.pdsuicommon.synchronization.domain.FakeId
-
-import scala.collection.breakOut
-import scala.concurrent.{ExecutionContext, Future}
-import scala.io.Codec
-
-package object utils {
-
- type FakeIdMap[T] = Map[FakeId, T]
-
- object FakeIdMap {
-
- def empty[T]: FakeIdMap[T] = Map.empty
-
- def create[T](xs: Seq[T])(implicit fakeIdExtractor: FakeIdGen[T]): FakeIdMap[T] = {
- xs.map({ x =>
- fakeIdExtractor.getFor(x) -> x
- })(breakOut)
- }
-
- }
-
- /**
- * Requests domain objects from the repository using
- * ids of fetched dictionary entities
- *
- * @param getList repository access function
- * @param xs sequence of entity objects
- * @param id function that extracts id from the entity
- * @tparam Id Type of Id (for example [[LongId]], [[UuidId]])
- * @tparam K Type parameter for Id
- * @tparam D Domain object type name
- * @tparam E Dictionary entity object type name
- */
- def domainFromEntities[K, D, E, Id[_]](getList: Set[Id[K]] => Seq[D], xs: Seq[E])(id: E => Id[K]): Seq[D] = {
- getList(xs.map(x => id(x)).toSet)
- }
-
- /** Version of [[domainFromEntities]] for LongId */
- def domainFromEntitiesLong[K, D, E](getList: Set[LongId[K]] => Seq[D], xs: Seq[E])(id: E => Long): Seq[D] = {
- domainFromEntities(getList, xs)(e => LongId(id(e)))
- }
-
- /** Version of [[domainFromEntities]] for UuidId */
- def domainFromEntitiesUUID[K, D, E](getList: Set[UuidId[K]] => Seq[D], xs: Seq[E])(id: E => UUID): Seq[D] = {
- domainFromEntities(getList, xs)(e => UuidId(id(e)))
- }
-
- def fetch[T](httpFetcher: HttpFetcher, url: URL)(implicit m: Manifest[T], ec: ExecutionContext): Future[T] = {
- httpFetcher(url).map { rawContent =>
- val content = Codec.UTF8.decoder.decode(ByteBuffer.wrap(rawContent)).toString
- JsonSerializer.deserialize[T](content)
- }
- }
-}