Skip to content

Instantly share code, notes, and snippets.

@stevef
Last active December 22, 2015 04:29
Show Gist options
  • Select an option

  • Save stevef/6417383 to your computer and use it in GitHub Desktop.

Select an option

Save stevef/6417383 to your computer and use it in GitHub Desktop.
package com.sportsnetwork.api.models
import com.sportsnetwork.api.dao._
import java.util.Date
import com.mongodb.casbah.Imports._
import com.novus.salat._
import com.novus.salat.global._
import org.json4s.CustomSerializer
import org.json4s._
import org.slf4j.{Logger, LoggerFactory}
case class Injury(_id: ObjectId = new ObjectId, team_id: Int, team_name: String, league: String, players: Option[Seq[Map[String, Any]]] = None,
created_at: Option[Date] = None, updated_at: Option[Date] = None, id: Option[ObjectId] = None )
object Injury {
def findAll = {
val results = InjuryDAO.findAll
val logger = LoggerFactory.getLogger(getClass)
results.map(grater[Injury].asObject(_)).toList
//val res_list = results.map(grater[Injury].asObject(_)).toList
//res_list.foreach(i => println(i.players.toList))
}
}
class InjurySerializer extends CustomSerializer[Injury](format => ({
case JObject(
("id", JString(id)) ::
("team_id", JString(team_id)) ::
("team_name" , JString(team_name)) ::
("league" , JString(league)) :: Nil) =>
Injury(new ObjectId, team_id.asInstanceOf[Int], team_name.asInstanceOf[String], league.asInstanceOf[String])
}, {
case injury: Injury =>
JObject.apply(
"team_id" -> JInt(injury.team_id),
"team_name" -> JString(injury.team_name),
"league" -> JString(injury.league))
}))
// curl req
vagrant@apivm:~$ curl -i http://localhost:8080/v1/nfl/injuries
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Server: Jetty(8.1.8.v20121106)
[{"team_id":86,"team_name":"Arizona Cardinals","league":"NFC"},{"team_id":61,"team_name":"Atlanta Falcons","league":"NFC"},{"team_id":65,"team_name":"Baltimore Ravens","league":"NFC"},{"team_id":62,"team_name":"Buffalo Bills","league":"NFC"},{"team_id":89,"team_name":"Carolina Panthers","league":"NFC"},{"team_id":63,"team_name":"Chicago Bears","league":"NFC"},{"team_id":64,"team_name":"Cincinnati Bengals","league":"NFC"},{"team_id":120,"team_name":"Cleveland Browns","league":"NFC"},{"team_id":66,"team_name":"Dallas Cowboys","league":"NFC"},{"team_id":67,"team_name":"Denver Broncos","league":"NFC"},{"team_id":68,"team_name":"Detroit Lions","league":"NFC"},{"team_id":69,"team_name":"Green Bay Packers","league":"NFC"},{"team_id":151,"team_name":"Houston Texans","league":"NFC"},{"team_id":71,"team_name":"Indianapolis Colts","league":"NFC"},{"team_id":90,"team_name":"Jacksonville Jaguars","league":"NFC"},{"team_id":72,"team_name":"Kansas City Chiefs","league":"NFC"},{"team_id":75,"team_name":"Miami Dolphins","league":"NFC"},{"team_id":76,"team_name":"Minnesota Vikings","league":"NFC"},{"team_id":77,"team_name":"New England Patriots","league":"NFC"},{"team_id":78,"team_name":"New Orleans Saints","league":"NFC"},{"team_id":79,"team_name":"New York Giants","league":"NFC"},{"team_id":80,"team_name":"New York Jets","league":"NFC"},{"team_id":73,"team_name":"Oakland Raiders","league":"NFC"},{"team_id":81,"team_name":"Philadelphia Eagles","league":"NFC"},{"team_id":82,"team_name":"Pittsburgh Steelers","league":"NFC"},{"team_id":83,"team_name":"San Diego Chargers","league":"NFC"},{"team_id":84,"team_name":"San Francisco 49ers","league":"NFC"},{"team_id":85,"team_name":"Seattle Seahawks","league":"NFC"},{"team_id":74,"team_name":"St. Louis Rams","league":"NFC"},{"team_id":87,"team_name":"Tampa Bay Buccaneers","league":"NFC"},{"team_id":70,"team_name":"Tennessee Titans","league":"NFC"},{"team_id":88,"team_name":"Washington Redskins","league":"NFC"}]vagrant@apivm:~$
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment