package <%= @org_name %>.<%= @dir_name %>

import com.twitter.finatra.{Controller, FinatraServer, View}

case class Tweet(status:String)

class TimelineView(val tweets:List) extends View {

val template = "timeline.mustache"

}

object App {

class  <%= @app_name %> extends Controller {

  def tweets = List(new Tweet("hey!"), new Tweet("lol"))

  get("/tweets.json") { request =>
    render.json(tweets).toFuture
  }

  get("/tweets") { request =>
    val tweetsView  = new TimelineView(tweets)

    render.view(tweetsView).toFuture
  }

  get("/status/:status") { request =>
    val statusCode = request.params("status").toInt

    render.nothing.status(statusCode).toFuture
  }

  get("/not_found") { request =>
    render.nothing.notFound.toFuture
  }

  get("/headers") { request =>
    render.nothing.header("X-GitSHA", "1ecd6b1").toFuture
  }

}

def main(args: Array[String]) {
  val app = new <%= @app_name %>

  FinatraServer.register(app)
  FinatraServer.start()
}

}