-
Notifications
You must be signed in to change notification settings - Fork 1
/
UserSetup.js
105 lines (99 loc) · 3.61 KB
/
UserSetup.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
var request = require("request");
var qr = require('./quick_replies');
var api = require('./apiCalls')
var async = require('async');
var mysql = require("mysql");
var connection = mysql.createConnection(process.env.DATABASE_URL);
function registerUser(event) {
var senderID = event.sender.id;
var recipientID = event.recipient.id;
var timeOfPostback = event.timestamp;
request({
url: "https://graph.facebook.com/v2.6/" + senderID,
qs: {
access_token: process.env.PAGE_ACCESS_TOKEN,
locale: "ko_KR",
fields: "first_name,last_name,gender,education"
},
method: "GET"
}, function(error, response, body) {
if (error) {
console.log("Error getting user's name: " + error);
} else {
var task = [
function (callback) {
var bodyObj = JSON.parse(body);
var first_name = bodyObj.first_name;
var last_name = bodyObj.last_name;
var gender = bodyObj.gender;
connection.query('SELECT * FROM Users WHERE user_id=' + senderID, function(err, result, fields) {
if (result.length == 0){
connection.query('INSERT INTO Users (user_id, first_name, last_name, sex, conv_context) VALUES ('+ event.sender.id + ', "' + first_name + '","' + last_name + '","' + gender + '",' + '"register1"' + ')');
}
} );
callback(null, first_name);
},
function (first_name, callback) {
api.sendResponse(event, {"text":"안녕 " + first_name + "!\n난 설대봇이야. 서울대 다니니?", "quick_replies": qr.reply_arrays["YesOrNo"]});
callback(null);
}
];
async.waterfall(task);
}
});
}
function register1(event) {
if (event.message.text == "응"){
var task = [
function(callback){
connection.query('UPDATE Users SET conv_context="register2" WHERE user_id=' + event.sender.id);
callback(null, 'done');
},
function(err, callback){
api.sendResponse(event, {"text":"그럼 먼저 등록부터 해줘!"});
api.handleWebview(event, "등록","https://campus-buddies-snu.herokuapp.com/register")
callback(null);
}
]
} else {
var task = [
function(callback){
connection.query('UPDATE Users SET conv_context="notStudent" WHERE user_id=' + event.sender.id);
callback(null, 'done');
},
function(err, callback){
api.sendResponse(event, {"text":"그럼 너희 학교 담당 봇한테 가!"});
callback(null);
}
]
}
async.waterfall(task);
}
function register2(event) {
var task = [
function(callback){
connection.query('UPDATE Users SET conv_context="none" WHERE user_id=' + event.sender.id);
connection.query('UPDATE Users SET college_major=' + '"' + event.message.text + '"' + ' WHERE user_id=' + event.sender.id);
callback(null, 'done');
},
function(err, callback){
api.sendResponse(event, {"text":"문송하네.. ㅠㅠ 뭐 쨌든 나는 캠퍼스 최고의 인싸 (이름)이야.\n너가 조언을 구하거나 만나고 싶은 사람이 있다면 말만 해! 소개시켜줄게 :~)",
"quick_replies": qr.reply_arrays["Menu"]});
callback(null);
}
]
async.waterfall(task);
}
function notStudent(event) {
api.sendResponse(event, {"text": "나는 서울대 담당이니까 너희 학교 봇한테 말 걸어줘"})
}
module.exports = {
functionMatch: {
"registerUser": registerUser,
"register1": register1,
"register2": register2,
"notStudent": notStudent,
//temporary additions
"메뉴": register2
}
}