aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala
diff options
context:
space:
mode:
authorVlad Uspensky <v.uspenskiy@icloud.com>2018-01-23 17:37:35 -0800
committerGitHub <noreply@github.com>2018-01-23 17:37:35 -0800
commitcf397367e2d8e0da371aae22a2d41578b8f48e44 (patch)
tree7440d630fea2205102ac7d40995b5588f0cdd3f9 /src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala
parent1fa8b54fee10c09485a2d098ddb5e0013f4205b2 (diff)
parent61bb1951da84446b7c81ea56884476fa1237a91e (diff)
downloadrest-query-cf397367e2d8e0da371aae22a2d41578b8f48e44.tar.gz
rest-query-cf397367e2d8e0da371aae22a2d41578b8f48e44.tar.bz2
rest-query-cf397367e2d8e0da371aae22a2d41578b8f48e44.zip
Merge pull request #77 from drivergroup/TRIAL-192v0.15.2
TRIAL-192, TRIAL-159 Trial model simplification to support Trial Sync…
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
+ }
+ }
}