| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- import { DB } from "$sqlite/mod.ts";
- function prepareDB(tableName: string) {
- const db = new DB("postdown.db");
- switch (tableName) {
- case "User":
- db.execute(`
- CREATE TABLE IF NOT EXISTS user (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- name VARCHAR(128),
- email VARCHAR(128),
- password TEXT
- )
- `);
- break;
- case "Token":
- db.execute(`
- CREATE TABLE IF NOT EXISTS session (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- user_id INTEGER,
- token VARCHAR(128),
- )
- `);
- break;
- }
- return db;
- }
- export function find(
- tableName: string,
- queryObject: { [key: string]: string | number }
- ) {
- const db = prepareDB(tableName);
- const queryConditions = Object.keys(queryObject).map((queryKey) =>
- typeof queryObject[queryKey] === "number"
- ? `${queryKey}=${queryObject[queryKey]}`
- : `${queryKey}="${queryObject[queryKey]}"`
- );
- return db.query(
- `SELECT * FROM ${tableName.toLowerCase()} WHERE ${queryConditions.join(
- " AND "
- )}`
- );
- }
|