micro365/database-calls/getAcceptablePrompts.mjs

30 lines
829 B
JavaScript
Raw Normal View History

2023-08-12 10:05:24 +00:00
import logger from "../logger.mjs"
2023-08-11 22:18:09 +00:00
import { db } from "./db.mjs"
2023-08-12 10:05:24 +00:00
import config from "../config.mjs"
2023-08-11 22:18:09 +00:00
const blocklist = db.union([
db('bad_words').select('word'),
db('medical_dictionary').select('word'),
db('published').select('word')
])
export default async () => {
2023-08-12 09:43:37 +00:00
logger.trace("getAcceptablePrompt called")
2023-08-12 14:55:25 +00:00
try {
return db('dictionary')
2023-08-11 22:18:09 +00:00
.select('*')
.where({
derivative: 0,
scientific: 0,
})
2023-08-12 09:43:37 +00:00
.andWhere('count', '<', config.maxCount)
.andWhere('count', '>', config.minCount)
2023-08-11 22:18:09 +00:00
.andWhere('word', 'not in', blocklist)
.whereRaw('length(word) > 3')
.whereNotNull('pronunciation')
.orderByRaw('count desc')
2023-08-12 14:55:25 +00:00
} catch (error) {
logger.error("getAcceptablePrompts failed!")
throw error
}
2023-08-11 22:18:09 +00:00
}