in app/controllers/ProjectEntryController.scala [1053:1100]
def getProjectsForCommission(commission: Int) = dbConfig.db.run(
TableQuery[ProjectEntryRow].filter(_.commission===commission).sortBy(_.created.desc).result
).map(Success(_)).recover(Failure(_))
def deleteCommissionData(commissionId: Int) = IsAdmin { uid =>
request =>
logger.info(s"Got a delete data request for commission ${commissionId}.")
logger.info(s"Commission value is: ${request.body.asJson.get("commission")}")
logger.info(s"Pluto value is: ${request.body.asJson.get("pluto")}")
logger.info(s"File value is: ${request.body.asJson.get("file")}")
logger.info(s"Backups value is: ${request.body.asJson.get("backups")}")
logger.info(s"PTR value is: ${request.body.asJson.get("PTR")}")
logger.info(s"Deliverables value is: ${request.body.asJson.get("deliverables")}")
logger.info(s"SAN value is: ${request.body.asJson.get("SAN")}")
logger.info(s"Matrix value is: ${request.body.asJson.get("matrix")}")
logger.info(s"S3 value is: ${request.body.asJson.get("S3")}")
logger.info(s"Buckets value is: ${request.body.asJson.get("buckets")}")
logger.info(s"Bucket Booleans value is: ${request.body.asJson.get("bucketBooleans")}")
implicit val db = dbConfig.db
getProjectsForCommission(commissionId).map({
case Success(result)=>
result.map((project) => {
logger.info(s"Found project ${project.id.get}.")
deleteDataRunner(project.id.get, 400, request.body.asJson.get("pluto").toString().toBoolean, request.body.asJson.get("file").toString().toBoolean, request.body.asJson.get("backups").toString().toBoolean, request.body.asJson.get("PTR").toString().toBoolean, request.body.asJson.get("deliverables").toString().toBoolean, request.body.asJson.get("SAN").toString().toBoolean, request.body.asJson.get("matrix").toString().toBoolean, request.body.asJson.get("S3").toString().toBoolean, request.body.asJson.get("buckets").validate[Array[String]].get, request.body.asJson.get("bucketBooleans").validate[Array[Boolean]].get)
})
if (request.body.asJson.get("commission").toString().toBoolean) {
Thread.sleep(1400)
PlutoCommission.forId(commissionId).map({
case Some(plutoCommission: PlutoCommission) =>
plutoCommission.removeFromDatabase.map({
case Success(_) =>
logger.info(s"Attempt at removing commission record worked.")
case Failure(error) =>
logger.error(s"Attempt at removing commission record failed with error: ${error}")
})
case None =>
logger.error(s"Could not look up commission entry for ${commissionId}: ")
})
}
case Failure(error)=>
logger.error(error.toString)
})
Ok(Json.obj("status"->"ok","detail"->"Delete data run."))
}