def record2apiResponse()

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)
  }