def setStatus()

in app/controllers/banner/BannerDesignsController.scala [184:209]


  def setStatus(designName: String, rawStatus: String) =
    authAction.async { request =>
      run {
        logger.info(
          s"${request.user.email} is changing status to $rawStatus on: $designName")

        parseStatus(rawStatus) match {
          case Some(status) =>
            // First make sure no test variants are currently using this design
            getTestsUsingDesign(designName)
              .flatMap {
                case Nil =>
                  dynamoDesigns
                    .updateStatus(designName, status)
                    .map(_ => Ok(status.toString))
                case tests =>
                  val testNames = tests.map(banner => banner.name)
                  ZIO.succeed(BadRequest(s"Cannot change status of design $designName because it's still in use by the following test(s): ${testNames.mkString(", ")}"))
              }

          case None =>
            ZIO.succeed(BadRequest(s"Invalid status for design: $rawStatus"))
        }

      }
    }