diff options
author | vlad <vlad@driver.xyz> | 2017-06-27 17:13:02 -0700 |
---|---|---|
committer | vlad <vlad@driver.xyz> | 2017-06-27 17:13:02 -0700 |
commit | 5832f63b84d7388441d1200f2442dc1e9de0225c (patch) | |
tree | 32f63acdc920c14effc3d0d2822c05c125ad49e4 /src/main/scala/xyz/driver/pdsuidomain/services/ScrapedTrialsService.scala | |
parent | 9dd50590d4c8f8b9442d7c21ddd1def9dd453d5e (diff) | |
download | rest-query-5832f63b84d7388441d1200f2442dc1e9de0225c.tar.gz rest-query-5832f63b84d7388441d1200f2442dc1e9de0225c.tar.bz2 rest-query-5832f63b84d7388441d1200f2442dc1e9de0225c.zip |
All PDS UI domain models, API case classes, service traits and necessary utils moved to pdsui-commonv0.1.11
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/services/ScrapedTrialsService.scala')
-rw-r--r-- | src/main/scala/xyz/driver/pdsuidomain/services/ScrapedTrialsService.scala | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/ScrapedTrialsService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/ScrapedTrialsService.scala new file mode 100644 index 0000000..4417a54 --- /dev/null +++ b/src/main/scala/xyz/driver/pdsuidomain/services/ScrapedTrialsService.scala @@ -0,0 +1,54 @@ +package xyz.driver.pdsuidomain.services + +import xyz.driver.pdsuicommon.error.DomainError +import xyz.driver.pdsuidomain.entities.ScrapedTrial + +import scala.concurrent.Future + +object ScrapedTrialsService { + + sealed trait GetRawTrialReply + object GetRawTrialReply { + type Error = GetRawTrialReply with DomainError + + case class TrialRawEntity(rawTrial: ScrapedTrial) extends GetRawTrialReply + + case object NotFoundError extends GetRawTrialReply with DomainError.NotFoundError { + override def userMessage: String = "Raw clinical trial not found" + } + } + + sealed trait GetRawTrialOptReply + object GetRawTrialOptReply { + case class TrialRawEntity(rawTrial: Option[ScrapedTrial]) extends GetRawTrialOptReply + } + + sealed trait GetAllRawTrialsExceptReply + object GetAllRawTrialsExceptReply { + case class MultipleRawTrials(rawTrials: Seq[ScrapedTrial]) + extends GetAllRawTrialsExceptReply + } + + sealed trait GetHtmlForReply + object GetHtmlForReply { + type TrialHtmlMap = Map[String, String] + + /** + * @param trialHtmlMap nctId -> html + */ + case class HtmlMap(trialHtmlMap: TrialHtmlMap) extends GetHtmlForReply + } +} + +trait ScrapedTrialsService { + + import ScrapedTrialsService._ + + def getRawTrial(nctId: String): Future[GetRawTrialReply] + + def getRawTrialOpt(nctId: String): Future[GetRawTrialOptReply] + + def getAllRawTrialsExcept(nctIds: Seq[String], limit: Int): Future[GetAllRawTrialsExceptReply] + + def getHtmlFor(nctIds: Set[String]): Future[GetHtmlForReply] +} |