김예미

Edit Template

...@@ -5,14 +5,15 @@ let request = require('request'), ...@@ -5,14 +5,15 @@ let request = require('request'),
5 5
6 // Handles message events 6 // Handles message events
7 exports.handleMessage = (sender_psid, received_message) => { 7 exports.handleMessage = (sender_psid, received_message) => {
8 - let response; 8 + let payload = recieved_message.payload;
9 9
10 - if(received_message.text){ 10 + if(payload === 'CHOICE_BY_PROF'){
11 - response = template.messageTemplate(); 11 + handlePostback_choiceByProf(sender_psid, received_message);
12 + }else if(payload === 'CHOICE_BY_LECT'){
13 + handlePostback_choiceByLect(sender_psid, recieved_message);
14 + }else if(payload === 'HELP'){
15 + handlePostback_help(sender_psid, recieved_message);
12 } 16 }
13 -
14 - // Sends the reponse message
15 - callSendAPI(sender_psid, response);
16 } 17 }
17 18
18 exports.handlePostback = (sender_psid, received_postback) => { 19 exports.handlePostback = (sender_psid, received_postback) => {
...@@ -26,20 +27,60 @@ exports.handlePostback = (sender_psid, received_postback) => { ...@@ -26,20 +27,60 @@ exports.handlePostback = (sender_psid, received_postback) => {
26 response = template.greetingTemplate(); 27 response = template.greetingTemplate();
27 callSendAPI(sender_psid, response); 28 callSendAPI(sender_psid, response);
28 }else if(payload === 'CHOICE_BY_PROF'){ 29 }else if(payload === 'CHOICE_BY_PROF'){
29 - response = template.choicebyprofTemplate(); 30 + handlePostback_choiceByProf(sender_psid, received_postback);
30 - callSendAPI(sender_psid, response);
31 }else if(payload === 'CHOICE_BY_LECT'){ 31 }else if(payload === 'CHOICE_BY_LECT'){
32 - response = template.choicebylectTemplate(); 32 + handlePostback_choiceByLect(sender_psid, recieved_postback);
33 - callSendAPI(sender_psid, response);
34 }else if(payload === 'HELP'){ 33 }else if(payload === 'HELP'){
35 - response = template.help(); 34 + handlePostback_help(sender_psid, recieved_postback);
36 - callSendAPI(sender_psid, response);
37 - }else if(payload.match('rate')){
38 - response = template.rate(payload);
39 - callSendAPI(sender_psid, response);
40 } 35 }
41 } 36 }
42 37
38 +const handlePostback_choiceByProf = (sender_psid, received) => {
39 + let response;
40 +
41 + let stat = received.stat;
42 +
43 + if(stat === 'stat_0'){
44 + response = template.getProfNameTemplate(received);
45 + }else if(stat === 'stat_1'){
46 + response = template.choiceLectOfProfTemplate(received);
47 + }else if(stat === 'stat_2'){
48 + response = template.rateTemplate(received);
49 + }
50 + callSendAPI(sender_psid, response);
51 +}
52 +
53 +const handlePostback_choiceByLect = (sender_psid, recieved) => {
54 + let response;
55 +
56 + let stat = recieved.stat;
57 +
58 + if(stat === 'stat_0'){
59 + response = template.getLectNameTemplate(received);
60 + }else if(stat === 'stat_1'){
61 + response = template.choiceLectTemplate(received);
62 + }else if(stat === 'stat_2'){
63 + response = template.choiceProfOfLectTemplate(received);
64 + }else if(stat === 'stat_3'){
65 + response = template.rateTemplate(received);
66 + }else if(stat === 'stat_4'){
67 + response = template.goToChoiceByProfTemplate(received);
68 + }
69 + callSendAPI(sender_psid, response);
70 +}
71 +
72 +const handlePostback_help = (sender_psid, received) => {
73 + let response;
74 +
75 + let stat = received.stat;
76 +
77 + if(stat === 'stat_0'){
78 + response = template.howToTemplate(received);
79 + }else if(stat ==== 'stat_1'){
80 + response = template.goToGreetTemplate(received);
81 + }
82 + callSendAPI(sender_psid, response);
83 +}
43 84
44 // Sends response messages via the Send API 85 // Sends response messages via the Send API
45 const callSendAPI = (sender_psid, response, cb = null) => { 86 const callSendAPI = (sender_psid, response, cb = null) => {
......
1 -let images = require("./pics");
2 -
3 -exports.messageTemplate = (text) => {
4 - //메세지
5 -}
6 -
7 let greetingText = "안녕하세요! 컴공/소융 강의평가 봇이에요. 아래에 버튼 3개를 눌러주세요."; // 인사말 1 let greetingText = "안녕하세요! 컴공/소융 강의평가 봇이에요. 아래에 버튼 3개를 눌러주세요."; // 인사말
8 let greetingTitle = ["교수명으로 검색", "강의명으로 검색", "HELP"]; 2 let greetingTitle = ["교수명으로 검색", "강의명으로 검색", "HELP"];
9 3
...@@ -19,17 +13,23 @@ exports.greetingTemplate = () => { ...@@ -19,17 +13,23 @@ exports.greetingTemplate = () => {
19 { 13 {
20 "type":"postback", 14 "type":"postback",
21 "title":greetingTitle[0], 15 "title":greetingTitle[0],
22 - "payload":"CHOICE_BY_PROF" 16 + "payload":"CHOICE_BY_PROF",
17 + "stat":"stat_0",
18 + "rate":{};
23 }, 19 },
24 { 20 {
25 "type":"postback", 21 "type":"postback",
26 "title":greetingTitle[1], 22 "title":greetingTitle[1],
27 "payload":"CHOICE_BY_LECT" 23 "payload":"CHOICE_BY_LECT"
24 + "stat":"stat_0",
25 + "rate":{};
28 }, 26 },
29 { 27 {
30 "type":"postback", 28 "type":"postback",
31 "title":greetingTitle[2], 29 "title":greetingTitle[2],
32 "payload":"HELP" 30 "payload":"HELP"
31 + "stat":"stat_0",
32 + "rate":{};
33 } 33 }
34 ] 34 ]
35 } 35 }
...@@ -37,70 +37,46 @@ exports.greetingTemplate = () => { ...@@ -37,70 +37,46 @@ exports.greetingTemplate = () => {
37 } 37 }
38 } 38 }
39 39
40 -exports.choicebyprofTemplate = () => { 40 +//payload === 'CHOICE_BY_PROF'
41 - return {text: "교수명을 입력하세요."}; 41 +exports.getProfNameTemplate = (received) => {
42 - //교수님 성함 사용자 입력 받기
43 - //교수님 목록 띄우기_버튼
44 - //강의명 목록 띄우기_버튼
45 - //->강의평가 띄우기
46 -}
47 42
48 -exports.choicebylectTemplate = () => {
49 - //강의명 사용자 입력 받기
50 - //일치하는 강의 없으면 추측 강의 목록 띄우기_버튼
51 - //max n개 강의 목록 띄우기_버튼
52 - //->그 중에 없으면 교수명 입력으로
53 - //->있으면 강의평가 띄우기
54 } 43 }
55 44
56 -exports.help = () => { 45 +exports.choiceLectOfProfTemplate = (received) => {
57 - //소개, 뒤로가기
58 -}
59 46
60 -exports.rate = (payload) => {
61 - return {text:"강의평가입니다."};
62 - //강의평가
63 } 47 }
64 48
49 +exports.rateTemplate = (received) => {
65 50
51 +}
66 52
53 +//payload === 'CHOICE_BY_LECT'
54 +exports.getLectNameTemplate = (received) => {
67 55
56 +}
68 57
58 +exports.choiceLectTemplate= (received) => {
69 59
60 +}
70 61
62 +exports.choiceProfOfLectTemplate= (received) => {
71 63
64 +}
72 65
66 +exports.rateTemplate= (received) => {
73 67
68 +}
74 69
70 +exports.goToChoiceByProfTemplate= (received) => {
75 71
72 +}
76 73
77 -let users = {}; 74 +//payload === 'HELP'
78 - 75 +exports.howToTemplate= (received) => {
79 -const getImage= (type, sender_id) => {
80 - // create user if doesn't exist
81 - if(users[sender_id] === undefined){
82 - users = Object.assign({
83 - [sender_id] : {
84 - 'cats_count' : 0,
85 - 'dogs_count' : 0
86 - }
87 - }, users);
88 - }
89 -
90 - let count = images[type].length, // total available images by type
91 - user = users[sender_id], // // user requesting image
92 - user_type_count = user[type+'_count'];
93 76
77 +}
94 78
95 - // update user before returning image 79 +exports.goToGreetTemplate = (received) => {
96 - let updated_user = {
97 - [sender_id] : Object.assign(user, {
98 - [type+'_count'] : count === user_type_count + 1 ? 0 : user_type_count + 1
99 - })
100 - };
101 - // update users
102 - users = Object.assign(users, updated_user);
103 80
104 - console.log(users);
105 - return images[type][user_type_count];
106 } 81 }
82 +
......