Newer
Older
package controllers
import javax.inject._
import play.api._
import play.api.mvc._
import scala.concurrent.TimeoutException
import scala.concurrent.duration._
import org.bson.types.ObjectId
/**
* This controller handles all the Daily endpoints.
*/
@Singleton
class DailyController @Inject()(val controllerComponents: ControllerComponents) extends BaseController {
/**
* Create an Action to fetch all the Dailies in the DB.
*/
def getAll() = Action { implicit request: Request[AnyContent] =>
println("DailyController:getAll")
try {
val result: Seq[Daily] = Daily.getAllDailiesAsync()
val jsonResult = Daily.toJson(result)
Ok(jsonResult)
case ex: TimeoutException => BadRequest("Request timed out")
case ex: Throwable => BadRequest("Exception raised")
/**
* Create an Action to fetch the user's Dailies in the DB.
*/
def getUserDailies() = Action { implicit request: Request[AnyContent] =>
println("DailyController:getUserDailies")
try {
val result: Seq[Daily] = Daily.getUserDailiesAsync(new ObjectId("641128f7e80bcd1ba39d04af"))
val jsonResult = Daily.toJson(result)
Ok(jsonResult)
} catch {
case ex: TimeoutException => BadRequest("Request timed out")
case ex: Throwable => BadRequest("Exception raised")
/**
* Create an Action to fetch the user's Feed.
*/
def getUserFeed() = Action { implicit request: Request[AnyContent] =>
println("DailyController:getUserFeed")
try {
val result: Seq[Daily] = Daily.getUserFeedAsync(new ObjectId("641128f7e80bcd1ba39d04ae"))
val jsonResult = Daily.toJson(result)
Ok(jsonResult)
} catch {
case ex: TimeoutException => BadRequest("Request timed out")
case ex: Throwable => BadRequest("Exception raised")
def create() = Action { implicit request: Request[AnyContent] =>
println("DailyController:create")
try {
val result = Daily.createDailyAsync(None, new ObjectId("641128f7e80bcd1ba39d04ae"), new ObjectId("641128f7e80bcd1ba39d04ae"), "asddas")
val jsonResult = Daily.toJson(result)
Ok(jsonResult)
case ex: TimeoutException => BadRequest("Request timed out")
case ex: Throwable => BadRequest("Exception raised")
def like() = Action { implicit request: Request[AnyContent] =>
println("DailyController:like")
try {
// Dummy data
val result = Daily.likeAsync(new ObjectId("642314b4b9748f6794e9895b"), new ObjectId("641128f7e80bcd1ba39d04ae"))
Ok("Updated")
} catch {
case ex: TimeoutException => BadRequest("Request timed out")
case ex: Throwable => BadRequest("Exception raised")
}
}