Skip to content

Instantly share code, notes, and snippets.

@rafaelhdr
Created April 10, 2018 20:45
Show Gist options
  • Save rafaelhdr/2c9883815d2072ee790c5f28675bb699 to your computer and use it in GitHub Desktop.
Save rafaelhdr/2c9883815d2072ee790c5f28675bb699 to your computer and use it in GitHub Desktop.
'use latest';
import bodyParser from 'body-parser';
import express from 'express';
import Webtask from 'webtask-tools';
import { MongoClient } from 'mongodb';
import { ObjectID } from 'mongodb';
const collection = 'tasks';
const server = express();
server.use(bodyParser.json());
server.use(bodyParser.urlencoded({ extended: true }));
server.post('/goal-answer', (req, res, next) => {
const { MONGO_URL } = req.webtaskContext.secrets;
const goalAccomplished = (parseInt(req.body.accomplished) == 1);
const user = String(req.body.user);
if (goalAccomplished) {
MongoClient.connect(MONGO_URL, (err, client) => {
const db = client.db("goal-reminder");
if (err) return next(err);
const task = String(req.body.task);
const insertData = {
user: user,
task: task
};
db.collection(collection).insertOne(insertData, (err, result) => {
if (err) {
client.close();
return next(err);
}
db.collection(collection).find({user:user}).toArray((err, docs) => {
client.close();
if (err) return next(err);
var tasks = "";
docs.forEach(function(doc) {
tasks += "\n<br />- " + doc.task;
});
const responseText = "Congratulations for completing " + String(docs.length) + " tasks:" + tasks;
res.status(200).send(responseText);
});
});
});
}
else {
MongoClient.connect(MONGO_URL, (err, client) => {
const db = client.db("goal-reminder");
const user = String(req.body.user);
db.collection(collection).remove({user: user}).then((err) => {
res.status(200).send("Ok! But I am sure tomorrow you will do better :)");
});
});
}
});
module.exports = Webtask.fromExpress(server);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment