Advertisement
richardjleeson

kinda like sql alchemy

Oct 18th, 2014
144
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.40 KB | None | 0 0
  1. package DBEntry {
  2.   trait ConnectionInfo {
  3.       def conn:Jdbc.ConnectionInfo = getJDBCConnectionInfo()
  4.       def userdb= "Users"
  5.       def getUrl= "jdbc:foo://%DBHostname%s:%DBPort%s/%dbname%s"
  6.       def getDBName= "oathdb"
  7.       def getDBHostname= "127.0.0.1"
  8.       def getDBPort= "5432"
  9.       def getDBAccount = "oauthagent"
  10.       def getDBPassword = "password"
  11.       def getJDBCConnectionInfo():Jdbc.ConnectionInfo = {
  12.         val url = this.getUrl
  13.         val DGAccount = this.getDBAccount
  14.         val DBPassword = this.getDBPassword
  15.         val DBHostname = this.getDBHostname
  16.         val DBPort = this.getDBPort
  17.         new Jdbc.ConnectionInfo(getUrl)
  18.       }
  19.     }
  20.   trait UserDBEntry extends ConnectionInfo{
  21.     case class usr(uid:String,uname:String,passwordHash:String)
  22.     val user : usr
  23.     val _uid: String = ""
  24.     val _uname: String = ""
  25.     val _passwordHash: String = ""
  26.     val _userdb: String = "Users"
  27.     val _sql = "SELECT * FROM %_userdb%s WHERE name=%_uid%s AND password=%_passwordHash% LIMIT 1"
  28.     def pullUserEntry(username:String, password:String): Try[UserDBEntry] ={
  29.       val mapper = new ObjectMapper().registerModule(DefaultScalaModule)
  30.       val ret = Jdbc.withResultsIterator(conn,_sql,it => mapper.readValue(mapper.writeValueAsString(it.take(1)),this.getClass))
  31.       ret
  32.     }
  33.     def get(): Option[usr] = {
  34.       Some(usr(_uid, _uname, _passwordHash))
  35.     }
  36.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement