Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.dailyLif
- import org.scalatra._
- import scalate.ScalateSupport
- import org.squeryl.Session
- import org.squeryl.SessionFactory
- import org.squeryl.PrimitiveTypeMode._
- import org.squeryl.adapters.MySQLAdapter
- import java.sql.Timestamp
- import com.mchange.v2.c3p0.ComboPooledDataSource
- object DailyPool {
- val databaseUsername = "username"
- val databasePassword = "password"
- val databaseConnection = "jdbc:mysql://example.com:3306/dailylife_dev"
- val cpds = new ComboPooledDataSource
- cpds.setDriverClass("com.mysql.jdbc.Driver")
- cpds.setJdbcUrl(databaseConnection)
- cpds.setUser(databaseUsername)
- cpds.setPassword(databasePassword)
- cpds.setMinPoolSize(1)
- cpds.setAcquireIncrement(1)
- cpds.setMaxPoolSize(5)
- cpds.setMaxIdleTime(10)
- cpds.setMaxStatements(50)
- cpds.setIdleConnectionTestPeriod(10)
- }
- class DailyLifFilter extends ScalatraFilter with ScalateSupport {
- SessionFactory.concreteFactory = Some(() => connection)
- def connection = {
- Session.create(DailyPool.cpds.getConnection, new MySQLAdapter)
- }
- before {
- SessionFactory.newSession.bindToCurrentThread
- }
- get("/events") {
- val coll = from(Schema.events)(s => select(s))
- <html>
- <body>
- <h1>Events</h1>
- <ul>
- {for (l <- coll) yield
- <li>
- BaseStation ID: {l.baseStationId.toString} <br/>
- Device ID: {l.deviceId.toString} <br/>
- Created At: {l.createdAt.toString} <br/>
- Value: {l.value.toString} <br/>
- </li>
- }
- </ul>
- </body>
- </html>
- }
- post("/events") {
- val event = new Event(params("basestation_id").toInt,
- params("device_id").toInt,
- new Timestamp(System.currentTimeMillis),
- params("value").toInt)
- Schema.events.insert(event)
- }
- }
Add Comment
Please, Sign In to add comment