마수현
Committed by Ma Suhyeon

Edit item message to flex message

...@@ -5,6 +5,7 @@ const axios = require('axios').default; ...@@ -5,6 +5,7 @@ const axios = require('axios').default;
5 const bodyParser = require('body-parser'); 5 const bodyParser = require('body-parser');
6 6
7 app.use(bodyParser.json()); 7 app.use(bodyParser.json());
8 +app.use('/images', express.static('images'));
8 9
9 const channelToken = 'Bearer ZVI571ynUAVT0U44734ziyjVtStYiUi2UA4txCgVUvugv5YQwToMDgE991Sd4UbsZtJpBhXEtQKX/YkvQVx0PgH9F7qy75eUR0iKMwz33RXD5BG8JuFZ67FqR/GXZQNSk+kXHMBVnCQPeeNqTNn5MgdB04t89/1O/w1cDnyilFU='; 10 const channelToken = 'Bearer ZVI571ynUAVT0U44734ziyjVtStYiUi2UA4txCgVUvugv5YQwToMDgE991Sd4UbsZtJpBhXEtQKX/YkvQVx0PgH9F7qy75eUR0iKMwz33RXD5BG8JuFZ67FqR/GXZQNSk+kXHMBVnCQPeeNqTNn5MgdB04t89/1O/w1cDnyilFU=';
10 11
...@@ -59,15 +60,49 @@ function onMessage(message, replyToken) { ...@@ -59,15 +60,49 @@ function onMessage(message, replyToken) {
59 } 60 }
60 61
61 function recommendItem(charAlias, replyToken) { 62 function recommendItem(charAlias, replyToken) {
62 - let sql = 'SELECT n.`alias`, i.`name` FROM `character_aliases` a JOIN `character_items` c ON a.`character_id`=c.`character_id` JOIN `character_aliases` n ON c.`character_id`=n.`character_id` JOIN `items` i ON c.`item`=i.`id` WHERE a.`alias`=? AND n.`is_name`=1 ORDER BY c.`count` DESC LIMIT 0,5'; 63 + let sql = 'SELECT n.`alias`, i.`id`, i.`name` FROM `character_aliases` a JOIN `character_items` c ON a.`character_id`=c.`character_id` JOIN `character_aliases` n ON c.`character_id`=n.`character_id` JOIN `items` i ON c.`item`=i.`id` WHERE a.`alias`=? AND n.`is_name`=1 ORDER BY c.`count` DESC LIMIT 0,5';
63 pool.query(sql, [charAlias]).then(function([results]) { 64 pool.query(sql, [charAlias]).then(function([results]) {
64 let reply; 65 let reply;
65 if(results.length == 0) 66 if(results.length == 0)
66 - reply = '데이터가 없습니다.'; 67 + reply = {type: 'text', text: '데이터가 없습니다.'};
67 else 68 else
68 - reply = `${results[0].alias}의 추천 아이템은 ${results.map(e => e.name).join(', ')} 입니다.`; 69 + reply = {
70 + type: 'flex',
71 + altText: `${results[0].alias}의 추천 아이템은 ${results.map(e => e.name).join(', ')} 입니다.`,
72 + contents: {
73 + type: 'bubble',
74 + size: 'kilo',
75 + body: {
76 + type: 'box',
77 + layout: 'vertical',
78 + alignItems: 'flex-start',
79 + contents: [
80 + {type: 'text', text: `${results[0].alias}의 추천 아이템`}
81 + ].concat(results.map(e => ({
82 + type: 'box',
83 + layout: 'horizontal',
84 + alignItems: 'center',
85 + justifyContent: 'flex-start',
86 + spacing: 'md',
87 + contents: [
88 + {
89 + type: 'image',
90 + url: `https://jongro3.ga/images/items/${e.id.toString().padStart(2, '0')}.png`,
91 + size: 'xxs',
92 + flex: 0
93 + },
94 + {
95 + type: 'text',
96 + text: e.name,
97 + flex: 0
98 + }
99 + ]
100 + })))
101 + }
102 + }
103 + };
69 104
70 - replyMessage(replyToken, [{type: 'text', text: reply}]); 105 + replyMessage(replyToken, [reply]);
71 }); 106 });
72 } 107 }
73 108
......