grocery list route

This commit is contained in:
Mikayla Dobson
2022-11-19 13:56:35 -06:00
parent 2583163fbb
commit 45f3584af0
5 changed files with 133 additions and 8 deletions

View File

@@ -3,18 +3,73 @@ import pool from "../db";
export class GroceryList {
async getAll() {
try {
const statement = 'SELECT * FROM recipin.grocerylist';
const result = await pool.query(statement);
if (result.rows.length) return result.rows;
return null;
} catch (e: any) {
throw new Error(e);
}
}
async getOne(id: string) {
try {
const statement = `SELECT * FROM recipin.grocerylist WHERE id = $1`
const result = await pool.query(statement, [id]);
if (result.rows.length) return result.rows[0];
return null;
} catch (e: any) {
throw new Error(e);
}
}
async getByUserID(userid: string) {
try {
const statement = `SELECT * FROM recipin.grocerylist WHERE ownerid = $1`
const result = await pool.query(statement, [userid]);
if (result.rows.length) return result.rows;
return null;
} catch (e: any) {
throw new Error(e);
}
}
async post(data: IGroceryList) {
try {
// assumes that any new list will be active on creation
const statement = `
INSERT INTO recipin.grocerylist
(name, active, ownerid)
VALUES ($1, true, $2)
RETURNING *;
`
const values = [data.name, data.ownerid];
const result = await pool.query(statement, values);
if (result.rows.length) return result.rows[0];
return null;
} catch (e: any) {
throw new Error(e);
}
}
async put(id: string, data: IGroceryList) {
try {
const statement = `
UPDATE recipin.grocerylist
SET name = $1,
active = $2,
ownerid = $3
WHERE id = $4
RETURNING *
`
const values = [data.name, data.active, data.ownerid, id];
const result = await pool.query(statement, values);
if (result.rows.length) return result.rows[0];
return null;
} catch (e: any) {
throw new Error(e);
}
}
}