const { query, nonQuery } = require("../db-config/postgresql-common"); //SELECT own shopping lists async function getShoppinglistsAdmin(username) { try { let result = await query('SELECT row_to_json("Shoppinglist") AS obj FROM "Shoppinglist" JOIN "Shoppinglist_admin" USING (sl_id) WHERE \ username = $1', [username]); return result; } catch (error) { console.error(error); } } //SELECT shared shopping lists async function getShoppinglistsShared(username) { try { let result = await query('SELECT row_to_json("Shoppinglist") AS obj FROM "Shoppinglist" JOIN "Shoppinglist_member" USING (sl_id) WHERE \ username = $1', [username]); console.log(result); return result; } catch (error) { console.error(error); } } //INSERT new Shoppinglist async function newShoppinglist(name, description, username) { //generate sl_id let sl_id = generate_sl_id(); //insert user if not exists try { await nonQuery('INSERT INTO "User" (username) VALUES ($1);', [username]); } catch (error) { console.error(error); } //insert shoppinglist try { await nonQuery('INSERT INTO "Shoppinglist" (sl_id, name, description) VALUES ($1, $2, $3);', [sl_id, name, description]); } catch (error) { console.error(error); } //insert admin try { await nonQuery('INSERT INTO "Shoppinglist_admin" (username, sl_id) VALUES ($1, $2);', [username, sl_id]); } catch (error) { console.error(error); } } async function generateUser() { //insert user try { await nonQuery('INSERT INTO "User" (username) VALUES ($1);', [username]); } catch (error) { console.error(error); } } //sl_id generieren function generate_sl_id() { var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; var output = ""; for(let i = 0; i < 8; i++) { output += possible.charAt(Math.floor(Math.random() * possible.length)); } return output; } module.exports = { getShoppinglistsAdmin, getShoppinglistsShared, newShoppinglist }