def apply()

in facia-json/src/main/scala/com/gu/facia/client/ApiClient.scala [24:38]


  def apply(
    bucket: String,
    environment: String, // e.g., CODE, PROD, DEV ...
    s3Client: S3Client
  )(implicit executionContext: ExecutionContext): ApiClient = new ApiClient {
    val env: Environment = Environment(environment)

    private def retrieve[A: Format](key: String): Future[Option[A]] = s3Client.get(bucket, key).map(translateFaciaResult[A](_))

    def config: Future[ConfigJson] =
      retrieve[ConfigJson](env.configS3Path).map(getOrWarnAboutMissingConfig)

    def collection(id: String): Future[Option[CollectionJson]] =
      retrieve[CollectionJson](env.collectionS3Path(id))
  }