Sync
This commit is contained in:
@@ -13,7 +13,16 @@ function initDB() {
|
||||
banned_by TEXT,
|
||||
remote_ip TEXT,
|
||||
reason TEXT
|
||||
)`)
|
||||
)
|
||||
`)
|
||||
db.exec(`
|
||||
CREATE TABLE IF NOT EXISTS api_keys (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
key TEXT NOT NULL,
|
||||
delivered_by TEXT NOT NULL,
|
||||
delivered_at TEXT DEFAULT CURRENT_TIMESTAMP,
|
||||
)
|
||||
`)
|
||||
}
|
||||
|
||||
function banLauncher(last_minecraft_uuid, hardware_id, banned_by, remote_ip, reason) {
|
||||
@@ -56,9 +65,72 @@ function getBan(hardware_id) {
|
||||
return stmt.get(hardware_id)
|
||||
}
|
||||
|
||||
function isTokenValid(token) {
|
||||
const query = 'SELECT * FROM api_keys WHERE key = ?'
|
||||
const stmt = db.prepare(query)
|
||||
const result = stmt.get(token)
|
||||
return !!result
|
||||
}
|
||||
|
||||
function createToken(key, delivered_by) {
|
||||
const query = `
|
||||
INSERT INTO api_keys (key, delivered_by)
|
||||
VALUES (?, ?)
|
||||
`
|
||||
try {
|
||||
const stmt = db.prepare(query)
|
||||
stmt.run(key, delivered_by)
|
||||
return true
|
||||
} catch (error) {
|
||||
logger.error("[DATABASE] <CreateToken:Error>")
|
||||
logger.error(error)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
function revokeToken(key) {
|
||||
const query = `DELETE FROM api_keys WHERE key = ?`
|
||||
try {
|
||||
const stmt = db.prepare(query)
|
||||
const result = stmt.run(key)
|
||||
|
||||
if (result.changes === 0) {
|
||||
logger.log("[DATABASE] <RevokeToken:Warn>")
|
||||
logger.log(`No token with this key<${key}> exists`)
|
||||
}
|
||||
return true
|
||||
} catch (error) {
|
||||
logger.error("[DATABASE] <RevokeToken:Error>")
|
||||
logger.error(error)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
function regenerateToken(oldKey, newKey) {
|
||||
const query = `UPDATE api_keys SET key = ? WHERE key = ?`
|
||||
try {
|
||||
const stmt = db.prepare(query)
|
||||
const result = stmt.run(newKey, oldKey)
|
||||
|
||||
if (result.changes === 0) {
|
||||
logger.log("[DATABASE] <UpdateToken:Warn>")
|
||||
logger.log(`No token with this key<${oldKey}> exists`)
|
||||
}
|
||||
return true
|
||||
} catch (error) {
|
||||
logger.error("[DATABASE] <UpdateToken:Error>")
|
||||
logger.error(error)
|
||||
return false
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
initDB,
|
||||
getBan,
|
||||
banLauncher,
|
||||
unbanLauncher
|
||||
unbanLauncher,
|
||||
isTokenValid,
|
||||
createToken,
|
||||
revokeToken,
|
||||
regenerateToken
|
||||
}
|
||||
Reference in New Issue
Block a user