Showing
3 changed files
with
86 additions
and
30 deletions
... | @@ -60,8 +60,12 @@ async function gmarket_c(user_id, g_id, g_pw){ | ... | @@ -60,8 +60,12 @@ async function gmarket_c(user_id, g_id, g_pw){ |
60 | 60 | ||
61 | //logging the result | 61 | //logging the result |
62 | for(let index = 0; index < data.length; index++){ | 62 | for(let index = 0; index < data.length; index++){ |
63 | - await replying(data[index].prd_img, data[index].prd_name, data[index].prd_price, data[index].prd_link); | 63 | + |
64 | - console.log(data[index]); | 64 | + // 뽑아낸 정보 reply |
65 | + await replying(data[index].prd_img, data[index].prd_name, data[index].prd_price, data[index].prd_link); | ||
66 | + // DB에 정보 삽입 | ||
67 | + await dbcontrol.synchronization(USER_ID, data[index].prd_img, data[index].prd_name, data[index].prd_price, data[index].prd_link); | ||
68 | + console.log(data[index]); | ||
65 | } | 69 | } |
66 | 70 | ||
67 | //여기에 db에 추가하는 코드 넣기 | 71 | //여기에 db에 추가하는 코드 넣기 | ... | ... |
... | @@ -23,7 +23,7 @@ db.defaults({cart : []}).write(); | ... | @@ -23,7 +23,7 @@ db.defaults({cart : []}).write(); |
23 | } | 23 | } |
24 | 24 | ||
25 | // 장바구니 동기화 | 25 | // 장바구니 동기화 |
26 | -function synchronization(USER_ID, prd_img, prd_name, prd_price, prd_link){ | 26 | +async function synchronization(USER_ID, prd_img, prd_name, prd_price, prd_link){ |
27 | 27 | ||
28 | const adapter = new FileSync(USER_ID + '.json'); | 28 | const adapter = new FileSync(USER_ID + '.json'); |
29 | const db = low(adapter); | 29 | const db = low(adapter); |
... | @@ -42,29 +42,69 @@ function synchronization(USER_ID, prd_img, prd_name, prd_price, prd_link){ | ... | @@ -42,29 +42,69 @@ function synchronization(USER_ID, prd_img, prd_name, prd_price, prd_link){ |
42 | } | 42 | } |
43 | 43 | ||
44 | // db에서 목록 검색 후 삭제 | 44 | // db에서 목록 검색 후 삭제 |
45 | -function deleting(USER_ID, prd_link){ | 45 | +async function deleting(USER_ID, prd_link){ |
46 | 46 | ||
47 | - const adapter = new FileSync(USER_ID + '.json'); | 47 | + try { |
48 | - const db = low(adapter); | 48 | + fs.statSync('./' + USER_ID + '.json'); // 이미 파일이 있다면 |
49 | - db.defaults({cart : []}).write(); | 49 | + console.log('file or directory exists'); |
50 | 50 | ||
51 | - db.get('cart') | 51 | + const adapter = new FileSync(USER_ID + '.json'); |
52 | - .remove({PRD_LINK : prd_link}) | 52 | + const db = low(adapter); |
53 | - .write(); // prd_link 참조 삭제 | 53 | + db.defaults({cart : []}).write(); |
54 | + | ||
55 | + db.get('cart') | ||
56 | + .remove({PRD_LINK : prd_link}) | ||
57 | + .write(); // prd_link 참조 삭제 | ||
58 | + | ||
59 | + pushing(USER_ID, '-----삭제 완료-----'); | ||
60 | + } | ||
61 | + catch (err) { // 파일이 없다면 | ||
62 | + if (err.code === 'ENOENT') { | ||
63 | + console.log('file or directory does not exist'); | ||
64 | + pushing(USER_ID, 'DB가 존재하지 않습니다'); | ||
65 | + } | ||
66 | + else{ | ||
67 | + console.log('삭제할 내용과 일치하는 리스트가 없습니다.'); | ||
68 | + pushing(USER_ID, '삭제할 내용과 일치하는 리스트가 없습니다'); | ||
69 | + } | ||
70 | + } | ||
54 | 71 | ||
55 | } | 72 | } |
56 | 73 | ||
57 | // db에서 USER_ID 기반 장바구니 조회 | 74 | // db에서 USER_ID 기반 장바구니 조회 |
58 | -function viewing(USER_ID){ | 75 | +async function viewing(USER_ID){ |
59 | 76 | ||
60 | - const adapter = new FileSync(USER_ID + '.json'); | 77 | + try { |
61 | - const db = low(adapter); | 78 | + fs.statSync('./' + USER_ID + '.json'); // 이미 파일이 있다면 |
62 | - db.defaults({cart : []}).write(); | 79 | + console.log('file or directory exists'); |
80 | + | ||
81 | + const adapter = new FileSync(USER_ID + '.json'); | ||
82 | + const db = low(adapter); | ||
83 | + db.defaults({cart : []}).write(); | ||
84 | + | ||
85 | + var datalist = new Array(); | ||
86 | + | ||
87 | + datalist = db.get('cart').value(); // [ { } ] 배열속 객체형태로 리턴 | ||
63 | 88 | ||
64 | - var datalist = new Array(); | 89 | + //메세지로 내역 push하는 기능 |
90 | + | ||
91 | + console.log(datalist); | ||
92 | + | ||
93 | + datalist.forEach(function(item, index, array){ | ||
94 | + viewall(array[index].PRD_IMG, array[index].PRD_NAME, array[index].PRD_PRICE, array[index].PRD_LINK); | ||
95 | + }); | ||
96 | + } | ||
97 | + catch (err) { // 파일이 없다면 | ||
98 | + if (err.code === 'ENOENT') { | ||
99 | + console.log('file or directory does not exist'); | ||
100 | + pushing(USER_ID, 'DB가 존재하지 않습니다'); | ||
101 | + } | ||
102 | + else{ | ||
103 | + console.log('Directory is empty'); | ||
104 | + pushing(USER_ID, 'DB 가 비었습니다.'); | ||
105 | + } | ||
106 | + } | ||
65 | 107 | ||
66 | - datalist = db.get('cart').value(); // [ { } ] 배열속 객체형태로 리턴 | ||
67 | - //미완성 - 메세지로 내역 push하는 기능 업데이트 요망 | ||
68 | 108 | ||
69 | } | 109 | } |
70 | 110 | ... | ... |
... | @@ -22,6 +22,7 @@ var shopping = 0; // in shopping menu identifier 0 = idle, 1 = shop | ... | @@ -22,6 +22,7 @@ var shopping = 0; // in shopping menu identifier 0 = idle, 1 = shop |
22 | var shop_select = undefined // shopping-site identifier | 22 | var shop_select = undefined // shopping-site identifier |
23 | var method_action = 0; // typing count; | 23 | var method_action = 0; // typing count; |
24 | var user_info = new Array(); // 유저 정보 저장용 | 24 | var user_info = new Array(); // 유저 정보 저장용 |
25 | +var deleting_able = false; // 장바구니 항목 삭제용 | ||
25 | //------------------------------------------ | 26 | //------------------------------------------ |
26 | 27 | ||
27 | // ------------ db calling modules --------- | 28 | // ------------ db calling modules --------- |
... | @@ -34,18 +35,37 @@ async function shoppingroute(user_message, user_id, replyToken){ | ... | @@ -34,18 +35,37 @@ async function shoppingroute(user_message, user_id, replyToken){ |
34 | USER_ID = user_id; | 35 | USER_ID = user_id; |
35 | 36 | ||
36 | if(user_message == '/쇼핑' ){ | 37 | if(user_message == '/쇼핑' ){ |
37 | - replying(replyToken, '쇼핑을 선택하셨습니다.\n원하시는 쇼핑몰 사이트를 선택하세요.\n현재 제공되는 사이트는 \n\n/g마켓\n/옥션\n/쿠팡\n\n입니다.\n/취소 로 해당 메뉴에서 퇴장이 가능합니다.'); | 38 | + replying(replyToken, '쇼핑을 선택하셨습니다.\n원하시는 쇼핑몰 사이트 또는 기능을 선택하세요.\n현재 제공되는 사이트는 \n\n/g마켓\n/옥션\n/쿠팡\n\n입니다.\n\n기능은 /장바구니조회\n/장바구니삭제\n\n입니다.\n\n/취소 로 해당 메뉴에서 퇴장이 가능합니다.'); |
38 | shopping = 1; // 다음 메세지에 선택하지 못할 경우 0으로 되돌릴 필요가있음 | 39 | shopping = 1; // 다음 메세지에 선택하지 못할 경우 0으로 되돌릴 필요가있음 |
39 | } | 40 | } |
40 | 41 | ||
42 | + // 삭제 단독 처리용 | ||
43 | + if(deleting_able === true && shopping == 1){ | ||
44 | + dbcontrol.deleting(USER_ID, user_message); // user_message는 링크로 입력할 것 | ||
45 | + shopping = 0; deleting_able = false; // 메인메뉴로 되돌아감 | ||
46 | + } | ||
47 | + | ||
41 | if(shopping == 1){ | 48 | if(shopping == 1){ |
42 | if(user_message == '/g마켓'){ | 49 | if(user_message == '/g마켓'){ |
43 | - replying(replyToken, 'g마켓을 선택하셨습니다.\n원하시는 항목을 선택하세요.\n\n/장바구니동기화\n/장바구니조회\n/장바구니추가\n/장바구니삭제'); | 50 | + replying(replyToken, 'g마켓을 선택하셨습니다.\n원하시는 항목을 선택하세요.\n\n/장바구니동기화'); |
44 | shopping = 2; shop_select = 'g마켓'; | 51 | shopping = 2; shop_select = 'g마켓'; |
45 | }else if(user_message == '/옥션'){ | 52 | }else if(user_message == '/옥션'){ |
46 | 53 | ||
47 | - }else if(user_message == '쿠팡'){ | 54 | + }else if(user_message == '/쿠팡'){ |
48 | 55 | ||
56 | + }else if(user_message == '/장바구니조회'){ | ||
57 | + // DB에서 USER_ID.json 을 가진 파일을 읽어들임 | ||
58 | + replying(replyToken, '장바구니조회를 선택하셨습니다.\nDB를 읽고 있습니다.'); | ||
59 | + dbcontrol.viewing(USER_ID); | ||
60 | + shopping = 0; // 메인메뉴로 되돌아감 | ||
61 | + }else if(user_message == '/장바구니삭제'){ | ||
62 | + replying(replyToken, '장바구니삭제를 선택하셨습니다.\n삭제할 링크를 입력해주세요.'); | ||
63 | + deleting_able = true; // 삭제가능상태 적용 | ||
64 | + dbcontrol.deleting(user_message); | ||
65 | + } | ||
66 | + }else{ | ||
67 | + replying(replyToken, 'Error: 유효하지 않은 선택입니다. 메인으로 되돌아갑니다.'); | ||
68 | + shopping = 0; | ||
49 | } | 69 | } |
50 | } | 70 | } |
51 | 71 | ||
... | @@ -66,18 +86,10 @@ async function shoppingroute(user_message, user_id, replyToken){ | ... | @@ -66,18 +86,10 @@ async function shoppingroute(user_message, user_id, replyToken){ |
66 | //장바구니 크롤링하는 함수 | 86 | //장바구니 크롤링하는 함수 |
67 | USER_ID = user_id; // 상대방 ID 획득 | 87 | USER_ID = user_id; // 상대방 ID 획득 |
68 | await gmarket.gmarket_c(USER_ID, user_info[2], user_info[1]); | 88 | await gmarket.gmarket_c(USER_ID, user_info[2], user_info[1]); |
69 | - // replying(eventObj.replyToken, '리스트를 출력중입니다... 출력전까지 기다려주세요\n\n\n/장바구니동기화\n장바구니조회\n/장바구니추가\n/장바구니삭제'); | 89 | + shopping = 0; |
70 | - shopping = 2; | 90 | + shop_select = undefined; //메인메뉴로 돌아가기 위함 |
71 | } | 91 | } |
72 | } | 92 | } |
73 | - /* if(user_message == '/장바구니조회') | ||
74 | - { | ||
75 | - | ||
76 | - } | ||
77 | - if(user_message == '/장바구니삭제') | ||
78 | - { | ||
79 | - | ||
80 | - }*/ //이 기능을 마켓선택기능에 넣는것이 좋을거같음 (db를 공유하기때문에) | ||
81 | } | 93 | } |
82 | } | 94 | } |
83 | 95 | ... | ... |
-
Please register or login to post a comment