app/controllers/MissingFilesController.scala (41 lines of code) (raw):

package controllers import auth.{BearerTokenAuth, Security} import models.{MissingAssetFileEntryDAO, MissingAssetFileEntrySerializer} import play.api.cache.SyncCacheApi import play.api.db.slick.DatabaseConfigProvider import play.api.libs.json._ import play.api.mvc.{AbstractController, ControllerComponents} import play.api.{Configuration, Logger} import slick.jdbc.PostgresProfile import javax.inject._ import scala.concurrent.ExecutionContext.Implicits.global import scala.util.{Failure, Success} @Singleton class MissingFilesController @Inject()(cc:ControllerComponents, override val bearerTokenAuth:BearerTokenAuth, override implicit val config: Configuration, dbConfigProvider: DatabaseConfigProvider, cacheImpl:SyncCacheApi, missingAssetFileEntryDAO: MissingAssetFileEntryDAO) extends AbstractController(cc) with Security with MissingAssetFileEntrySerializer { override val logger = Logger(getClass) implicit val cache = cacheImpl implicit val db = dbConfigProvider.get[PostgresProfile].db def missing(project:Int) = IsAuthenticatedAsync {uid=>{request=> MissingAssetFileEntryDAO.getRecords(project).map({ case Success(results)=>Ok(Json.obj("status"->"ok","results"->results)) case Failure(error)=> logger.error("Could not list missing files: ", error) InternalServerError(Json.obj("status"->"error","detail"->error.toString)) }) }} def removeWarning(project:Int) = IsAuthenticatedAsync {uid=>{request=> MissingAssetFileEntryDAO.getRecords(project).map({ case Success(results)=> results.map(record => missingAssetFileEntryDAO.deleteRecord(record) ) Ok(Json.obj("status"->"ok")) case Failure(error)=> logger.error("Could not delete missing file records: ", error) InternalServerError(Json.obj("status"->"error","detail"->error.toString)) }) }} }