53 lines
1.3 KiB
JavaScript
53 lines
1.3 KiB
JavaScript
import sqlite from 'sqlite3'
|
|
import { currentTime } from './utility'
|
|
|
|
const db = new sqlite.Database('bot.db')
|
|
db.run(
|
|
`CREATE TABLE IF NOT EXISTS chats (
|
|
chatId INTEGER,
|
|
UNIQUE(chatId)
|
|
)`)
|
|
|
|
db.run(
|
|
`CREATE TABLE IF NOT EXISTS logouts (
|
|
displayName INTEGER,
|
|
lastLogoutTime DATETIME,
|
|
UNIQUE(displayName)
|
|
)`)
|
|
|
|
const run = (sql, params) => new Promise((resolve, reject) => {
|
|
db.run(sql, params, (err) => {
|
|
if (err) {
|
|
reject(err)
|
|
} else {
|
|
resolve()
|
|
}
|
|
})
|
|
})
|
|
|
|
export const saveChat = id => run(`INSERT OR IGNORE INTO chats (chatId) VALUES (?)`, [ id ])
|
|
export const getChats = () => new Promise((resolve, reject) => {
|
|
db.all('SELECT * FROM chats', [], (err, rows) => {
|
|
if (err) {
|
|
reject(err)
|
|
} else {
|
|
resolve(rows)
|
|
}
|
|
})
|
|
})
|
|
|
|
export const saveLogout = displayName => run(
|
|
`INSERT OR REPLACE INTO logouts (displayName, lastLogoutTime) VALUES (?, ?)`,
|
|
[ displayName, currentTime() ]
|
|
)
|
|
export const getLastLogoutTime = displayName => new Promise((resolve, reject) => {
|
|
db.get(`SELECT lastLogoutTime FROM logouts WHERE displayName = ?`, [ displayName ], (err, row) => {
|
|
if (err) {
|
|
reject(err)
|
|
} else {
|
|
console.log({ row })
|
|
resolve(row ? row.lastLogoutTime : null)
|
|
}
|
|
})
|
|
})
|