app/controllers/ItemDeleteDataController.scala (29 lines of code) (raw):

package controllers import javax.inject._ import auth.{BearerTokenAuth, Security} import models.{ItemDeleteDataDAO, ItemDeleteDataSerializer} import play.api.{Configuration, Logger} import play.api.cache.SyncCacheApi import play.api.db.slick.DatabaseConfigProvider import play.api.libs.json._ import play.api.mvc.{AbstractController, ControllerComponents} import slick.jdbc.PostgresProfile import scala.util.{Failure, Success} import scala.concurrent.ExecutionContext.Implicits.global @Singleton class ItemDeleteDataController @Inject() (cc:ControllerComponents, override val bearerTokenAuth:BearerTokenAuth, override implicit val config: Configuration, dbConfigProvider: DatabaseConfigProvider, cacheImpl:SyncCacheApi) extends AbstractController(cc) with Security with ItemDeleteDataSerializer { override val logger = Logger(getClass) implicit val cache = cacheImpl implicit val db = dbConfigProvider.get[PostgresProfile].db def listForProject(projectId: Int) = IsAdminAsync {uid=>{request=> ItemDeleteDataDAO.itemsForProject(projectId).map({ case Success(results)=>Ok(Json.obj("status"->"ok","results"->results)) case Failure(error)=> logger.error("Could not list items that will not be deleted: ", error) InternalServerError(Json.obj("status"->"error","detail"->error.toString)) }) }} }