const express = require('express');
const bodyParser = require('body-parser');
const engine = require('ejs-mate');
const Datastore = require('@google-cloud/datastore');
var app = express();
app.set('trust proxy', true);
app.use(express.static(__dirname + '/public'));
app.engine('ejs', engine);
app.set('view engine', 'ejs');
app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}));
const datastore = Datastore();
app.get('/', (req, res)=>{
res.render('home');
});
app.get('/adduser', (req, res)=>{
res.render('adduser');
});
//WORKS
app.post('/adduserpost', (req, res) => {
const user = {
timestamp: new Date,
name: req.body.name_field,
girl: req.body.girl_field,
car: req.body.car_field
}
datastore.save({
key: datastore.key('usersTable'),
data: user
}).then(() => {
res.redirect('/');
}).catch((err) => {
res.redirect('/');
});
});
app.get('/getuser', (req, res) => {
res.render('getuser');
});
//DOESN'T WORK
app.post('/getuserpost', (req, res) => {
const query = datastore.createQuery('usersTable').filter('girl', req.body.girl_field).order('timestamp', { descending: true }).limit(10);
datastore.runQuery(query).then((results) => {
const entities = results[0];
res.json(entities[0]);
});
});
//WORKS
app.get('/getuserget', (req, res) => {
const query = datastore.createQuery('usersTable').order('timestamp', { descending: true }).limit(10);
datastore.runQuery(query).then((results) => {
const entities = results[0];
res.json(entities[0]);
});
});
app.get('/deleteuser', (req, res) => {
res.render('deleteuser');
});
//WORKS
app.post('/deleteuserpost', (req, res) => {
const query = datastore.createQuery('usersTable').filter('car', req.body.car_field);
datastore.runQuery(query).then((results) => {
const entities = results[0];
datastore.delete(entities[0][datastore.KEY], (err) => {
if (!err) {
res.redirect('/');
}
});
});
});
const PORT = process.env.PORT || 8080;
app.listen(PORT, (err) => {
if(err){
console.log(err);
}else{
console.log("Running...");
}
});