in riff-raff/app/controllers/api.scala [309:356]
def record2apiResponse(deploy: Record)(implicit
request: ApiRequest[AnyContent]
) =
Json.obj(
"time" -> deploy.time,
"uuid" -> deploy.uuid.toString,
"projectName" -> deploy.parameters.build.projectName,
"build" -> deploy.parameters.build.id,
"stage" -> deploy.parameters.stage.name,
"deployer" -> deploy.parameters.deployer.name,
"status" -> deploy.state.toString,
"logURL" -> routes.DeployController
.viewUUID(deploy.uuid.toString)
.absoluteURL(),
"tags" -> toJson(deploy.allMetaData),
"durationSeconds" -> deploy.timeTaken.toStandardSeconds.getSeconds
)
def history = ApiJsonEndpoint("history") { implicit request =>
val filter = deployment.DeployFilter.fromRequest(request)
val count = deployments.countDeploys(filter)
val pagination =
deployment.DeployFilterPagination.fromRequest.withItemCount(Some(count))
val deployList = deployments
.getDeploys(filter, pagination.pagination, fetchLogs = false)
.logAndSquashException(Nil)
.reverse
val deploys = deployList.map { record2apiResponse }
val response = Map(
"response" -> toJson(
Map(
"status" -> toJson("ok"),
"total" -> toJson(pagination.itemCount),
"pageSize" -> toJson(pagination.pageSize),
"currentPage" -> toJson(pagination.page),
"pages" -> toJson(pagination.pageCount.get),
"filter" -> toJson(
filter
.map(_.queryStringParams.toMap.mapValues(toJson(_)))
.getOrElse(Map.empty)
),
"results" -> toJson(deploys)
)
)
)
toJson(response)
}