Merge branch 'master' of https://github.com/LukasNowy/SmartShopper
This commit is contained in:
commit
8c01024d99
@ -1,3 +1,4 @@
|
||||
var push = require('../push/push');
|
||||
const {
|
||||
query,
|
||||
nonQuery
|
||||
@ -11,8 +12,8 @@ const stringSimilarity = require('string-similarity');
|
||||
|
||||
async function updateUser(uid, mid, name, picture, email) {
|
||||
try {
|
||||
await nonQuery('INSERT INTO "User" (username, message_id, name, picture, email) VALUES ($1, $2, $3, $4, $5);', [uid, mid, name, picture, email]);
|
||||
|
||||
await nonQuery('INSERT INTO "User" (username, name, picture, email, message_id) VALUES ($1, $2, $3, $4, $5);', [uid, name, picture, email, mid]);
|
||||
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
@ -20,8 +21,8 @@ async function updateUser(uid, mid, name, picture, email) {
|
||||
|
||||
async function getmessageids(sl_id) {
|
||||
try {
|
||||
let members = query('SELECT * FROM "Shoppinglist_member" WHERE sl_id = $1;', [sl_id]);
|
||||
let admin = query('SELECT * FROM "Shoppinglist_admin" WHERE sl_id = $1;', [sl_id]);
|
||||
let members = await query('SELECT row_to_json("User") AS obj FROM "Shoppinglist_member" JOIN "User" USING (username) WHERE sl_id = $1;', [sl_id]);
|
||||
let admin = await query('SELECT row_to_json("User") AS obj FROM "Shoppinglist_admin" JOIN "User" USING (username) WHERE sl_id = $1;', [sl_id]);
|
||||
return users_to_array(admin, members);
|
||||
|
||||
} catch (error) {
|
||||
@ -193,6 +194,7 @@ async function addGroup(sl_id, name, color, hidden) {
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
push.sendMultiplePush(await getmessageids(sl_id), "Gruppe wurde hinzugefügt!", "Die Gruppe " + name + " wurde hinzugefügt!");
|
||||
}
|
||||
|
||||
//add item into group
|
||||
@ -204,6 +206,7 @@ async function addItem(group_id, sl_id, name, count) {
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
push.sendMultiplePush(await getmessageids(sl_id), "Item wurde hinzugefügt!", "Das Item " + name + " wurde hinzugefügt!");
|
||||
}
|
||||
|
||||
//Edit Group
|
||||
@ -226,6 +229,8 @@ async function editGroup(sl_id, group_id, name, color, hidden) {
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
|
||||
push.sendMultiplePush(await getmessageids(sl_id), "Gruppe wurde bearbeitet!", "Die Gruppe " + name + " wurde bearbeitet!");
|
||||
}
|
||||
|
||||
//Edit Item
|
||||
@ -245,6 +250,7 @@ async function editItem(sl_id, group_id, item_id, name, count) {
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
push.sendMultiplePush(await getmessageids(sl_id), "Item wurde bearbeitet!", "Das Item " + name + " wurde bearbeitet!");
|
||||
}
|
||||
|
||||
//Delete Group
|
||||
@ -259,6 +265,8 @@ async function deleteGroup(group_id, sl_id) {
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
|
||||
push.sendMultiplePush(await getmessageids(sl_id), "Gruppe wurde gelöscht!", "Die Gruppe " + name + " wurde gelöscht!");
|
||||
}
|
||||
|
||||
//Delete Item
|
||||
@ -269,6 +277,7 @@ async function deleteItem(item_id, group_id, sl_id) {
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
}
|
||||
push.sendMultiplePush(await getmessageids(sl_id), "Item wurde gelöscht!", "Das Item " + name + " wurde gelöscht!");
|
||||
}
|
||||
|
||||
//Move to Done Purchases (delete items from shoppinglist & move into done_purchases table)
|
||||
@ -294,18 +303,22 @@ async function moveDoneItems(uid, sl_id, billcontent) {
|
||||
|
||||
today = mm + '/' + dd + '/' + yyyy;
|
||||
|
||||
//Insert Into Done Purchases Table
|
||||
for (let item of removeableItems) {
|
||||
await nonQuery('INSERT INTO "Done_Purchase" (purchased_item_id, username, name, date, count) VALUES($1,$2,$3,$4,$5);',
|
||||
[generate_item_id(), uid, item.name, today, 1]);
|
||||
[generate_item_id(), uid, item.item.name, today, item.count]);
|
||||
|
||||
}
|
||||
|
||||
//Update count From Item Table
|
||||
for (let item of removeableItems) {
|
||||
await nonQuery('DELETE FROM "Item" WHERE item_id = $1 AND group_id = $2 AND sl_id = $3;', [item.item_id, item.group_id, item.sl_id]);
|
||||
console.log(item);
|
||||
|
||||
await nonQuery('UPDATE "Item" SET count = count - $4 WHERE item_id = $1 AND group_id = $2 AND sl_id = $3;', [item.item.item_id, item.item.group_id, item.item.sl_id, item.count]);
|
||||
}
|
||||
|
||||
//Chech if item count = 0 and delete
|
||||
|
||||
await nonQuery('DELETE FROM "Item" WHERE count = 0;')
|
||||
|
||||
return "done"
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
@ -497,10 +510,10 @@ function generateInviteLink() {
|
||||
function users_to_array(admin, members) {
|
||||
let users = [];
|
||||
|
||||
users.push(admin.username);
|
||||
users.push(admin[0].message_id);
|
||||
|
||||
for (let item of members) {
|
||||
users.push(item.username);
|
||||
users.push(item.message_id);
|
||||
}
|
||||
|
||||
return users;
|
||||
@ -513,17 +526,14 @@ function compareData(listitems, doneitems) {
|
||||
let output = [];
|
||||
|
||||
for (let item of listitems) {
|
||||
if (doneitems.includes(item.name)) {
|
||||
|
||||
if (probability(item.name, doneitems).best > 0.6) {
|
||||
output.push({item: item, count: probability(item.name, doneitems).count});
|
||||
} else if (probability(item.name.toUpperCase(), doneitems.toUpperCase()).best > 0.6) {
|
||||
output.push({item: item, count: probability(item.name, doneitems).count});
|
||||
output.push(item);
|
||||
} else if (doneitems.toUpperCase().includes(item.name.toUpperCase())) {
|
||||
output.push(item);
|
||||
} else if (doneitems.toLowerCase().includes(item.name.toLowerCase())) {
|
||||
output.push(item);
|
||||
} else if (probability(item.name, doneitems) > 0.6) {
|
||||
output.push(item);
|
||||
} else if (probability(item.name.toUpperCase(), doneitems.toUpperCase()) > 0.6) {
|
||||
output.push(item);
|
||||
} else if (probability(item.name.toLowerCase(), doneitems.toLowerCase()) > 0.6) {
|
||||
} else if (probability(item.name.toLowerCase(), doneitems.toLowerCase()).best > 0.6) {
|
||||
output.push({item: item, count: probability(item.name, doneitems).count});
|
||||
output.push(item);
|
||||
}
|
||||
}
|
||||
@ -532,19 +542,33 @@ function compareData(listitems, doneitems) {
|
||||
}
|
||||
|
||||
function probability(cur_item, data) {
|
||||
|
||||
let best = 0;
|
||||
|
||||
let pos;
|
||||
let count = 0;
|
||||
let numbers = "123456789";
|
||||
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
|
||||
let prob = stringSimilarity.compareTwoStrings(cur_item, data.slice(i, i + cur_item.length));
|
||||
|
||||
if (prob > best) {
|
||||
best = prob;
|
||||
pos = i;
|
||||
}
|
||||
}
|
||||
|
||||
return best;
|
||||
for(let i = pos; i >= 0; i--) {
|
||||
if(numbers.includes(data.charAt(i)) == true) {
|
||||
count = data.charAt(i);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return {
|
||||
best: best, count: count
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
@ -346,7 +346,12 @@ function Detail() {
|
||||
`);
|
||||
for (let x = 0; x < el.content.length; x++) {
|
||||
const el2 = el.content[x]
|
||||
$(`.${el.name}`).append(`<div class="collapse" id="${el.name}"><ul><li>${el2.count}x ${el2.name}</li></ul></div>`);
|
||||
$(`.${el.name}`).append(`<div class="collapse" id="${el.name}">
|
||||
<div class="card itemcard" style="background-color: transparent; ">
|
||||
<div class="card-body">
|
||||
${el2.name}${el2.count}
|
||||
</div>
|
||||
</div>`);
|
||||
}
|
||||
}
|
||||
lala();
|
||||
|
@ -22,7 +22,7 @@ function checkAuth() {
|
||||
console.error("Get id token client error: ", error)
|
||||
});
|
||||
} catch {
|
||||
console.error("checkAuth error: ")
|
||||
console.error("checkAuth error: ");
|
||||
}
|
||||
|
||||
// document.getElementById("loginbutton").style.display = "none";
|
||||
@ -31,8 +31,7 @@ function checkAuth() {
|
||||
// document.getElementById("loginbutton").style.display = "block";
|
||||
console.log("Check Auth error", user)
|
||||
}
|
||||
})
|
||||
var user = firebase.auth().currentUser;
|
||||
});
|
||||
}
|
||||
window.onload = function () {
|
||||
checkAuth();
|
||||
|
@ -94,4 +94,8 @@ button:focus{
|
||||
.btn:focus, .btn:active {
|
||||
outline: none !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
.itemcard{
|
||||
height: 2%;
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
|
||||
var admin = require('firebase-admin');
|
||||
|
||||
function sendPush(msgtoken, title, text){
|
||||
var message = {
|
||||
@ -9,7 +9,7 @@ function sendPush(msgtoken, title, text){
|
||||
token: msgtoken
|
||||
};
|
||||
|
||||
firebaseAdmin.messaging().send(message)
|
||||
admin.messaging().send(message)
|
||||
.then(function(response) {
|
||||
// See the MessagingDevicesResponse reference documentation for
|
||||
// the contents of response.
|
||||
@ -20,6 +20,12 @@ function sendPush(msgtoken, title, text){
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function sendMultiplePush(message_ids, title, text){
|
||||
for(var i = 0; i < message_ids.length; i++){
|
||||
sendPush(message_ids[i], title, text);
|
||||
}
|
||||
}
|
||||
module.exports = {
|
||||
sendPush
|
||||
sendPush,sendMultiplePush
|
||||
}
|
@ -17,6 +17,7 @@ var firebaseAdmin = admin.initializeApp({
|
||||
|
||||
//Push
|
||||
router.get('/push/:msgtoken/:message/:title', function (req, res, next) {
|
||||
|
||||
push.sendPush(req.params.msgtoken, req.params.title, req.params.message);
|
||||
var sender = "Message Token: " + req.params.msgtoken + " Message: " + req.params.message + " Title: " + req.params.title;
|
||||
res.status(200).send(sender);
|
||||
|
@ -16,9 +16,9 @@
|
||||
|
||||
<input v-model="email" id="email" type="email">
|
||||
<input v-model="password" id="password" type="password">
|
||||
<button id="loginemailbutton" @click="loginemail()">Login with Email</button>
|
||||
<button id="loginemailbutton" @click="loginemail">Login with Email</button>
|
||||
|
||||
<button id="loginbutton" @click="login()">Login with google</button>
|
||||
<button id="loginbutton" @click="login">Login with google</button>
|
||||
|
||||
<a href="/registrieren"><button>Jetzt mit Email und Passwort Registrieren!</button></a>
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user