2018-11-14 00:19:07 +01:00

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
}