micro365/database-calls/db.mjs

36 lines
875 B
JavaScript
Raw Normal View History

2023-08-06 18:36:24 +00:00
import Knex from 'knex'
2023-08-12 10:05:24 +00:00
import logger from '../logger.mjs'
2023-08-12 10:41:36 +00:00
import { isoDate } from "../utilities.mjs"
2023-08-06 18:36:24 +00:00
export const db = Knex({
2023-08-12 10:41:36 +00:00
client: 'sqlite3', // or 'better-sqlite3'
connection: {
filename: "data/database"
},
useNullAsDefault: true
})
2023-08-06 18:36:24 +00:00
2023-08-12 10:41:36 +00:00
export const getWords = async () => {
const childLogger = logger.child({ db })
2023-08-11 12:40:19 +00:00
childLogger.trace("getWords called")
2023-08-12 10:41:36 +00:00
return db
2023-08-06 18:36:24 +00:00
.select("word")
.from("dictionary")
}
2023-08-12 10:41:36 +00:00
export const valueExistsInTable = async (table,column,value) =>{
const number = await db(table)
.count('* as count')
.where(column, value)
.catch(error => { throw error })
return number[0].count > 0
}
export const todaysPromptAlreadyPublished = async () => {
return valueExistsInTable('published','date',isoDate())
}
export const wordIsAlreadyInBuffer = async (word) => {
return valueExistsInTable('buffer','word',word)
}