aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala
diff options
context:
space:
mode:
authorvlad <vlad@driver.xyz>2018-01-17 15:57:08 -0800
committervlad <vlad@driver.xyz>2018-01-17 15:57:08 -0800
commit6747b5dabfececf64ec596ec830f979404445f47 (patch)
tree3973e080fbae34d9fa2a123a3f79a2832e14c669 /src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala
parent5bbb0bc66db5b49eb0e3f197be17798fb8093f2a (diff)
downloadrest-query-6747b5dabfececf64ec596ec830f979404445f47.tar.gz
rest-query-6747b5dabfececf64ec596ec830f979404445f47.tar.bz2
rest-query-6747b5dabfececf64ec596ec830f979404445f47.zip
TRIAL-192, TRIAL-159 Trial model simplification to support Trial Synchronizer removal and the InterventionType's update for TRIAL-159
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala')
-rw-r--r--src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala
index 6650d51..94e1c63 100644
--- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala
+++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala
@@ -73,6 +73,18 @@ class RestTrialService(transport: ServiceTransport, baseUri: Uri)(implicit prote
}
}
+ def getHtmlSource(trialId: StringId[Trial])(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]
+ ): Future[Source[ByteString, NotUsed]] = {
+ val request = HttpRequest(HttpMethods.GET, endpointUri(baseUri, s"/v1/trial/$trialId/source.html"))
+ for {
+ response <- transport.sendRequestGetResponse(requestContext)(request)
+ reply <- apiResponse[HttpEntity](response)
+ } yield {
+ reply.dataBytes.mapMaterializedValue(_ => NotUsed)
+ }
+ }
+
def getAll(filter: SearchFilterExpr = SearchFilterExpr.Empty,
sorting: Option[Sorting] = None,
pagination: Option[Pagination] = None)(
@@ -146,4 +158,16 @@ class RestTrialService(transport: ServiceTransport, baseUri: Uri)(implicit prote
def unassign(origTrial: Trial)(
implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[UpdateReply] =
singleAction(origTrial, "unassign")
+
+ override def addTrial(trial: TrialCreationRequest)(
+ implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): Future[Trial] = {
+ for {
+ entity <- Marshal(trial).to[RequestEntity]
+ request = HttpRequest(HttpMethods.POST, endpointUri(baseUri, s"/v1/trial/${trial.nctId}")).withEntity(entity)
+ response <- transport.sendRequestGetResponse(requestContext)(request)
+ reply <- apiResponse[Trial](response)
+ } yield {
+ reply
+ }
+ }
}