app/controllers/DeletionRecordController.scala (37 lines of code) (raw):

package controllers import javax.inject._ import auth.{BearerTokenAuth, Security} import models.{DeletionRecordDAO, DeletionRecordSerializer} 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 DeletionRecordController @Inject()(cc:ControllerComponents, override val bearerTokenAuth:BearerTokenAuth, override implicit val config: Configuration, dbConfigProvider: DatabaseConfigProvider, cacheImpl:SyncCacheApi) extends AbstractController(cc) with Security with DeletionRecordSerializer { override val logger = Logger(getClass) implicit val cache = cacheImpl implicit val db = dbConfigProvider.get[PostgresProfile].db def deleted(startAt:Int, limit: Int) = IsAdminAsync {uid=>{request=> DeletionRecordDAO.getRecords(startAt, limit).map({ case Success(results)=>Ok(Json.obj("status"->"ok","result"->results)) case Failure(error)=> logger.error("Could not list deleted projects: ", error) InternalServerError(Json.obj("status"->"error","detail"->error.toString)) }) }} def record(id:Int) = IsAdminAsync {uid=>{request=> DeletionRecordDAO.getRecord(id).map({ case Success(result)=>Ok(Json.obj("status"->"ok","result"->result)) case Failure(error)=> logger.error("Could not get deleted project data: ", error) InternalServerError(Json.obj("status"->"error","detail"->error.toString)) }) }} }