diff -r 6eede6088d41 -r 3f30adba1c63 src/main/kotlin/de/uapcore/lightpit/dao/postgres/PGUserDao.kt --- a/src/main/kotlin/de/uapcore/lightpit/dao/postgres/PGUserDao.kt Sun Dec 20 11:06:25 2020 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -/* - * Copyright 2020 Mike Becker. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE - * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - */ - -package de.uapcore.lightpit.dao.postgres - -import de.uapcore.lightpit.dao.AbstractUserDao -import de.uapcore.lightpit.dao.Functions -import de.uapcore.lightpit.entities.User -import java.sql.Connection -import java.sql.ResultSet - -class PGUserDao(connection: Connection) : AbstractUserDao() { - - companion object { - fun mapResult(rs: ResultSet): User { - val id = rs.getInt("userid") - return if (rs.wasNull()) { - User(-1) - } else { - val user = User(id) - user.username = rs.getString("username") - user.givenname = Functions.getSafeString(rs, "givenname") - user.lastname = Functions.getSafeString(rs, "lastname") - user.mail = Functions.getSafeString(rs, "mail") - user - } - } - } - - private val listStmt = connection.prepareStatement( - "select userid, username, lastname, givenname, mail " + - "from lpit_user where userid >= 0 " + - "order by username") - private val findStmt = connection.prepareStatement( - "select userid, username, lastname, givenname, mail " + - "from lpit_user where userid = ? ") - private val findByUsernameStmt = connection.prepareStatement( - "select userid, username, lastname, givenname, mail " + - "from lpit_user where lower(username) = lower(?) ") - private val insertStmt = connection.prepareStatement("insert into lpit_user (username, lastname, givenname, mail) values (?, ?, ?, ?)") - private val updateStmt = connection.prepareStatement("update lpit_user set lastname = ?, givenname = ?, mail = ? where userid = ?") - - override fun mapResult(rs: ResultSet): User = Companion.mapResult(rs) - - override fun save(instance: User) { - insertStmt.setString(1, instance.username) - Functions.setStringOrNull(insertStmt, 2, instance.lastname) - Functions.setStringOrNull(insertStmt, 3, instance.givenname) - Functions.setStringOrNull(insertStmt, 4, instance.mail) - insertStmt.executeUpdate() - } - - override fun update(instance: User): Boolean { - Functions.setStringOrNull(updateStmt, 1, instance.lastname) - Functions.setStringOrNull(updateStmt, 2, instance.givenname) - Functions.setStringOrNull(updateStmt, 3, instance.mail) - updateStmt.setInt(4, instance.id) - return updateStmt.executeUpdate() > 0 - } - - override fun list(): List = super.list(listStmt) - - override fun find(id: Int): User? { - findStmt.setInt(1, id) - return super.find(findStmt) - } - - override fun findByUsername(username: String): User? { - findByUsernameStmt.setString(1, username) - return super.find(findByUsernameStmt) - } -} \ No newline at end of file