internal change: make maxAttempts easier to specify

This commit is contained in:
hrj 2021-04-12 16:19:06 +05:30
parent 8840a13a8f
commit e8416ff70e

View File

@ -4,7 +4,7 @@ import lc.database.DBConn
import java.sql.Statement import java.sql.Statement
import java.sql.PreparedStatement import java.sql.PreparedStatement
class Statements(dbConn: DBConn) { class Statements(dbConn: DBConn, maxAttempts: Int) {
private val stmt = dbConn.getStatement() private val stmt = dbConn.getStatement()
@ -71,13 +71,14 @@ class Statements(dbConn: DBConn) {
) )
val tokenPstmt: PreparedStatement = dbConn.con.prepareStatement( val tokenPstmt: PreparedStatement = dbConn.con.prepareStatement(
"SELECT token " + s"""
"FROM challenge " + SELECT token
"WHERE attempted < 10 AND " + FROM challenge
"contentLevel = ? AND " + WHERE attempted < $maxAttempts AND
"contentType = ? AND " + contentLevel = ? AND
"contentInput = ? " + contentType = ? AND
"ORDER BY RAND() LIMIT 1" contentInput = ?
ORDER BY RAND() LIMIT 1"""
) )
val deleteAnswerPstmt: PreparedStatement = dbConn.con.prepareStatement( val deleteAnswerPstmt: PreparedStatement = dbConn.con.prepareStatement(
@ -85,9 +86,9 @@ class Statements(dbConn: DBConn) {
) )
val challengeGCPstmt: PreparedStatement = dbConn.con.prepareStatement( val challengeGCPstmt: PreparedStatement = dbConn.con.prepareStatement(
"DELETE FROM challenge " + s"""DELETE FROM challenge
"WHERE attempted >= 10 AND " + WHERE attempted >= $maxAttempts AND
"token NOT IN (SELECT token FROM mapId)" token NOT IN (SELECT token FROM mapId)"""
) )
val mapIdGCPstmt: PreparedStatement = dbConn.con.prepareStatement( val mapIdGCPstmt: PreparedStatement = dbConn.con.prepareStatement(
@ -110,5 +111,6 @@ class Statements(dbConn: DBConn) {
object Statements { object Statements {
private val dbConn: DBConn = new DBConn() private val dbConn: DBConn = new DBConn()
val tlStmts: ThreadLocal[Statements] = ThreadLocal.withInitial(() => new Statements(dbConn)) private val maxAttempts = 10
val tlStmts: ThreadLocal[Statements] = ThreadLocal.withInitial(() => new Statements(dbConn, maxAttempts))
} }