From 8c341f078e6a95d1d15e74921a74f531379a3b4c Mon Sep 17 00:00:00 2001
From: LeeYongJae <sdc5678@ajou.ac.kr>
Date: Thu, 5 Dec 2019 21:16:49 +0900
Subject: [PATCH] =?UTF-8?q?Login=20with=20Session=20=EB=8B=A4=EC=8B=9C=20?=
 =?UTF-8?q?=EC=98=AC=EB=A6=BD=EB=8B=88=EB=8B=A4.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 .gitignore                                    |  4 +-
 backend/app.js                                |  2 +
 backend/package-lock.json                     |  5 ++
 backend/package.json                          |  3 +-
 backend/routes/emails.js                      | 33 ++++++++++
 frontend/src/components/BookSearchPage.vue    |  2 +-
 frontend/src/components/home.vue              | 15 ++++-
 .../components/profilecomponent/buylist.vue   | 64 +++++++++++++++++++
 8 files changed, 123 insertions(+), 5 deletions(-)
 create mode 100644 backend/routes/emails.js

diff --git a/.gitignore b/.gitignore
index ce60c7e..b20c624 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,4 @@
 **/node_modules
-**/sessions
\ No newline at end of file
+**/sessions
+**/frontend/package-lock.json
+**/frontend/package.json
diff --git a/backend/app.js b/backend/app.js
index 81d1bf6..2ec4475 100644
--- a/backend/app.js
+++ b/backend/app.js
@@ -10,6 +10,7 @@ var FileStore = require("session-file-store")(session);
 
 var bookRouter = require("./routes/books");
 var loginRouter = require("./routes/login");
+var emailRouter = require("./routes/emails");
 
 var app = express();
 
@@ -45,6 +46,7 @@ app.use(express.static(path.join(__dirname, "public")));
 
 app.use("/api/books", bookRouter);
 app.use("/api/login", loginRouter);
+app.use("/api/emails", emailRouter);
 
 // catch 404 and forward to error handler
 app.use(function(req, res, next) {
diff --git a/backend/package-lock.json b/backend/package-lock.json
index 3d3dca9..3b4c6fa 100644
--- a/backend/package-lock.json
+++ b/backend/package-lock.json
@@ -738,6 +738,11 @@
       "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
       "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
     },
+    "nodemailer": {
+      "version": "6.4.0",
+      "resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.4.0.tgz",
+      "integrity": "sha512-UBqPOfQGD1cM3HnjhuQe+0u3DWx47WWK7lBjG5UtPnGOysr7oDK5lNCzcjK6zzeBSdTk4m1tGx1xNbWFZQmMNA=="
+    },
     "object-assign": {
       "version": "4.1.1",
       "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
diff --git a/backend/package.json b/backend/package.json
index 4d65a8a..c264c6b 100644
--- a/backend/package.json
+++ b/backend/package.json
@@ -16,6 +16,7 @@
     "mongoose": "^5.7.12",
     "morgan": "~1.9.1",
     "pug": "2.0.0-beta11",
-    "session-file-store": "^1.3.1"
+    "session-file-store": "^1.3.1",
+    "nodemailer": "^6.4.0"
   }
 }
diff --git a/backend/routes/emails.js b/backend/routes/emails.js
new file mode 100644
index 0000000..40d50c1
--- /dev/null
+++ b/backend/routes/emails.js
@@ -0,0 +1,33 @@
+const express = require('express');
+const nodemailer = require('nodemailer');
+const router = express.Router();
+
+router.get("", function(req, res, next){
+  let email = "hj950000@ajou.ac.kr"
+
+  let transporter = nodemailer.createTransport({
+    service: 'gmail',
+    auth: {
+        user: 'majorbook202@gmail.com', // gmail 계정 아이디를 입력
+        pass: 'dnjfdydlf' // gmail 계정의 비밀번호를 입력
+    }
+  });
+
+  let mailOptions = {
+    from: 'majorbook202@gmail.com',    // 발송 메일 주소 (위에서 작성한 gmail 계정 아이디)
+    to: "hj950000@ajou.ac.kr",                     // 수신 메일 주소
+    subject: 'MajorBook구매요청이 들어왔습니다.',   // 제목
+    text: '올리신 책 ~~에 대한 구매요청이 도착했습니다. 해당 구매자의 전화번호는 ~~입니다.'  // 내용
+  };
+
+  transporter.sendMail(mailOptions, function(error, info){
+    if (error) {
+      console.log(error);
+    }
+    else {
+      console.log('Email sent: ' + info.response);
+    }
+  });
+})
+
+module.exports = router;
\ No newline at end of file
diff --git a/frontend/src/components/BookSearchPage.vue b/frontend/src/components/BookSearchPage.vue
index c8dedcf..fa52caf 100644
--- a/frontend/src/components/BookSearchPage.vue
+++ b/frontend/src/components/BookSearchPage.vue
@@ -69,7 +69,7 @@
     <!-- =============서포터즈 submit 양식 ================== -->
     <div>
       <md-dialog :md-active.sync="active" style="width : 500px; height: 1000px ">
-        <md-dialog-title>서포터즈 신청</md-dialog-title>
+        <md-dialog-title>판매도서 등록</md-dialog-title>
         <md-field class="select">
           <label>책제목</label>
           <md-input v-model="submit.title"></md-input>
diff --git a/frontend/src/components/home.vue b/frontend/src/components/home.vue
index e487846..eb70fd6 100644
--- a/frontend/src/components/home.vue
+++ b/frontend/src/components/home.vue
@@ -13,14 +13,25 @@
 <script>
 import Hotlist from "./home_hotlist/HotList";
 export default {
+    created() {
+          this
+            .$http
+            .get('/api/emails')
+            .then(response => {
+              console.log("Sending Success")
+            })
+          },
+
   data() {
     return {};
   },
 components: {
-  
     Hotlist
   },
-  methods: {}
+  methods: {
+
+
+  }
 };
 </script>
 
diff --git a/frontend/src/components/profilecomponent/buylist.vue b/frontend/src/components/profilecomponent/buylist.vue
index cfa6463..60e76dd 100644
--- a/frontend/src/components/profilecomponent/buylist.vue
+++ b/frontend/src/components/profilecomponent/buylist.vue
@@ -20,6 +20,70 @@
         </md-button>
       </md-list-item>
       <md-divider></md-divider>
+      <md-list-item>
+        <md-button class="md-icon-button md-raised" style="color:#1DDB16;backgroundColor:#1DDB16">
+          <img src="../../assets/book-open-flat.png" />
+        </md-button>
+        <div class="md-list-item-text">
+          <span>&nbsp;&nbsp;책 제목</span>
+          <span>&nbsp;&nbsp;구매 대기중</span>
+        </div>
+        <md-button class="md-icon-button md-raised md-accent">
+          <img src="../../assets/x-512.png" />
+        </md-button>
+        <md-button class="md-icon-button md-raised md-primary">
+          <img src="../../assets/check-icon.png" />
+        </md-button>
+      </md-list-item>
+      <md-divider></md-divider>
+      <md-list-item>
+        <md-button class="md-icon-button md-raised" style="color:#1DDB16;backgroundColor:#1DDB16">
+          <img src="../../assets/book-open-flat.png" />
+        </md-button>
+        <div class="md-list-item-text">
+          <span>&nbsp;&nbsp;책 제목</span>
+          <span>&nbsp;&nbsp;구매 대기중</span>
+        </div>
+        <md-button class="md-icon-button md-raised md-accent">
+          <img src="../../assets/x-512.png" />
+        </md-button>
+        <md-button class="md-icon-button md-raised md-primary">
+          <img src="../../assets/check-icon.png" />
+        </md-button>
+      </md-list-item>
+      <md-divider></md-divider>
+      <md-list-item>
+        <md-button class="md-icon-button md-raised" style="color:#1DDB16;backgroundColor:#1DDB16">
+          <img src="../../assets/book-open-flat.png" />
+        </md-button>
+        <div class="md-list-item-text">
+          <span>&nbsp;&nbsp;책 제목</span>
+          <span>&nbsp;&nbsp;구매 대기중</span>
+        </div>
+        <md-button class="md-icon-button md-raised md-accent">
+          <img src="../../assets/x-512.png" />
+        </md-button>
+        <md-button class="md-icon-button md-raised md-primary">
+          <img src="../../assets/check-icon.png" />
+        </md-button>
+      </md-list-item>
+      <md-divider></md-divider>
+      <md-list-item>
+        <md-button class="md-icon-button md-raised" style="color:#1DDB16;backgroundColor:#1DDB16">
+          <img src="../../assets/book-open-flat.png" />
+        </md-button>
+        <div class="md-list-item-text">
+          <span>&nbsp;&nbsp;책 제목</span>
+          <span>&nbsp;&nbsp;구매 대기중</span>
+        </div>
+        <md-button class="md-icon-button md-raised md-accent">
+          <img src="../../assets/x-512.png" />
+        </md-button>
+        <md-button class="md-icon-button md-raised md-primary">
+          <img src="../../assets/check-icon.png" />
+        </md-button>
+      </md-list-item>
+      <md-divider></md-divider>
     </md-list>
   </div>
 </template>
-- 
GitLab