Skip to content
Snippets Groups Projects
DailyController.scala 2.36 KiB
Newer Older
package controllers

import javax.inject._
import play.api._
import play.api.mvc._

import models.{Daily, User}
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 {
        // Dummy data
        val result = Daily.createDailyAsync(None, new ObjectId("641128f7e80bcd1ba39d04ae"), new ObjectId("641128f7e80bcd1ba39d04ae"), "asddas", 221)
        val jsonResult = Daily.toJson(result)
        Ok(jsonResult)
        case ex: TimeoutException => BadRequest("Request timed out")
        case ex: Throwable => BadRequest("Exception raised")