-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp.js
138 lines (97 loc) · 3.84 KB
/
app.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
/**
* Module dependencies.
*/
var bodyParser = require('body-parser');
var express = require('express');
var path = require('path');
var http = require('http');
var sendgrid = require("sendgrid")(process.env.SGUSER, process.env.SGKEY);
var Parse = require("parse/node").Parse;
Parse.initialize(process.env.PARSEAPPECLUB, process.env.PARSEJSECLUB);
var localStorage = require('localStorage');
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var email = new sendgrid.Email();
var app = express();
var router = express.Router();
// all environments
app.set('port', process.env.PORT || 3000);
app.set('view engine', 'ejs');
app.use(express.static(path.join(__dirname, 'public')));
app.use(bodyParser.urlencoded({'extended':'true'}));
app.use(bodyParser.json());
app.use(bodyParser.json({ type: 'application/vnd.api+json' }));
app.listen(process.env.PORT || 8080);
console.log("App listening on port 8080");
app.get('/', function(req,res) {
res.sendfile('./public/index.html');
});
app.get('/management', function(req, res) {
res.sendfile('./public/management.html');
});
app.post('/api/checkMember', function(req, res) {
var UserObject = Parse.Object.extend("UserObject");
var userObject = new UserObject();
var query = new Parse.Query(UserObject);
query.equalTo("pid", req.body.pid);
query.find({
success: function(users) {
if(users.length === 1) {
var user = users[0];
var timeCheck = Math.abs(new Date() - user.updatedAt);
if(timeCheck/1000 > 3600) {
user.increment("count");
user.save();
res.json({"memberExists" : true, "validEntry": true});
}
else {
res.json({"memberExists" : true, "validEntry": false});
}
}
else if(users.length === 0) {
res.json({"memberExists" : false});
}
else {
res.json({"memberExists" : false});
console.log("There's been an error");
}
},
error: function(error) {
console.log("Theres been an error");
}
});
});
app.post('/api/newMember', function(req, res) {
var UserObject = Parse.Object.extend("UserObject");
var userObject = new UserObject();
var email = new sendgrid.Email();
var subject = 'Welcome to E-Club, ' + req.body.first + '!';
var recipient = req.body.pid + '@vt.edu';
email.addTo(recipient);
email.setFrom('[email protected]');
email.setSubject(subject);
email.setHtml("Thanks for coming to the meeting today! To stay up to date with our events, sign up for the weekly newsletter here: http://www.vteclub.org/");
sendgrid.send(email);
userObject.save({pid : req.body.pid, count:1, first: req.body.first, last: req.body.last}).then(function(object) {
res.json({"memberCreated" : true});
});
});
app.get('/api/getMember/:mem', function(req,res) {
var UserObject = Parse.Object.extend("UserObject");
var userObject = new UserObject();
var query = new Parse.Query(UserObject);
query.equalTo("pid", req.params.mem);
query.find({
success: function(users) {
if(users.length === 1) {
var user = users[0];
res.json({"firstName": user.get("first"), "count": user.get("count")});
}
else {
console.log("Theres been an error");
}
},
error: function(error) {
console.log("Theres been an error");
}
});
});