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