Guest User

Untitled

a guest
Jul 28th, 2018
130
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. package com.dailyLif
  2.  
  3. import org.scalatra._
  4. import scalate.ScalateSupport
  5.  
  6. import org.squeryl.Session
  7. import org.squeryl.SessionFactory
  8. import org.squeryl.PrimitiveTypeMode._
  9. import org.squeryl.adapters.MySQLAdapter
  10. import java.sql.Timestamp
  11. import com.mchange.v2.c3p0.ComboPooledDataSource
  12.  
  13. object DailyPool {
  14. val databaseUsername = "username"
  15. val databasePassword = "password"
  16. val databaseConnection = "jdbc:mysql://example.com:3306/dailylife_dev"
  17.  
  18. val cpds = new ComboPooledDataSource
  19. cpds.setDriverClass("com.mysql.jdbc.Driver")
  20. cpds.setJdbcUrl(databaseConnection)
  21. cpds.setUser(databaseUsername)
  22. cpds.setPassword(databasePassword)
  23.  
  24. cpds.setMinPoolSize(1)
  25. cpds.setAcquireIncrement(1)
  26. cpds.setMaxPoolSize(5)
  27. cpds.setMaxIdleTime(10)
  28. cpds.setMaxStatements(50)
  29. cpds.setIdleConnectionTestPeriod(10)
  30. }
  31.  
  32. class DailyLifFilter extends ScalatraFilter with ScalateSupport {
  33. SessionFactory.concreteFactory = Some(() => connection)
  34.  
  35. def connection = {
  36. Session.create(DailyPool.cpds.getConnection, new MySQLAdapter)
  37. }
  38.  
  39. before {
  40. SessionFactory.newSession.bindToCurrentThread
  41. }
  42.  
  43. get("/events") {
  44. val coll = from(Schema.events)(s => select(s))
  45.  
  46. <html>
  47. <body>
  48. <h1>Events</h1>
  49. <ul>
  50. {for (l <- coll) yield
  51. <li>
  52. BaseStation ID: {l.baseStationId.toString} <br/>
  53. Device ID: {l.deviceId.toString} <br/>
  54. Created At: {l.createdAt.toString} <br/>
  55. Value: {l.value.toString} <br/>
  56. </li>
  57. }
  58. </ul>
  59. </body>
  60. </html>
  61. }
  62.  
  63. post("/events") {
  64. val event = new Event(params("basestation_id").toInt,
  65. params("device_id").toInt,
  66. new Timestamp(System.currentTimeMillis),
  67. params("value").toInt)
  68.  
  69. Schema.events.insert(event)
  70. }
  71. }
Add Comment
Please, Sign In to add comment