김예미

Enable webhook, Add Init code

1 node_modules 1 node_modules
2 -.idea/
3 -config/
...\ No newline at end of file ...\ No newline at end of file
......
1 -'use strict'; 1 +var express = require("express");
2 -let express = require("express"), 2 +var request = require("request");
3 - bodyParser= require("body-parser"), 3 +var bodyParser = require("body-parser");
4 - app = express(), 4 +var controller = require('./controller');
5 - config = require('config'),
6 - controller = require('./controller');
7 5
8 -app.use(bodyParser.urlencoded({ extended : false})); 6 +var app = express();
7 +app.use(bodyParser.urlencoded({extended: false}));
9 app.use(bodyParser.json()); 8 app.use(bodyParser.json());
9 +app.listen((process.env.PORT || 5000));
10 10
11 -let users = {}; 11 +// Server index page
12 - 12 +app.get("/", function (req, res) {
13 -app.listen(process.env.PORT || 8989, () => console.log('Example app listening on por 8989!')); 13 + res.send("Deployed!");
14 - 14 +});
15 -app.get('/', (req, res) => res.send('Hello World!'));
16 -
17 -
18 -// Adds support for GET requests to our webhook
19 -app.get('/webhook', (req, res) => {
20 -
21 - // Your verify token, Should be a random string.
22 - let VERIFY_TOKEN = config.get('facebook.page.verify_token');
23 -
24 - // Parse the query params
25 - let mode = req.query['hub.mode'];
26 - let token = req.query['hub.verify_token'];
27 - let challenge = req.query['hub.challenge'];
28 -
29 -
30 - // Checks if a token and mode is in the query string of the request
31 - if(mode && token) {
32 -
33 - // Checks the mode and token sent is correcct
34 - if (mode === 'subscribe' && token === VERIFY_TOKEN) {
35 -
36 - // Responds with the challenge token from the request
37 - console.log('WEBHOOK_VERIFIED');
38 - res.status(200).send(challenge);
39 15
40 - } else { 16 +// Facebook Webhook
41 - // Responds with '403 Forbidden' if verify tokens do not match 17 +// Used for verification
42 - res.sendStatus(403); 18 +app.get("/webhook", function (req, res) {
43 - } 19 + if (req.query["hub.verify_token"] === process.env.VERIFICATION_TOKEN) {
20 + console.log("Verified webhook");
21 + res.status(200).send(req.query["hub.challenge"]);
22 + } else {
23 + console.error("Verification failed. The tokens do not match.");
24 + res.sendStatus(403);
44 } 25 }
45 }); 26 });
46 27
28 +
47 // Creates the endpoint for our webhook 29 // Creates the endpoint for our webhook
48 app.post('/webhook', (req, res) => { 30 app.post('/webhook', (req, res) => {
49 31
...@@ -62,6 +44,7 @@ app.post('/webhook', (req, res) => { ...@@ -62,6 +44,7 @@ app.post('/webhook', (req, res) => {
62 // Get the sender PSID 44 // Get the sender PSID
63 let sender_psid = webhook_event.sender.id; 45 let sender_psid = webhook_event.sender.id;
64 console.log('Sender PSID: ' + sender_psid); 46 console.log('Sender PSID: ' + sender_psid);
47 +
65 48
66 // Check if the event is a message or postback and 49 // Check if the event is a message or postback and
67 // pass the event to the appropriate handler function 50 // pass the event to the appropriate handler function
...@@ -71,6 +54,7 @@ app.post('/webhook', (req, res) => { ...@@ -71,6 +54,7 @@ app.post('/webhook', (req, res) => {
71 controller.handlePostback(sender_psid, webhook_event.postback); 54 controller.handlePostback(sender_psid, webhook_event.postback);
72 } 55 }
73 }); 56 });
57 +
74 // Returns a '200 OK' response to all requests 58 // Returns a '200 OK' response to all requests
75 res.status(200).send('EVENT_RECEIVED'); 59 res.status(200).send('EVENT_RECEIVED');
76 } else { 60 } else {
...@@ -79,4 +63,3 @@ app.post('/webhook', (req, res) => { ...@@ -79,4 +63,3 @@ app.post('/webhook', (req, res) => {
79 } 63 }
80 }); 64 });
81 65
82 -
......
1 let request = require('request'), 1 let request = require('request'),
2 - template = require('./template'), 2 + template = require('./template');
3 - config = require('config');
4 3
5 // Views - handle Message, handle Postback 4 // Views - handle Message, handle Postback
6 5
...@@ -9,17 +8,13 @@ exports.handleMessage = (sender_psid, received_message) => { ...@@ -9,17 +8,13 @@ exports.handleMessage = (sender_psid, received_message) => {
9 let response; 8 let response;
10 9
11 if(received_message.text){ 10 if(received_message.text){
12 - 11 + response = template.messageTemplate();
13 - // Create the payload for a basic text message
14 - response = template.askTemplate()
15 } 12 }
16 13
17 // Sends the reponse message 14 // Sends the reponse message
18 callSendAPI(sender_psid, response); 15 callSendAPI(sender_psid, response);
19 } 16 }
20 17
21 -
22 -// Handle postback(=button) events
23 exports.handlePostback = (sender_psid, received_postback) => { 18 exports.handlePostback = (sender_psid, received_postback) => {
24 let response; 19 let response;
25 20
...@@ -27,45 +22,39 @@ exports.handlePostback = (sender_psid, received_postback) => { ...@@ -27,45 +22,39 @@ exports.handlePostback = (sender_psid, received_postback) => {
27 let payload = received_postback.payload; 22 let payload = received_postback.payload;
28 23
29 // Set the response based on the postback payload 24 // Set the response based on the postback payload
30 - if (payload === 'CAT_PICS') { 25 + if(payload === 'Greeting'){
31 - response = template.imageTemplate('cats', sender_psid); 26 + response = template.greetingTemplate();
32 - callSendAPI(sender_psid, response, function(){ 27 + callSendAPI(sender_psid, response);
33 - callSendAPI(sender_psid, template.askTemplate('Show me more')); 28 + }else if(payload === 'CHOICE_BY_PROF'){
34 - }); 29 + response = template.choicebyprofTemplate();
35 - } else if (payload === 'DOG_PICS') { 30 + callSendAPI(sender_psid, response);
36 - response = template.imageTemplate('dogs', sender_psid); 31 + }else if(payload === 'CHOICE_BY_LECT'){
37 - callSendAPI(sender_psid, response, function(){ 32 + response = template.choicebylectTemplate();
38 - callSendAPI(sender_psid, template.askTemplate('Show me more')); 33 + callSendAPI(sender_psid, response);
39 - }); 34 + }else if(payload === 'HELP'){
40 - } else if(payload === 'GET_STARTED'){ 35 + response = template.help();
41 - response = template.greetingTemplate(); 36 + callSendAPI(sender_psid, response);
42 - callSendAPI(sender_psid, response); 37 + }else if(payload.match('rate')){
38 + response = template.rate(payload);
39 + callSendAPI(sender_psid, response);
43 } 40 }
44 - // Send the message to acknowledge the postback
45 } 41 }
46 42
43 +
47 // Sends response messages via the Send API 44 // Sends response messages via the Send API
48 const callSendAPI = (sender_psid, response, cb = null) => { 45 const callSendAPI = (sender_psid, response, cb = null) => {
49 - // Construct the message body
50 - let request_body = {
51 - "recipient": {
52 - "id": sender_psid
53 - },
54 - "message": response
55 - };
56 46
57 // Send the HTTP request to the Messenger Platform 47 // Send the HTTP request to the Messenger Platform
58 request({ 48 request({
59 - "uri": "https://graph.facebook.com/v2.6/me/messages", 49 + "url": "https://graph.facebook.com/v2.6/me/messages",
60 - "qs": { "access_token": config.get('facebook.page.access_token') }, 50 + "qs": { "access_token": process.env.PAGE_ACCESS_TOKEN },
61 "method": "POST", 51 "method": "POST",
62 - "json": request_body 52 + "json": {
53 + recipient: {id: sender_psid},
54 + message: response
55 + }
63 }, (err, res, body) => { 56 }, (err, res, body) => {
64 - if (!err) { 57 + if (err) {
65 - if(cb){
66 - cb();
67 - }
68 - } else {
69 console.error("Unable to send message:" + err); 58 console.error("Unable to send message:" + err);
70 } 59 }
71 }); 60 });
......
...@@ -13,14 +13,6 @@ ...@@ -13,14 +13,6 @@
13 "negotiator": "0.6.2" 13 "negotiator": "0.6.2"
14 } 14 }
15 }, 15 },
16 - "agent-base": {
17 - "version": "4.2.1",
18 - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
19 - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
20 - "requires": {
21 - "es6-promisify": "^5.0.0"
22 - }
23 - },
24 "ajv": { 16 "ajv": {
25 "version": "6.10.0", 17 "version": "6.10.0",
26 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz", 18 "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.0.tgz",
...@@ -50,10 +42,13 @@ ...@@ -50,10 +42,13 @@
50 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 42 "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
51 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" 43 "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
52 }, 44 },
53 - "async-limiter": { 45 + "async": {
54 - "version": "1.0.0", 46 + "version": "2.6.2",
55 - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", 47 + "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
56 - "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" 48 + "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
49 + "requires": {
50 + "lodash": "^4.17.11"
51 + }
57 }, 52 },
58 "asynckit": { 53 "asynckit": {
59 "version": "0.4.0", 54 "version": "0.4.0",
...@@ -70,11 +65,6 @@ ...@@ -70,11 +65,6 @@
70 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz", 65 "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
71 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==" 66 "integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
72 }, 67 },
73 - "balanced-match": {
74 - "version": "1.0.0",
75 - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
76 - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
77 - },
78 "bcrypt-pbkdf": { 68 "bcrypt-pbkdf": {
79 "version": "1.0.2", 69 "version": "1.0.2",
80 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", 70 "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
...@@ -83,10 +73,10 @@ ...@@ -83,10 +73,10 @@
83 "tweetnacl": "^0.14.3" 73 "tweetnacl": "^0.14.3"
84 } 74 }
85 }, 75 },
86 - "bignumber.js": { 76 + "bluebird": {
87 - "version": "7.2.1", 77 + "version": "3.5.1",
88 - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-7.2.1.tgz", 78 + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz",
89 - "integrity": "sha512-S4XzBk5sMB+Rcb/LNcpzXr57VRTxgAvaAEDAl1AwRx27j00hT84O6OkteE7u8UB3NuaaygCRrEpqox4uDOrbdQ==" 79 + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA=="
90 }, 80 },
91 "body-parser": { 81 "body-parser": {
92 "version": "1.19.0", 82 "version": "1.19.0",
...@@ -105,24 +95,10 @@ ...@@ -105,24 +95,10 @@
105 "type-is": "~1.6.17" 95 "type-is": "~1.6.17"
106 } 96 }
107 }, 97 },
108 - "brace-expansion": { 98 + "bson": {
109 - "version": "1.1.11",
110 - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
111 - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
112 - "requires": {
113 - "balanced-match": "^1.0.0",
114 - "concat-map": "0.0.1"
115 - }
116 - },
117 - "buffer-from": {
118 "version": "1.1.1", 99 "version": "1.1.1",
119 - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", 100 + "resolved": "https://registry.npmjs.org/bson/-/bson-1.1.1.tgz",
120 - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" 101 + "integrity": "sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg=="
121 - },
122 - "buffer-shims": {
123 - "version": "1.0.0",
124 - "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
125 - "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E="
126 }, 102 },
127 "bytes": { 103 "bytes": {
128 "version": "3.1.0", 104 "version": "3.1.0",
...@@ -142,22 +118,6 @@ ...@@ -142,22 +118,6 @@
142 "delayed-stream": "~1.0.0" 118 "delayed-stream": "~1.0.0"
143 } 119 }
144 }, 120 },
145 - "concat-map": {
146 - "version": "0.0.1",
147 - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
148 - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
149 - },
150 - "concat-stream": {
151 - "version": "1.6.2",
152 - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz",
153 - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==",
154 - "requires": {
155 - "buffer-from": "^1.0.0",
156 - "inherits": "^2.0.3",
157 - "readable-stream": "^2.2.2",
158 - "typedarray": "^0.0.6"
159 - }
160 - },
161 "content-disposition": { 121 "content-disposition": {
162 "version": "0.5.3", 122 "version": "0.5.3",
163 "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", 123 "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
...@@ -217,11 +177,6 @@ ...@@ -217,11 +177,6 @@
217 "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", 177 "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
218 "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" 178 "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
219 }, 179 },
220 - "each-series": {
221 - "version": "1.0.0",
222 - "resolved": "https://registry.npmjs.org/each-series/-/each-series-1.0.0.tgz",
223 - "integrity": "sha1-+Ibmxm39sl7x/nNWQUbuXLR4r8s="
224 - },
225 "ecc-jsbn": { 180 "ecc-jsbn": {
226 "version": "0.1.2", 181 "version": "0.1.2",
227 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", 182 "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
...@@ -236,37 +191,11 @@ ...@@ -236,37 +191,11 @@
236 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", 191 "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
237 "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" 192 "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
238 }, 193 },
239 - "emoji-regex": {
240 - "version": "6.5.1",
241 - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-6.5.1.tgz",
242 - "integrity": "sha512-PAHp6TxrCy7MGMFidro8uikr+zlJJKJ/Q6mm2ExZ7HwkyR9lSVFfE3kt36qcwa24BQL7y0G9axycGjK1A/0uNQ=="
243 - },
244 - "emoji-strip": {
245 - "version": "1.0.1",
246 - "resolved": "https://registry.npmjs.org/emoji-strip/-/emoji-strip-1.0.1.tgz",
247 - "integrity": "sha1-z5OQU1BEEhiIQgrk20NtA6bMRZ0=",
248 - "requires": {
249 - "emoji-regex": "^6.1.3"
250 - }
251 - },
252 "encodeurl": { 194 "encodeurl": {
253 "version": "1.0.2", 195 "version": "1.0.2",
254 "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", 196 "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
255 "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=" 197 "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
256 }, 198 },
257 - "es6-promise": {
258 - "version": "4.2.6",
259 - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.6.tgz",
260 - "integrity": "sha512-aRVgGdnmW2OiySVPUC9e6m+plolMAJKjZnQlCwNSuK5yQ0JN61DZSO1X1Ufd1foqWRAlig0rhduTCHe7sVtK5Q=="
261 - },
262 - "es6-promisify": {
263 - "version": "5.0.0",
264 - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
265 - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
266 - "requires": {
267 - "es6-promise": "^4.0.3"
268 - }
269 - },
270 "escape-html": { 199 "escape-html": {
271 "version": "1.0.3", 200 "version": "1.0.3",
272 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", 201 "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
...@@ -278,9 +207,9 @@ ...@@ -278,9 +207,9 @@
278 "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=" 207 "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
279 }, 208 },
280 "express": { 209 "express": {
281 - "version": "4.17.0", 210 + "version": "4.17.1",
282 - "resolved": "https://registry.npmjs.org/express/-/express-4.17.0.tgz", 211 + "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
283 - "integrity": "sha512-1Z7/t3Z5ZnBG252gKUPyItc4xdeaA0X934ca2ewckAsVsw9EG71i++ZHZPYnus8g/s5Bty8IMpSVEuRkmwwPRQ==", 212 + "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
284 "requires": { 213 "requires": {
285 "accepts": "~1.3.7", 214 "accepts": "~1.3.7",
286 "array-flatten": "1.1.1", 215 "array-flatten": "1.1.1",
...@@ -319,17 +248,6 @@ ...@@ -319,17 +248,6 @@
319 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", 248 "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
320 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" 249 "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
321 }, 250 },
322 - "extract-zip": {
323 - "version": "1.6.7",
324 - "resolved": "https://registry.npmjs.org/extract-zip/-/extract-zip-1.6.7.tgz",
325 - "integrity": "sha1-qEC0uK9kAyZMjbV/Txp0Mz74H+k=",
326 - "requires": {
327 - "concat-stream": "1.6.2",
328 - "debug": "2.6.9",
329 - "mkdirp": "0.5.1",
330 - "yauzl": "2.4.1"
331 - }
332 - },
333 "extsprintf": { 251 "extsprintf": {
334 "version": "1.3.0", 252 "version": "1.3.0",
335 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 253 "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
...@@ -345,14 +263,6 @@ ...@@ -345,14 +263,6 @@
345 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 263 "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz",
346 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" 264 "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
347 }, 265 },
348 - "fd-slicer": {
349 - "version": "1.0.1",
350 - "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz",
351 - "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=",
352 - "requires": {
353 - "pend": "~1.2.0"
354 - }
355 - },
356 "finalhandler": { 266 "finalhandler": {
357 "version": "1.1.2", 267 "version": "1.1.2",
358 "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", 268 "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
...@@ -392,11 +302,6 @@ ...@@ -392,11 +302,6 @@
392 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", 302 "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
393 "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=" 303 "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
394 }, 304 },
395 - "fs.realpath": {
396 - "version": "1.0.0",
397 - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
398 - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
399 - },
400 "getpass": { 305 "getpass": {
401 "version": "0.1.7", 306 "version": "0.1.7",
402 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 307 "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
...@@ -405,19 +310,6 @@ ...@@ -405,19 +310,6 @@
405 "assert-plus": "^1.0.0" 310 "assert-plus": "^1.0.0"
406 } 311 }
407 }, 312 },
408 - "glob": {
409 - "version": "7.1.4",
410 - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
411 - "integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
412 - "requires": {
413 - "fs.realpath": "^1.0.0",
414 - "inflight": "^1.0.4",
415 - "inherits": "2",
416 - "minimatch": "^3.0.4",
417 - "once": "^1.3.0",
418 - "path-is-absolute": "^1.0.0"
419 - }
420 - },
421 "har-schema": { 313 "har-schema": {
422 "version": "2.0.0", 314 "version": "2.0.0",
423 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 315 "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
...@@ -454,30 +346,6 @@ ...@@ -454,30 +346,6 @@
454 "sshpk": "^1.7.0" 346 "sshpk": "^1.7.0"
455 } 347 }
456 }, 348 },
457 - "https-proxy-agent": {
458 - "version": "2.2.1",
459 - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
460 - "integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
461 - "requires": {
462 - "agent-base": "^4.1.0",
463 - "debug": "^3.1.0"
464 - },
465 - "dependencies": {
466 - "debug": {
467 - "version": "3.2.6",
468 - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
469 - "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
470 - "requires": {
471 - "ms": "^2.1.1"
472 - }
473 - },
474 - "ms": {
475 - "version": "2.1.1",
476 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
477 - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
478 - }
479 - }
480 - },
481 "iconv-lite": { 349 "iconv-lite": {
482 "version": "0.4.24", 350 "version": "0.4.24",
483 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", 351 "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
...@@ -486,15 +354,6 @@ ...@@ -486,15 +354,6 @@
486 "safer-buffer": ">= 2.1.2 < 3" 354 "safer-buffer": ">= 2.1.2 < 3"
487 } 355 }
488 }, 356 },
489 - "inflight": {
490 - "version": "1.0.6",
491 - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
492 - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
493 - "requires": {
494 - "once": "^1.3.0",
495 - "wrappy": "1"
496 - }
497 - },
498 "inherits": { 357 "inherits": {
499 "version": "2.0.3", 358 "version": "2.0.3",
500 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 359 "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
...@@ -510,11 +369,6 @@ ...@@ -510,11 +369,6 @@
510 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 369 "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
511 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 370 "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
512 }, 371 },
513 - "isarray": {
514 - "version": "1.0.0",
515 - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
516 - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
517 - },
518 "isstream": { 372 "isstream": {
519 "version": "0.1.2", 373 "version": "0.1.2",
520 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 374 "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
...@@ -551,11 +405,27 @@ ...@@ -551,11 +405,27 @@
551 "verror": "1.10.0" 405 "verror": "1.10.0"
552 } 406 }
553 }, 407 },
408 + "kareem": {
409 + "version": "2.3.0",
410 + "resolved": "https://registry.npmjs.org/kareem/-/kareem-2.3.0.tgz",
411 + "integrity": "sha512-6hHxsp9e6zQU8nXsP+02HGWXwTkOEw6IROhF2ZA28cYbUk4eJ6QbtZvdqZOdD9YPKghG3apk5eOCvs+tLl3lRg=="
412 + },
413 + "lodash": {
414 + "version": "4.17.11",
415 + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
416 + "integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
417 + },
554 "media-typer": { 418 "media-typer": {
555 "version": "0.3.0", 419 "version": "0.3.0",
556 "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", 420 "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
557 "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=" 421 "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
558 }, 422 },
423 + "memory-pager": {
424 + "version": "1.5.0",
425 + "resolved": "https://registry.npmjs.org/memory-pager/-/memory-pager-1.5.0.tgz",
426 + "integrity": "sha512-ZS4Bp4r/Zoeq6+NLJpP+0Zzm0pR8whtGPf1XExKLJBAczGMnSi3It14OiNCStjQjM6NU1okjQGSxgEZN8eBYKg==",
427 + "optional": true
428 + },
559 "merge-descriptors": { 429 "merge-descriptors": {
560 "version": "1.0.1", 430 "version": "1.0.1",
561 "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", 431 "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
...@@ -584,98 +454,81 @@ ...@@ -584,98 +454,81 @@
584 "mime-db": "1.40.0" 454 "mime-db": "1.40.0"
585 } 455 }
586 }, 456 },
587 - "minimatch": { 457 + "mongodb": {
588 - "version": "3.0.4", 458 + "version": "3.2.6",
589 - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 459 + "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.2.6.tgz",
590 - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 460 + "integrity": "sha512-qnHc4tjEkHKemuzBq9R7ycYnhFE0Dlpt6+n6suoZp2DcDdqviQ+teloJU24fsOw/PLmr75yGk4mRx/YabjDQEQ==",
591 "requires": { 461 "requires": {
592 - "brace-expansion": "^1.1.7" 462 + "mongodb-core": "3.2.6",
463 + "safe-buffer": "^5.1.2"
593 } 464 }
594 }, 465 },
595 - "minimist": { 466 + "mongodb-core": {
596 - "version": "0.0.8", 467 + "version": "3.2.6",
597 - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 468 + "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.6.tgz",
598 - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" 469 + "integrity": "sha512-i+XRVjur9D0ywGF7cFebOUnALnbvMHajdNhhl3TQuopW6QDE655G8CpPeERbqSqfa3rOKEUo08lENDIiBIuAvQ==",
599 - },
600 - "mkdirp": {
601 - "version": "0.5.1",
602 - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
603 - "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
604 "requires": { 470 "requires": {
605 - "minimist": "0.0.8" 471 + "bson": "^1.1.1",
472 + "require_optional": "^1.0.1",
473 + "safe-buffer": "^5.1.2",
474 + "saslprep": "^1.0.0"
475 + }
476 + },
477 + "mongoose": {
478 + "version": "5.5.12",
479 + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.5.12.tgz",
480 + "integrity": "sha512-G6KfSHfxfoBw7zpRRdbG1GzLZSkY71nY3CMHMMfg5o+xVAGc3Q78Qu+kA3P+Ka15KHLu6LNyvAc1Zvtv1JhGfw==",
481 + "requires": {
482 + "async": "2.6.2",
483 + "bson": "~1.1.1",
484 + "kareem": "2.3.0",
485 + "mongodb": "3.2.6",
486 + "mongodb-core": "3.2.6",
487 + "mongoose-legacy-pluralize": "1.0.2",
488 + "mpath": "0.6.0",
489 + "mquery": "3.2.0",
490 + "ms": "2.1.1",
491 + "regexp-clone": "0.0.1",
492 + "safe-buffer": "5.1.2",
493 + "sift": "7.0.1",
494 + "sliced": "1.0.1"
495 + },
496 + "dependencies": {
497 + "ms": {
498 + "version": "2.1.1",
499 + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
500 + "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
501 + }
606 } 502 }
607 }, 503 },
608 - "mongojs": { 504 + "mongoose-legacy-pluralize": {
609 - "version": "2.6.0", 505 + "version": "1.0.2",
610 - "resolved": "https://registry.npmjs.org/mongojs/-/mongojs-2.6.0.tgz", 506 + "resolved": "https://registry.npmjs.org/mongoose-legacy-pluralize/-/mongoose-legacy-pluralize-1.0.2.tgz",
611 - "integrity": "sha512-r6tj71DjYcaRTi2jpa+CA6Iq72cTZclB2JKy+Zub+0JPTEq/l2plsAYfF2eHqSYBtZbKNcObvhGYk9E9UKZWJg==", 507 + "integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
508 + },
509 + "mpath": {
510 + "version": "0.6.0",
511 + "resolved": "https://registry.npmjs.org/mpath/-/mpath-0.6.0.tgz",
512 + "integrity": "sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw=="
513 + },
514 + "mquery": {
515 + "version": "3.2.0",
516 + "resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.0.tgz",
517 + "integrity": "sha512-qPJcdK/yqcbQiKoemAt62Y0BAc0fTEKo1IThodBD+O5meQRJT/2HSe5QpBNwaa4CjskoGrYWsEyjkqgiE0qjhg==",
612 "requires": { 518 "requires": {
613 - "each-series": "^1.0.0", 519 + "bluebird": "3.5.1",
614 - "mongodb": "^2.2.31", 520 + "debug": "3.1.0",
615 - "once": "^1.4.0", 521 + "regexp-clone": "0.0.1",
616 - "parse-mongo-url": "^1.1.1", 522 + "safe-buffer": "5.1.2",
617 - "readable-stream": "^2.3.3", 523 + "sliced": "1.0.1"
618 - "thunky": "^1.0.2",
619 - "to-mongodb-core": "^2.0.0",
620 - "xtend": "^4.0.1"
621 }, 524 },
622 "dependencies": { 525 "dependencies": {
623 - "bson": { 526 + "debug": {
624 - "version": "1.0.9", 527 + "version": "3.1.0",
625 - "resolved": "https://registry.npmjs.org/bson/-/bson-1.0.9.tgz", 528 + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
626 - "integrity": "sha512-IQX9/h7WdMBIW/q/++tGd+emQr0XMdeZ6icnT/74Xk9fnabWn+gZgpE+9V+gujL3hhJOoNrnDVY7tWdzc7NUTg==" 529 + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
627 - },
628 - "es6-promise": {
629 - "version": "3.2.1",
630 - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-3.2.1.tgz",
631 - "integrity": "sha1-7FYjOGgDKQkgcXDDlEjiREndH8Q="
632 - },
633 - "mongodb": {
634 - "version": "2.2.36",
635 - "resolved": "https://registry.npmjs.org/mongodb/-/mongodb-2.2.36.tgz",
636 - "integrity": "sha512-P2SBLQ8Z0PVx71ngoXwo12+FiSfbNfGOClAao03/bant5DgLNkOPAck5IaJcEk4gKlQhDEURzfR3xuBG1/B+IA==",
637 - "requires": {
638 - "es6-promise": "3.2.1",
639 - "mongodb-core": "2.1.20",
640 - "readable-stream": "2.2.7"
641 - },
642 - "dependencies": {
643 - "readable-stream": {
644 - "version": "2.2.7",
645 - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.2.7.tgz",
646 - "integrity": "sha1-BwV6y+JGeyIELTb5jFrVBwVOlbE=",
647 - "requires": {
648 - "buffer-shims": "~1.0.0",
649 - "core-util-is": "~1.0.0",
650 - "inherits": "~2.0.1",
651 - "isarray": "~1.0.0",
652 - "process-nextick-args": "~1.0.6",
653 - "string_decoder": "~1.0.0",
654 - "util-deprecate": "~1.0.1"
655 - }
656 - }
657 - }
658 - },
659 - "mongodb-core": {
660 - "version": "2.1.20",
661 - "resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-2.1.20.tgz",
662 - "integrity": "sha512-IN57CX5/Q1bhDq6ShAR6gIv4koFsZP7L8WOK1S0lR0pVDQaScffSMV5jxubLsmZ7J+UdqmykKw4r9hG3XQEGgQ==",
663 - "requires": {
664 - "bson": "~1.0.4",
665 - "require_optional": "~1.0.0"
666 - }
667 - },
668 - "process-nextick-args": {
669 - "version": "1.0.7",
670 - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
671 - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
672 - },
673 - "string_decoder": {
674 - "version": "1.0.3",
675 - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz",
676 - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==",
677 "requires": { 530 "requires": {
678 - "safe-buffer": "~5.1.0" 531 + "ms": "2.0.0"
679 } 532 }
680 } 533 }
681 } 534 }
...@@ -685,17 +538,6 @@ ...@@ -685,17 +538,6 @@
685 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 538 "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
686 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 539 "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
687 }, 540 },
688 - "mysql": {
689 - "version": "2.17.1",
690 - "resolved": "https://registry.npmjs.org/mysql/-/mysql-2.17.1.tgz",
691 - "integrity": "sha512-7vMqHQ673SAk5C8fOzTG2LpPcf3bNt0oL3sFpxPEEFp1mdlDcrLK0On7z8ZYKaaHrHwNcQ/MTUz7/oobZ2OyyA==",
692 - "requires": {
693 - "bignumber.js": "7.2.1",
694 - "readable-stream": "2.3.6",
695 - "safe-buffer": "5.1.2",
696 - "sqlstring": "2.3.1"
697 - }
698 - },
699 "negotiator": { 541 "negotiator": {
700 "version": "0.6.2", 542 "version": "0.6.2",
701 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", 543 "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
...@@ -714,54 +556,21 @@ ...@@ -714,54 +556,21 @@
714 "ee-first": "1.1.1" 556 "ee-first": "1.1.1"
715 } 557 }
716 }, 558 },
717 - "once": {
718 - "version": "1.4.0",
719 - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
720 - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
721 - "requires": {
722 - "wrappy": "1"
723 - }
724 - },
725 - "parse-mongo-url": {
726 - "version": "1.1.1",
727 - "resolved": "https://registry.npmjs.org/parse-mongo-url/-/parse-mongo-url-1.1.1.tgz",
728 - "integrity": "sha1-ZiON9fjnwMjKTNlw1KtqE3PrdbU="
729 - },
730 "parseurl": { 559 "parseurl": {
731 "version": "1.3.3", 560 "version": "1.3.3",
732 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", 561 "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
733 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==" 562 "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
734 }, 563 },
735 - "path-is-absolute": {
736 - "version": "1.0.1",
737 - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
738 - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
739 - },
740 "path-to-regexp": { 564 "path-to-regexp": {
741 "version": "0.1.7", 565 "version": "0.1.7",
742 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", 566 "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
743 "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=" 567 "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
744 }, 568 },
745 - "pend": {
746 - "version": "1.2.0",
747 - "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz",
748 - "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA="
749 - },
750 "performance-now": { 569 "performance-now": {
751 "version": "2.1.0", 570 "version": "2.1.0",
752 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 571 "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
753 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 572 "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
754 }, 573 },
755 - "process-nextick-args": {
756 - "version": "2.0.0",
757 - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
758 - "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw=="
759 - },
760 - "progress": {
761 - "version": "2.0.3",
762 - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
763 - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
764 - },
765 "proxy-addr": { 574 "proxy-addr": {
766 "version": "2.0.5", 575 "version": "2.0.5",
767 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz", 576 "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
...@@ -771,91 +580,16 @@ ...@@ -771,91 +580,16 @@
771 "ipaddr.js": "1.9.0" 580 "ipaddr.js": "1.9.0"
772 } 581 }
773 }, 582 },
774 - "proxy-from-env": {
775 - "version": "1.0.0",
776 - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
777 - "integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4="
778 - },
779 "psl": { 583 "psl": {
780 - "version": "1.1.31", 584 + "version": "1.1.32",
781 - "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.31.tgz", 585 + "resolved": "https://registry.npmjs.org/psl/-/psl-1.1.32.tgz",
782 - "integrity": "sha512-/6pt4+C+T+wZUieKR620OpzN/LlnNKuWjy1iFLQ/UG35JqHlR/89MP1d96dUfkf6Dne3TuLQzOYEYshJ+Hx8mw==" 586 + "integrity": "sha512-MHACAkHpihU/REGGPLj4sEfc/XKW2bheigvHO1dUqjaKigMp1C8+WLQYRGgeKFMsw5PMfegZcaN8IDXK/cD0+g=="
783 }, 587 },
784 "punycode": { 588 "punycode": {
785 "version": "2.1.1", 589 "version": "2.1.1",
786 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", 590 "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
787 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" 591 "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
788 }, 592 },
789 - "puppeteer": {
790 - "version": "1.17.0",
791 - "resolved": "https://registry.npmjs.org/puppeteer/-/puppeteer-1.17.0.tgz",
792 - "integrity": "sha512-3EXZSximCzxuVKpIHtyec8Wm2dWZn1fc5tQi34qWfiUgubEVYHjUvr0GOJojqf3mifI6oyKnCdrGxaOI+lWReA==",
793 - "requires": {
794 - "debug": "^4.1.0",
795 - "extract-zip": "^1.6.6",
796 - "https-proxy-agent": "^2.2.1",
797 - "mime": "^2.0.3",
798 - "progress": "^2.0.1",
799 - "proxy-from-env": "^1.0.0",
800 - "rimraf": "^2.6.1",
801 - "ws": "^6.1.0"
802 - },
803 - "dependencies": {
804 - "debug": {
805 - "version": "4.1.1",
806 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
807 - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
808 - "requires": {
809 - "ms": "^2.1.1"
810 - }
811 - },
812 - "mime": {
813 - "version": "2.4.3",
814 - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.3.tgz",
815 - "integrity": "sha512-QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw=="
816 - },
817 - "ms": {
818 - "version": "2.1.1",
819 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
820 - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
821 - }
822 - }
823 - },
824 - "puppeteer-core": {
825 - "version": "1.17.0",
826 - "resolved": "https://registry.npmjs.org/puppeteer-core/-/puppeteer-core-1.17.0.tgz",
827 - "integrity": "sha512-3Em/zPGO9Y6PVxiIBCEUiCXhKLyNfyuEIDP7OO5ZEG1N/XNaeoDCIGUsJSUqXMe+kdPQITsJjvw0/7pyecjL4w==",
828 - "requires": {
829 - "debug": "^4.1.0",
830 - "extract-zip": "^1.6.6",
831 - "https-proxy-agent": "^2.2.1",
832 - "mime": "^2.0.3",
833 - "progress": "^2.0.1",
834 - "proxy-from-env": "^1.0.0",
835 - "rimraf": "^2.6.1",
836 - "ws": "^6.1.0"
837 - },
838 - "dependencies": {
839 - "debug": {
840 - "version": "4.1.1",
841 - "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz",
842 - "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==",
843 - "requires": {
844 - "ms": "^2.1.1"
845 - }
846 - },
847 - "mime": {
848 - "version": "2.4.3",
849 - "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.3.tgz",
850 - "integrity": "sha512-QgrPRJfE+riq5TPZMcHZOtm8c6K/yYrMbKIoRfapfiGLxS8OTeIfRhUGW5LU7MlRa52KOAGCfUNruqLrIBvWZw=="
851 - },
852 - "ms": {
853 - "version": "2.1.1",
854 - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
855 - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
856 - }
857 - }
858 - },
859 "qs": { 593 "qs": {
860 "version": "6.7.0", 594 "version": "6.7.0",
861 "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", 595 "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
...@@ -877,19 +611,10 @@ ...@@ -877,19 +611,10 @@
877 "unpipe": "1.0.0" 611 "unpipe": "1.0.0"
878 } 612 }
879 }, 613 },
880 - "readable-stream": { 614 + "regexp-clone": {
881 - "version": "2.3.6", 615 + "version": "0.0.1",
882 - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", 616 + "resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz",
883 - "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", 617 + "integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk="
884 - "requires": {
885 - "core-util-is": "~1.0.0",
886 - "inherits": "~2.0.3",
887 - "isarray": "~1.0.0",
888 - "process-nextick-args": "~2.0.0",
889 - "safe-buffer": "~5.1.1",
890 - "string_decoder": "~1.1.1",
891 - "util-deprecate": "~1.0.1"
892 - }
893 }, 618 },
894 "request": { 619 "request": {
895 "version": "2.88.0", 620 "version": "2.88.0",
...@@ -939,14 +664,6 @@ ...@@ -939,14 +664,6 @@
939 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", 664 "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz",
940 "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=" 665 "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
941 }, 666 },
942 - "rimraf": {
943 - "version": "2.6.3",
944 - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
945 - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
946 - "requires": {
947 - "glob": "^7.1.3"
948 - }
949 - },
950 "safe-buffer": { 667 "safe-buffer": {
951 "version": "5.1.2", 668 "version": "5.1.2",
952 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", 669 "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
...@@ -957,6 +674,15 @@ ...@@ -957,6 +674,15 @@
957 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", 674 "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
958 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" 675 "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
959 }, 676 },
677 + "saslprep": {
678 + "version": "1.0.3",
679 + "resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
680 + "integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
681 + "optional": true,
682 + "requires": {
683 + "sparse-bitfield": "^3.0.3"
684 + }
685 + },
960 "semver": { 686 "semver": {
961 "version": "5.7.0", 687 "version": "5.7.0",
962 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz", 688 "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz",
...@@ -1005,10 +731,24 @@ ...@@ -1005,10 +731,24 @@
1005 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", 731 "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
1006 "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==" 732 "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
1007 }, 733 },
1008 - "sqlstring": { 734 + "sift": {
1009 - "version": "2.3.1", 735 + "version": "7.0.1",
1010 - "resolved": "https://registry.npmjs.org/sqlstring/-/sqlstring-2.3.1.tgz", 736 + "resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz",
1011 - "integrity": "sha1-R1OT/56RR5rqYtyvDKPRSYOn+0A=" 737 + "integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g=="
738 + },
739 + "sliced": {
740 + "version": "1.0.1",
741 + "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
742 + "integrity": "sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E="
743 + },
744 + "sparse-bitfield": {
745 + "version": "3.0.3",
746 + "resolved": "https://registry.npmjs.org/sparse-bitfield/-/sparse-bitfield-3.0.3.tgz",
747 + "integrity": "sha1-/0rm5oZWBWuks+eSqzM004JzyhE=",
748 + "optional": true,
749 + "requires": {
750 + "memory-pager": "^1.0.2"
751 + }
1012 }, 752 },
1013 "sshpk": { 753 "sshpk": {
1014 "version": "1.16.1", 754 "version": "1.16.1",
...@@ -1031,24 +771,6 @@ ...@@ -1031,24 +771,6 @@
1031 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", 771 "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
1032 "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=" 772 "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
1033 }, 773 },
1034 - "string_decoder": {
1035 - "version": "1.1.1",
1036 - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
1037 - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
1038 - "requires": {
1039 - "safe-buffer": "~5.1.0"
1040 - }
1041 - },
1042 - "thunky": {
1043 - "version": "1.0.3",
1044 - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.0.3.tgz",
1045 - "integrity": "sha512-YwT8pjmNcAXBZqrubu22P4FYsh2D4dxRmnWBOL8Jk8bUcRUtc5326kx32tuTmFDAZtLOGEVNl8POAR8j896Iow=="
1046 - },
1047 - "to-mongodb-core": {
1048 - "version": "2.0.0",
1049 - "resolved": "https://registry.npmjs.org/to-mongodb-core/-/to-mongodb-core-2.0.0.tgz",
1050 - "integrity": "sha1-NZbsdhOsmtO5ioncua77pWnNJ+s="
1051 - },
1052 "toidentifier": { 774 "toidentifier": {
1053 "version": "1.0.0", 775 "version": "1.0.0",
1054 "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", 776 "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
...@@ -1092,11 +814,6 @@ ...@@ -1092,11 +814,6 @@
1092 "mime-types": "~2.1.24" 814 "mime-types": "~2.1.24"
1093 } 815 }
1094 }, 816 },
1095 - "typedarray": {
1096 - "version": "0.0.6",
1097 - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz",
1098 - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c="
1099 - },
1100 "unpipe": { 817 "unpipe": {
1101 "version": "1.0.0", 818 "version": "1.0.0",
1102 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", 819 "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
...@@ -1110,11 +827,6 @@ ...@@ -1110,11 +827,6 @@
1110 "punycode": "^2.1.0" 827 "punycode": "^2.1.0"
1111 } 828 }
1112 }, 829 },
1113 - "util-deprecate": {
1114 - "version": "1.0.2",
1115 - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
1116 - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
1117 - },
1118 "utils-merge": { 830 "utils-merge": {
1119 "version": "1.0.1", 831 "version": "1.0.1",
1120 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", 832 "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
...@@ -1139,32 +851,6 @@ ...@@ -1139,32 +851,6 @@
1139 "core-util-is": "1.0.2", 851 "core-util-is": "1.0.2",
1140 "extsprintf": "^1.2.0" 852 "extsprintf": "^1.2.0"
1141 } 853 }
1142 - },
1143 - "wrappy": {
1144 - "version": "1.0.2",
1145 - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
1146 - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
1147 - },
1148 - "ws": {
1149 - "version": "6.2.1",
1150 - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz",
1151 - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==",
1152 - "requires": {
1153 - "async-limiter": "~1.0.0"
1154 - }
1155 - },
1156 - "xtend": {
1157 - "version": "4.0.1",
1158 - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
1159 - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68="
1160 - },
1161 - "yauzl": {
1162 - "version": "2.4.1",
1163 - "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.4.1.tgz",
1164 - "integrity": "sha1-lSj0QtqxsihOWLQ3m7GU4i4MQAU=",
1165 - "requires": {
1166 - "fd-slicer": "~1.0.1"
1167 - }
1168 } 854 }
1169 } 855 }
1170 } 856 }
......
1 { 1 {
2 "name": "spbot", 2 "name": "spbot",
3 "version": "1.0.0", 3 "version": "1.0.0",
4 - "description": "SPBot Server", 4 + "description": "",
5 "main": "app.js", 5 "main": "app.js",
6 "scripts": { 6 "scripts": {
7 "test": "echo \"Error: no test specified\" && exit 1", 7 "test": "echo \"Error: no test specified\" && exit 1",
8 "start": "node app.js" 8 "start": "node app.js"
9 }, 9 },
10 - "author": "WonJun Choi", 10 + "author": "",
11 "license": "ISC", 11 "license": "ISC",
12 "dependencies": { 12 "dependencies": {
13 "body-parser": "^1.19.0", 13 "body-parser": "^1.19.0",
14 - "emoji-strip": "^1.0.1", 14 + "express": "^4.17.1",
15 - "express": "^4.17.0", 15 + "mongoose": "^5.5.12",
16 - "mongojs": "^2.6.0",
17 - "mysql": "^2.17.1",
18 - "puppeteer": "^1.17.0",
19 - "puppeteer-core": "^1.17.0",
20 "request": "^2.88.0" 16 "request": "^2.88.0"
21 } 17 }
22 } 18 }
......
1 let images = require("./pics"); 1 let images = require("./pics");
2 2
3 +exports.messageTemplate = (text) => {
4 + //메세지
5 +}
6 +
3 let greetingText = "안녕하세요! 컴공/소융 강의평가 봇이에요. 아래에 버튼 3개를 눌러주세요."; // 인사말 7 let greetingText = "안녕하세요! 컴공/소융 강의평가 봇이에요. 아래에 버튼 3개를 눌러주세요."; // 인사말
4 let greetingTitle = ["교수명으로 검색", "강의명으로 검색", "HELP"]; 8 let greetingTitle = ["교수명으로 검색", "강의명으로 검색", "HELP"];
5 9
...@@ -21,11 +25,11 @@ exports.greetingTemplate = () => { ...@@ -21,11 +25,11 @@ exports.greetingTemplate = () => {
21 "type":"postback", 25 "type":"postback",
22 "title":greetingTitle[1], 26 "title":greetingTitle[1],
23 "payload":"CHOICE_BY_LECT" 27 "payload":"CHOICE_BY_LECT"
24 - } 28 + },
25 { 29 {
26 "type":"postback", 30 "type":"postback",
27 "title":greetingTitle[2], 31 "title":greetingTitle[2],
28 - "payload":"CHOICE_BY_HELP" 32 + "payload":"HELP"
29 } 33 }
30 ] 34 ]
31 } 35 }
...@@ -33,44 +37,43 @@ exports.greetingTemplate = () => { ...@@ -33,44 +37,43 @@ exports.greetingTemplate = () => {
33 } 37 }
34 } 38 }
35 39
36 -exports.askTemplate = (text) => { 40 +exports.choicebyprofTemplate = () => {
37 - return { 41 + return {text: "교수명을 입력하세요."};
38 - "attachment":{ 42 + //교수님 성함 사용자 입력 받기
39 - "type":"template", 43 + //교수님 목록 띄우기_버튼
40 - "payload":{ 44 + //강의명 목록 띄우기_버튼
41 - "template_type":"button", 45 + //->강의평가 띄우기
42 - "text": text,
43 - "buttons":[
44 - {
45 - "type":"postback",
46 - "title":"Cats",
47 - "payload":"CAT_PICS"
48 - },
49 - {
50 - "type":"postback",
51 - "title":"Dogs",
52 - "payload":"DOG_PICS"
53 - }
54 - ]
55 - }
56 - }
57 - }
58 } 46 }
59 47
48 +exports.choicebylectTemplate = () => {
49 + //강의명 사용자 입력 받기
50 + //일치하는 강의 없으면 추측 강의 목록 띄우기_버튼
51 + //max n개 강의 목록 띄우기_버튼
52 + //->그 중에 없으면 교수명 입력으로
53 + //->있으면 강의평가 띄우기
54 +}
60 55
56 +exports.help = () => {
57 + //소개, 뒤로가기
58 +}
61 59
62 -exports.imageTemplate= (type, sender_id) => { 60 +exports.rate = (payload) => {
63 - return { 61 + return {text:"강의평가입니다."};
64 - "attachment":{ 62 + //강의평가
65 - "type":"image",
66 - "payload":{
67 - "url": getImage(type, sender_id),
68 - "is_reusable":true
69 - }
70 - }
71 - }
72 } 63 }
73 64
65 +
66 +
67 +
68 +
69 +
70 +
71 +
72 +
73 +
74 +
75 +
76 +
74 let users = {}; 77 let users = {};
75 78
76 const getImage= (type, sender_id) => { 79 const getImage= (type, sender_id) => {
......