Tweak error handling in listTriggers helper (#6247)

changelog_begin
changelog_end
This commit is contained in:
Rohan Jacob-Rao 2020-06-05 16:32:49 -04:00 committed by GitHub
parent de2b5d195e
commit 3159c617f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -238,12 +238,12 @@ object Server {
)
}
def listTriggers(jwt: Jwt): (StatusCode, JsObject) = {
server.listRunningTriggers(jwt) match {
case Left(err) => errorResponse(StatusCodes.InternalServerError, err.toString)
case Right(triggerInstances) =>
successResponse(JsObject(("triggerIds", triggerInstances.map(_.toString).toJson)))
}
def listTriggers(jwt: Jwt): Either[String, JsValue] = {
server
.listRunningTriggers(jwt)
.map(
triggerInstances => JsObject(("triggerIds", triggerInstances.map(_.toString).toJson))
)
}
val route = concat(
@ -317,17 +317,24 @@ object Server {
},
// List triggers currently running for the given party.
path("v1" / "list") {
extractRequest { request =>
TokenManagement
.findJwt(request)
.flatMap { jwt =>
TokenManagement.decodeAndParsePayload(jwt, TokenManagement.decodeJwt)
}
.fold(
unauthorized =>
complete(errorResponse(StatusCodes.UnprocessableEntity, unauthorized.message)),
token => complete(listTriggers(token._1))
)
extractRequest {
request =>
TokenManagement
.findJwt(request)
.flatMap { jwt =>
TokenManagement.decodeAndParsePayload(jwt, TokenManagement.decodeJwt)
}
.fold(
unauthorized =>
complete(
errorResponse(StatusCodes.UnprocessableEntity, unauthorized.message)),
token =>
listTriggers(token._1) match {
case Left(err) =>
complete(errorResponse(StatusCodes.InternalServerError, err))
case Right(triggerInstances) => complete(successResponse(triggerInstances))
}
)
}
},
// Produce logs for the given trigger.