98 lines
2.2 KiB
JavaScript
98 lines
2.2 KiB
JavaScript
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
|
|
}
|