mcTelegramBot/database.js

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)
}
})
})