HyeonJun Jeon

Complete

...@@ -17,6 +17,7 @@ ...@@ -17,6 +17,7 @@
17 17
18 ```sh 18 ```sh
19 npm install 19 npm install
20 +npm -g install nodemon
20 ``` 21 ```
21 22
22 ### Run 23 ### Run
......
1 +{
2 + "compilerOptions": {
3 + "baseUrl": "src"
4 + }
5 +}
...\ No newline at end of file ...\ No newline at end of file
...@@ -7,7 +7,7 @@ const [id, pw] = fs ...@@ -7,7 +7,7 @@ const [id, pw] = fs
7 .readFileSync("server/libs/sql.pvdata", "utf8") 7 .readFileSync("server/libs/sql.pvdata", "utf8")
8 .split("\r\n"); 8 .split("\r\n");
9 const connectOption = { 9 const connectOption = {
10 - host: "localhost", 10 + host: "extended-calendar-db.cihyg6ssq3la.ap-northeast-2.rds.amazonaws.com",
11 user: id, 11 user: id,
12 password: pw, 12 password: pw,
13 database: "db", 13 database: "db",
...@@ -53,11 +53,10 @@ async function jcalToSQL(jcal, userID) { ...@@ -53,11 +53,10 @@ async function jcalToSQL(jcal, userID) {
53 else console.log("unexpected scheType", sche); 53 else console.log("unexpected scheType", sche);
54 } 54 }
55 55
56 - let result = await connection.query(dateQueryString, [dateSchedules]); 56 + let [result] = await connection.query(dateQueryString, [dateSchedules]);
57 - console.log(`schedules_date | ${result}`); 57 + console.log("ICAL schedules_date | " + result.affectedRows);
58 - 58 + [result] = await connection.query(timeQueryString, [timeSchedules]);
59 - result = await connection.query(timeQueryString, [timeSchedules]); 59 + console.log("ICAL schedules_time | " + result.affectedRows);
60 - console.log(`schedules_time | ${result}`);
61 60
62 connection.end(); 61 connection.end();
63 } 62 }
......
...@@ -6,12 +6,10 @@ const { login } = require("./E_Campus.js"); ...@@ -6,12 +6,10 @@ const { login } = require("./E_Campus.js");
6 const parseICal = require("./ICal.js"); 6 const parseICal = require("./ICal.js");
7 7
8 async function runrun() { 8 async function runrun() {
9 - const { data: ical } = await axios({ 9 +
10 - url: "https://khcanvas.khu.ac.kr/feeds/calendars/user_YzxoryVh1hAQTeUJRljeaYavgmw1OXEGKIzNVpnI.ics", 10 + const mdata = await axios.get("http://localhost:3001/db/users", {params:{loginID:"good1588"}}
11 - method: "GET", 11 +
12 - responseType: "blob", 12 + )
13 - }); 13 + console.log(mdata.data)
14 - const Jcal = parseICal(ical);
15 - console.log(Jcal);
16 } 14 }
17 runrun(); 15 runrun();
......
1 +const { default: axios } = require("axios");
1 const express = require("express"); 2 const express = require("express");
2 const mysql2 = require("mysql2/promise"); 3 const mysql2 = require("mysql2/promise");
3 -const { connectOption } = require("../libs/MySQL"); 4 +const parseICal = require("../libs/ICal");
5 +const { connectOption, jcalToSQL } = require("../libs/MySQL");
4 const dbRouter = express.Router(); 6 const dbRouter = express.Router();
5 7
6 -const schedules_dateRouter = require("./schedules_date"); 8 +const schedules_dateRouter = require("./Schedules_date");
7 const schedules_repeatRouter = require("./Schedules_repeat"); 9 const schedules_repeatRouter = require("./Schedules_repeat");
8 const schedules_timeRouter = require("./Schedules_time"); 10 const schedules_timeRouter = require("./Schedules_time");
9 const subjectsRouter = require("./Subjects"); 11 const subjectsRouter = require("./Subjects");
10 -const userSubjectRouter = require("./user-subject"); 12 +const userSubjectRouter = require("./User-subject");
11 const usersRouter = require("./Users"); 13 const usersRouter = require("./Users");
12 14
13 async function route() { 15 async function route() {
...@@ -29,6 +31,24 @@ async function route() { ...@@ -29,6 +31,24 @@ async function route() {
29 } 31 }
30 }); 32 });
31 33
34 + // (userID, peed)
35 + dbRouter.put("/ical", async (req, res) => {
36 + console.log("put /db/ical");
37 + try {
38 + const { data: ical } = await axios({
39 + url: req.body.peed,
40 + method: "GET",
41 + responseType: "blob",
42 + });
43 + await jcalToSQL(parseICal(ical), req.body.userID);
44 +
45 + res.end();
46 + } catch (e) {
47 + console.log(e);
48 + res.end();
49 + }
50 + });
51 +
32 dbRouter.use("/user-subject", userSubjectRouter); 52 dbRouter.use("/user-subject", userSubjectRouter);
33 dbRouter.use("/users", usersRouter); 53 dbRouter.use("/users", usersRouter);
34 dbRouter.use("/subjects", subjectsRouter); 54 dbRouter.use("/subjects", subjectsRouter);
......
...@@ -14,19 +14,19 @@ router.post("/", async (req, res) => { ...@@ -14,19 +14,19 @@ router.post("/", async (req, res) => {
14 try { 14 try {
15 const { peed, subjects } = result; 15 const { peed, subjects } = result;
16 16
17 - const resUser = await axios.post("http://localhost:3001/db/users", { 17 + const resUser = await axios.post("http://3.34.173.161:3001/db/users", {
18 loginID: req.body.id, 18 loginID: req.body.id,
19 loginPW: req.body.pw, 19 loginPW: req.body.pw,
20 ical: peed, 20 ical: peed,
21 }); 21 });
22 const userID = resUser.data.ID; 22 const userID = resUser.data.ID;
23 const { data: subList } = await axios.post( 23 const { data: subList } = await axios.post(
24 - "http://localhost:3001/db/subjects/s", 24 + "http://3.34.173.161:3001/db/subjects/s",
25 { 25 {
26 list: subjects, 26 list: subjects,
27 } 27 }
28 ); 28 );
29 - await axios.post("http://localhost:3001/db/user-subject/s", { 29 + await axios.post("http://3.34.173.161:3001/db/user-subject/s", {
30 userID, 30 userID,
31 subList, 31 subList,
32 }); 32 });
......
...@@ -56,6 +56,21 @@ async function route() { ...@@ -56,6 +56,21 @@ async function route() {
56 res.end(); 56 res.end();
57 } 57 }
58 }); 58 });
59 +
60 + // (ID) => ical
61 + usersRouter.get("/ical", async (req, res) => {
62 + console.log("/db/users/ical");
63 + try {
64 + const queryString = `
65 + SELECT ical FROM users us
66 + WHERE us.ID = '${req.query.ID}'`;
67 + const [results] = await connection.query(queryString);
68 + res.send(results[0]);
69 + } catch (e) {
70 + console.log(e);
71 + res.end();
72 + }
73 + });
59 } 74 }
60 route(); 75 route();
61 76
......
This diff is collapsed. Click to expand it.
...@@ -4,24 +4,19 @@ const cors = require("cors"); ...@@ -4,24 +4,19 @@ const cors = require("cors");
4 4
5 const loginRouter = require("./routers/Login"); 5 const loginRouter = require("./routers/Login");
6 const dbRouter = require("./routers/DB"); 6 const dbRouter = require("./routers/DB");
7 +const path = require("path");
7 8
8 const app = express(); 9 const app = express();
9 10
10 app.use( 11 app.use(
11 cors({ 12 cors({
12 - origin: "http://localhost:3000", 13 + origin: "http://3.34.173.161:3000",
13 credentials: true, 14 credentials: true,
14 }) 15 })
15 ); 16 );
16 -// app.use(bodyParser.urlencoded({ extended: false }));
17 -// app.use(bodyParser.json());
18 app.use(express.json()); 17 app.use(express.json());
19 app.use(express.urlencoded({ extended: true })); 18 app.use(express.urlencoded({ extended: true }));
20 19
21 -app.post("/", (req, res) => {
22 - console.log("/");
23 -});
24 -
25 app.use("/login", loginRouter); 20 app.use("/login", loginRouter);
26 app.use("/db", dbRouter); 21 app.use("/db", dbRouter);
27 22
...@@ -43,6 +38,11 @@ app.use("/db", dbRouter); ...@@ -43,6 +38,11 @@ app.use("/db", dbRouter);
43 // } else console.log("Incorrect user ID or password."); 38 // } else console.log("Incorrect user ID or password.");
44 // }); 39 // });
45 40
41 +// app.use(express.static(path.join(__dirname, '../build')));
42 +// app.get('*', function (요청, 응답) {
43 +// 응답.sendFile(path.join(__dirname, '../build/index.html'));
44 +// });
45 +
46 app.listen(3001, function () { 46 app.listen(3001, function () {
47 console.log("listening on 3001"); 47 console.log("listening on 3001");
48 }); 48 });
......
...@@ -30,15 +30,15 @@ const GridItem = ({ targetDate }) => { ...@@ -30,15 +30,15 @@ const GridItem = ({ targetDate }) => {
30 day: targetDate.getDay(), 30 day: targetDate.getDay(),
31 }; 31 };
32 const { data: scdate } = await axios.get( 32 const { data: scdate } = await axios.get(
33 - "http://localhost:3001/db/schedules_date", 33 + "http://3.34.173.161:3001/db/schedules_date",
34 { params } 34 { params }
35 ); 35 );
36 const { data: sctime } = await axios.get( 36 const { data: sctime } = await axios.get(
37 - "http://localhost:3001/db/schedules_time", 37 + "http://3.34.173.161:3001/db/schedules_time",
38 { params } 38 { params }
39 ); 39 );
40 const { data: scrpeat } = await axios.get( 40 const { data: scrpeat } = await axios.get(
41 - "http://localhost:3001/db/schedules_repeat", 41 + "http://3.34.173.161:3001/db/schedules_repeat",
42 { params } 42 { params }
43 ); 43 );
44 const subs = await localforage.getItem("subjects"); 44 const subs = await localforage.getItem("subjects");
...@@ -58,7 +58,7 @@ const GridItem = ({ targetDate }) => { ...@@ -58,7 +58,7 @@ const GridItem = ({ targetDate }) => {
58 const finishSchedule = async (table, uid) => { 58 const finishSchedule = async (table, uid) => {
59 for (const i in schedules) 59 for (const i in schedules)
60 if (schedules[i].uid === uid) { 60 if (schedules[i].uid === uid) {
61 - await axios.delete("http://localhost:3001/db/schedule", { 61 + await axios.delete("http://3.34.173.161:3001/db/schedule", {
62 data: { 62 data: {
63 table, 63 table,
64 uid, 64 uid,
...@@ -81,7 +81,7 @@ const GridItem = ({ targetDate }) => { ...@@ -81,7 +81,7 @@ const GridItem = ({ targetDate }) => {
81 const table = 81 const table =
82 state.startTime || state.endTime ? "schedules_time" : "schedules_date"; 82 state.startTime || state.endTime ? "schedules_time" : "schedules_date";
83 const { data: sche } = await axios.post( 83 const { data: sche } = await axios.post(
84 - "http://localhost:3001/db/" + table, 84 + "http://3.34.173.161:3001/db/" + table,
85 { 85 {
86 userID: await localforage.getItem("userID"), 86 userID: await localforage.getItem("userID"),
87 ...state, 87 ...state,
......
...@@ -16,7 +16,7 @@ const render = (subsObj, args) => { ...@@ -16,7 +16,7 @@ const render = (subsObj, args) => {
16 case "CHECKED": 16 case "CHECKED":
17 sub = subsObj[args.subjectID]; 17 sub = subsObj[args.subjectID];
18 sub.status = !sub.status; 18 sub.status = !sub.status;
19 - axios.put("http://localhost:3001/db/user-subject/check", { 19 + axios.put("http://3.34.173.161:3001/db/user-subject/check", {
20 userID: sub.userID, 20 userID: sub.userID,
21 subjectID: args.subjectID, 21 subjectID: args.subjectID,
22 status: +sub.status, 22 status: +sub.status,
...@@ -26,7 +26,7 @@ const render = (subsObj, args) => { ...@@ -26,7 +26,7 @@ const render = (subsObj, args) => {
26 sub = subsObj[args.subjectID]; 26 sub = subsObj[args.subjectID];
27 sub.nickname = args.nickname; 27 sub.nickname = args.nickname;
28 sub.color = args.color; 28 sub.color = args.color;
29 - axios.put("http://localhost:3001/db/user-subject/modify", { 29 + axios.put("http://3.34.173.161:3001/db/user-subject/modify", {
30 userID: sub.userID, 30 userID: sub.userID,
31 subjectID: args.subjectID, 31 subjectID: args.subjectID,
32 nickname: sub.nickname, 32 nickname: sub.nickname,
...@@ -41,7 +41,7 @@ const render = (subsObj, args) => { ...@@ -41,7 +41,7 @@ const render = (subsObj, args) => {
41 }; 41 };
42 42
43 const Calendar = () => { 43 const Calendar = () => {
44 - console.log("visit Calendar"); 44 + // console.log("visit Calendar");
45 45
46 const [state, setState] = useState({ 46 const [state, setState] = useState({
47 scope: "month", 47 scope: "month",
...@@ -56,7 +56,7 @@ const Calendar = () => { ...@@ -56,7 +56,7 @@ const Calendar = () => {
56 // get user's subjects 56 // get user's subjects
57 const userID = await localforage.getItem("userID"); 57 const userID = await localforage.getItem("userID");
58 const { data: subjects } = await axios.get( 58 const { data: subjects } = await axios.get(
59 - "http://localhost:3001/db/user-subject", 59 + "http://3.34.173.161:3001/db/user-subject",
60 { params: { userID } } 60 { params: { userID } }
61 ); 61 );
62 await localforage.setItem("subjects", subjects); 62 await localforage.setItem("subjects", subjects);
......
...@@ -6,7 +6,7 @@ import { useNavigate } from "react-router-dom"; ...@@ -6,7 +6,7 @@ import { useNavigate } from "react-router-dom";
6 import "../styles/Debug.css"; 6 import "../styles/Debug.css";
7 7
8 const Debug = () => { 8 const Debug = () => {
9 - console.log("visit Debug"); 9 + // console.log("visit Debug");
10 10
11 const [state, setState] = useState({ 11 const [state, setState] = useState({
12 type: "login", 12 type: "login",
...@@ -23,25 +23,25 @@ const Debug = () => { ...@@ -23,25 +23,25 @@ const Debug = () => {
23 }; 23 };
24 24
25 const handleSubmit = async (e) => { 25 const handleSubmit = async (e) => {
26 - let result; 26 + // let result;
27 - switch (state.type) { 27 + // switch (state.type) {
28 - case "login": 28 + // case "login":
29 - //result = login(state.input1, state.input2); 29 + // //result = login(state.input1, state.input2);
30 - break; 30 + // break;
31 - case "server": 31 + // case "server":
32 - setState({ ...state, output: "loading..." }); 32 + // setState({ ...state, output: "loading..." });
33 - axios 33 + // axios
34 - .post("http://localhost:3001/login/", { 34 + // .post("http://3.34.173.161:3001/login/", {
35 - id: state.input1, 35 + // id: state.input1,
36 - pw: state.input2, 36 + // pw: state.input2,
37 - }) 37 + // })
38 - .then((res) => { 38 + // .then((res) => {
39 - setState({ ...state, output: res.data }); 39 + // setState({ ...state, output: res.data });
40 - }); 40 + // });
41 - return; 41 + // return;
42 - default: 42 + // default:
43 - } 43 + // }
44 - setState({ ...state, output: result }); 44 + // setState({ ...state, output: result });
45 }; 45 };
46 46
47 const navigate = useNavigate(); 47 const navigate = useNavigate();
......
...@@ -3,7 +3,7 @@ import { useEffect } from "react"; ...@@ -3,7 +3,7 @@ import { useEffect } from "react";
3 import { useNavigate } from "react-router-dom"; 3 import { useNavigate } from "react-router-dom";
4 4
5 const Home = () => { 5 const Home = () => {
6 - console.log("visit Home"); 6 + // console.log("visit Home");
7 7
8 const navigate = useNavigate(); 8 const navigate = useNavigate();
9 useEffect(() => { 9 useEffect(() => {
......
...@@ -7,7 +7,7 @@ import axios from "axios"; ...@@ -7,7 +7,7 @@ import axios from "axios";
7 import cryptoJs from "crypto-js"; 7 import cryptoJs from "crypto-js";
8 8
9 const Login = () => { 9 const Login = () => {
10 - console.log("visit Login"); 10 + // console.log("visit Login");
11 const [state, setState] = useState({ 11 const [state, setState] = useState({
12 id: "", 12 id: "",
13 pw: "", 13 pw: "",
...@@ -25,19 +25,23 @@ const Login = () => { ...@@ -25,19 +25,23 @@ const Login = () => {
25 const login = async () => { 25 const login = async () => {
26 setState({ ...state, btn: "Login..." }); 26 setState({ ...state, btn: "Login..." });
27 const { data: userDBID } = await axios.get( 27 const { data: userDBID } = await axios.get(
28 - "http://localhost:3001/db/users", 28 + "http://3.34.173.161:3001/db/users",
29 - { 29 + { params: { loginID: state.id } }
30 - params: {
31 - loginID: state.id,
32 - },
33 - }
34 ); 30 );
35 -
36 if (userDBID) { 31 if (userDBID) {
37 - //pass crawling 32 + //pass crawling, just ical
33 + const { data: peed } = await axios.get(
34 + "http://3.34.173.161:3001/db/users/ical",
35 + { params: { ID: userDBID } }
36 + );
37 + await axios.put("http://3.34.173.161:3001/db/ical", {
38 + userID: userDBID,
39 + peed: peed.ical,
40 + });
41 +
38 const hashpw = cryptoJs.SHA256(state.pw).toString(); 42 const hashpw = cryptoJs.SHA256(state.pw).toString();
39 const { data: isCorrectPW } = await axios.get( 43 const { data: isCorrectPW } = await axios.get(
40 - "http://localhost:3001/db/users/check", 44 + "http://3.34.173.161:3001/db/users/check",
41 { 45 {
42 params: { loginID: state.id, loginPW: hashpw }, 46 params: { loginID: state.id, loginPW: hashpw },
43 } 47 }
...@@ -53,7 +57,7 @@ const Login = () => { ...@@ -53,7 +57,7 @@ const Login = () => {
53 } else { 57 } else {
54 //crawling 58 //crawling
55 const { data: loginResult } = await axios.post( 59 const { data: loginResult } = await axios.post(
56 - "http://localhost:3001/login/", 60 + "http://3.34.173.161:3001/login/",
57 { 61 {
58 id: state.id, 62 id: state.id,
59 pw: state.pw, 63 pw: state.pw,
......
...@@ -4,7 +4,7 @@ import { Navigate, useNavigate } from "react-router-dom"; ...@@ -4,7 +4,7 @@ import { Navigate, useNavigate } from "react-router-dom";
4 import "../styles/Settings.css"; 4 import "../styles/Settings.css";
5 5
6 const Settings = () => { 6 const Settings = () => {
7 - console.log("visit Settings"); 7 + // console.log("visit Settings");
8 8
9 const session = localforage.getItem("session"); 9 const session = localforage.getItem("session");
10 10
......