신일섭

DB기능 다른 모듈에 접목, 버그여부 아직 확인안함

......@@ -60,7 +60,11 @@ async function gmarket_c(user_id, g_id, g_pw){
//logging the result
for(let index = 0; index < data.length; index++){
// 뽑아낸 정보 reply
await replying(data[index].prd_img, data[index].prd_name, data[index].prd_price, data[index].prd_link);
// DB에 정보 삽입
await dbcontrol.synchronization(USER_ID, data[index].prd_img, data[index].prd_name, data[index].prd_price, data[index].prd_link);
console.log(data[index]);
}
......
......@@ -23,7 +23,7 @@ db.defaults({cart : []}).write();
}
// 장바구니 동기화
function synchronization(USER_ID, prd_img, prd_name, prd_price, prd_link){
async function synchronization(USER_ID, prd_img, prd_name, prd_price, prd_link){
const adapter = new FileSync(USER_ID + '.json');
const db = low(adapter);
......@@ -42,7 +42,11 @@ function synchronization(USER_ID, prd_img, prd_name, prd_price, prd_link){
}
// db에서 목록 검색 후 삭제
function deleting(USER_ID, prd_link){
async function deleting(USER_ID, prd_link){
try {
fs.statSync('./' + USER_ID + '.json'); // 이미 파일이 있다면
console.log('file or directory exists');
const adapter = new FileSync(USER_ID + '.json');
const db = low(adapter);
......@@ -52,10 +56,27 @@ function deleting(USER_ID, prd_link){
.remove({PRD_LINK : prd_link})
.write(); // prd_link 참조 삭제
pushing(USER_ID, '-----삭제 완료-----');
}
catch (err) { // 파일이 없다면
if (err.code === 'ENOENT') {
console.log('file or directory does not exist');
pushing(USER_ID, 'DB가 존재하지 않습니다');
}
else{
console.log('삭제할 내용과 일치하는 리스트가 없습니다.');
pushing(USER_ID, '삭제할 내용과 일치하는 리스트가 없습니다');
}
}
}
// db에서 USER_ID 기반 장바구니 조회
function viewing(USER_ID){
async function viewing(USER_ID){
try {
fs.statSync('./' + USER_ID + '.json'); // 이미 파일이 있다면
console.log('file or directory exists');
const adapter = new FileSync(USER_ID + '.json');
const db = low(adapter);
......@@ -64,7 +85,26 @@ function viewing(USER_ID){
var datalist = new Array();
datalist = db.get('cart').value(); // [ { } ] 배열속 객체형태로 리턴
//미완성 - 메세지로 내역 push하는 기능 업데이트 요망
//메세지로 내역 push하는 기능
console.log(datalist);
datalist.forEach(function(item, index, array){
viewall(array[index].PRD_IMG, array[index].PRD_NAME, array[index].PRD_PRICE, array[index].PRD_LINK);
});
}
catch (err) { // 파일이 없다면
if (err.code === 'ENOENT') {
console.log('file or directory does not exist');
pushing(USER_ID, 'DB가 존재하지 않습니다');
}
else{
console.log('Directory is empty');
pushing(USER_ID, 'DB 가 비었습니다.');
}
}
}
......
......@@ -22,6 +22,7 @@ var shopping = 0; // in shopping menu identifier 0 = idle, 1 = shop
var shop_select = undefined // shopping-site identifier
var method_action = 0; // typing count;
var user_info = new Array(); // 유저 정보 저장용
var deleting_able = false; // 장바구니 항목 삭제용
//------------------------------------------
// ------------ db calling modules ---------
......@@ -34,18 +35,37 @@ async function shoppingroute(user_message, user_id, replyToken){
USER_ID = user_id;
if(user_message == '/쇼핑' ){
replying(replyToken, '쇼핑을 선택하셨습니다.\n원하시는 쇼핑몰 사이트를 선택하세요.\n현재 제공되는 사이트는 \n\n/g마켓\n/옥션\n/쿠팡\n\n입니다.\n/취소 로 해당 메뉴에서 퇴장이 가능합니다.');
replying(replyToken, '쇼핑을 선택하셨습니다.\n원하시는 쇼핑몰 사이트 또는 기능을 선택하세요.\n현재 제공되는 사이트는 \n\n/g마켓\n/옥션\n/쿠팡\n\n입니다.\n\n기능은 /장바구니조회\n/장바구니삭제\n\n입니다.\n\n/취소 로 해당 메뉴에서 퇴장이 가능합니다.');
shopping = 1; // 다음 메세지에 선택하지 못할 경우 0으로 되돌릴 필요가있음
}
// 삭제 단독 처리용
if(deleting_able === true && shopping == 1){
dbcontrol.deleting(USER_ID, user_message); // user_message는 링크로 입력할 것
shopping = 0; deleting_able = false; // 메인메뉴로 되돌아감
}
if(shopping == 1){
if(user_message == '/g마켓'){
replying(replyToken, 'g마켓을 선택하셨습니다.\n원하시는 항목을 선택하세요.\n\n/장바구니동기화\n/장바구니조회\n/장바구니추가\n/장바구니삭제');
replying(replyToken, 'g마켓을 선택하셨습니다.\n원하시는 항목을 선택하세요.\n\n/장바구니동기화');
shopping = 2; shop_select = 'g마켓';
}else if(user_message == '/옥션'){
}else if(user_message == '쿠팡'){
}else if(user_message == '/쿠팡'){
}else if(user_message == '/장바구니조회'){
// DB에서 USER_ID.json 을 가진 파일을 읽어들임
replying(replyToken, '장바구니조회를 선택하셨습니다.\nDB를 읽고 있습니다.');
dbcontrol.viewing(USER_ID);
shopping = 0; // 메인메뉴로 되돌아감
}else if(user_message == '/장바구니삭제'){
replying(replyToken, '장바구니삭제를 선택하셨습니다.\n삭제할 링크를 입력해주세요.');
deleting_able = true; // 삭제가능상태 적용
dbcontrol.deleting(user_message);
}
}else{
replying(replyToken, 'Error: 유효하지 않은 선택입니다. 메인으로 되돌아갑니다.');
shopping = 0;
}
}
......@@ -66,18 +86,10 @@ async function shoppingroute(user_message, user_id, replyToken){
//장바구니 크롤링하는 함수
USER_ID = user_id; // 상대방 ID 획득
await gmarket.gmarket_c(USER_ID, user_info[2], user_info[1]);
// replying(eventObj.replyToken, '리스트를 출력중입니다... 출력전까지 기다려주세요\n\n\n/장바구니동기화\n장바구니조회\n/장바구니추가\n/장바구니삭제');
shopping = 2;
}
shopping = 0;
shop_select = undefined; //메인메뉴로 돌아가기 위함
}
/* if(user_message == '/장바구니조회')
{
}
if(user_message == '/장바구니삭제')
{
}*/ //이 기능을 마켓선택기능에 넣는것이 좋을거같음 (db를 공유하기때문에)
}
}
......