Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- object DatabaseConnection {
- private val Connection = ...
- private object PasswordDevice {
- def check(pw1: String, pw2: String) = ...
- def encrypt(password: String) = ...
- }
- object LoginDevice {
- private val GetUserStatement = Connection.prepareStatement("SELECT Name, Password, Rights FROM Users WHERE UPPER(Name) = UPPER(?)")
- def login(username: String, password: String) = {
- GetUserStatement.setString(1, username)
- val userResult = GetUserStatement.executeQuery
- if ( !userResult.next )
- throw User.NotFoundException
- if ( !PasswordDevice.check(password, userResult.getString("Password")) )
- throw User.WrongPasswordException
- new User(userResult.getString("Name"), ...)
- }
- }
- object RegisterDevice {
- private val RegisterStatement = Connection.prepareStatement("SELECT Name, Password, Rights FROM Users WHERE UPPER(Name) = UPPER(?)")
- private val GetKeyStatement = Connection.prepareStatement("SELECT Key FROM Keys WHERE UPPER(Key) = UPPER(?)")
- private val InsertStatement = Connection.prepareStatement(s"INSERT INTO Users VALUES(?, ?, ...)")
- private val DeleteKeyStatement = Connection.prepareStatement("DELETE FROM Keys WHERE Key = ?")
- def register(name: String, password: String, key: String) = {
- RegisterStatement.setString(1, name)
- GetKeyStatement.setString(1, key)
- val userExistsResult = RegisterStatement.executeQuery
- val keyValidResult = GetKeyStatement.executeQuery
- if ( userExistsResult.next ) throw User.AlreadyExistsException
- if ( !keyValidResult.next ) throw User.InvalidKeyException
- InsertStatement.setString(1, name)
- InsertStatement.setString(2, PasswordDevice.encrypt(password))
- InsertStatement.executeUpdate()
- DeleteKeyStatement.setString(1, key)
- DeleteKeyStatement.executeUpdate()
- new User(name, ...)
- }
- }
- object RequestDevice {
- private val RequestStatement = Connection.prepareStatement("SELECT Request.* FROM Request WHERE ID = ?")
- def request(id: String) = {
- RequestStatement.setString(1, id)
- val result = RequestStatement.executeQuery
- if(!result.next)
- throw Request.InvalidIDException
- new DataElement(result.getString("id"), ...)
- }
- }
- ...
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement