diff options
author | Vlad Uspensky <v.uspenskiy@icloud.com> | 2018-01-23 17:37:35 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-23 17:37:35 -0800 |
commit | cf397367e2d8e0da371aae22a2d41578b8f48e44 (patch) | |
tree | 7440d630fea2205102ac7d40995b5588f0cdd3f9 /src/main/scala/xyz/driver/pdsuidomain/services/rest/RestTrialService.scala | |
parent | 1fa8b54fee10c09485a2d098ddb5e0013f4205b2 (diff) | |
parent | 61bb1951da84446b7c81ea56884476fa1237a91e (diff) | |
download | rest-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.scala | 24 |
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 + } + } } |