{
if (res.status !== 201) {
alert(res.data.error);
+ localStorage.clear();
+ setState({ok:"no"});
}
console.log(res.data);
setUser(res.data);
@@ -97,7 +99,7 @@ function Apply(props) {
return window.location.reload();
}
alert("신청이 완료되었습니다!");
- setState(true);
+ setState({ok:"ok"});
console.log("res.data", res.data)
})
.catch(err => {
diff --git a/server/client/src/Pages/CheckPage.js b/server/client/src/Pages/CheckPage.js
index d03784ae25ae9a382b0bf94dae72d325061f2aa2..57cf9844b47870c7541b9e6ffa3c3456fa79fc97 100644
--- a/server/client/src/Pages/CheckPage.js
+++ b/server/client/src/Pages/CheckPage.js
@@ -1,23 +1,35 @@
import React, { useState, useEffect } from 'react';
import Menu from '../Components/Menu';
+import { Redirect } from 'react-router-dom';
import axios from 'axios';
function Check(props) {
const [reserve, setReserve] = useState([]);
+ const [state, setState] = useState()
useEffect(() => {
getReserve();
}, [])
+ if (state) return ;
+
function getReserve() {
axios.get(`/reserves/${props.match.params.id}`, {
headers: { authorization: localStorage.getItem('token') },
})
.then(res => {
- if (res.status !== 201) {
+ if (res.status === 404) {
+ alert(res.data.error);
+ }
+ if (res.status === 419) {
alert(res.data.error);
+ localStorage.clear();
+ setState(true);
}
console.log(res.data);
- setReserve(res.data);
+ const reserves=res.data.filter(function(item) {
+ return item !== '';
+ });
+ setReserve(reserves);
})
.catch(err => {
alert(err.error)
diff --git a/server/client/src/Pages/HomePage.js b/server/client/src/Pages/HomePage.js
index db05aa07038d560780d15c80d3e54d2f11f126cf..c6fa3c55c5998db45e55ae20af287f6c791375cc 100644
--- a/server/client/src/Pages/HomePage.js
+++ b/server/client/src/Pages/HomePage.js
@@ -1,11 +1,35 @@
import React, { useState, useEffect } from 'react';
import Menu from '../Components/Menu';
import Schedule from '../Components/Schedule';
+import { Redirect } from 'react-router-dom';
import Tabs from 'react-bootstrap/Tabs';
+import axios from 'axios';
import Tab from 'react-bootstrap/Tab';
function Home() {
const [key, setKey] = useState('9-116');
+ const [state, setState] = useState()
+
+ useEffect(() => {
+ tcheck();
+ }, []);
+
+ if (state) return ;
+
+ function tcheck() {
+ axios.get(`/users/${localStorage.getItem('_id')}`, {
+ headers: { authorization: localStorage.getItem('token') },
+ })
+ .then(res => {
+ if (res.status !== 201) {
+ alert(res.data.error);
+ localStorage.clear();
+ setState(true);
+ }
+ }).catch(err => {
+ alert(err.error)
+ });
+ }
return (
@@ -21,13 +45,13 @@ function Home() {
setKey(k)}>
-
+
-
+
-
+
유의사항
diff --git a/server/client/src/Pages/NoticePage.js b/server/client/src/Pages/NoticePage.js
index 327798ac643aac7044e0979be91bf235e31a8fa4..3f8e76b9c3f385d26891980fcd79ae8ccbefcb37 100644
--- a/server/client/src/Pages/NoticePage.js
+++ b/server/client/src/Pages/NoticePage.js
@@ -1,22 +1,32 @@
import React, { useState, useEffect } from 'react';
import Menu from '../Components/Menu';
import axios from 'axios';
-import { Link } from 'react-router-dom';
+import { Link, Redirect } from 'react-router-dom';
import { Container, Row, Col, Card, Accordion, Button } from 'react-bootstrap';
function Notice() {
const [show, setShow] = useState(false);
const [notices, setNotices] = useState([]);
const [user, setUser] = useState({ role: "" })
+ const [state, setState] = useState()
useEffect(() => {
acheck();
getNotice();
}, []);
+ if (state) return ;
+
function acheck() {
- axios.get(`/users/${localStorage.getItem('_id')}`)
+ axios.get(`/users/${localStorage.getItem('_id')}`, {
+ headers: { authorization: localStorage.getItem('token') },
+ })
.then(res => {
+ if (res.status !== 201) {
+ alert(res.data.error);
+ localStorage.clear();
+ setState(true);
+ }
if (res.data.role == "admin") {
setUser(res.data)
}
diff --git a/server/routes/login.js b/server/routes/login.js
index 9dfe2d75f0d81ac4ff930aeef622fa8bed160934..d6e6e3514d4a7280630ed0a66edad1840c4b7704 100644
--- a/server/routes/login.js
+++ b/server/routes/login.js
@@ -37,7 +37,7 @@ router.post('/', function (req, res, next) {
const token = jwt.sign({
id: users.id,
}, process.env.JWT_SECRET, {
- expiresIn: '1m',
+ expiresIn: '1h',
});
return res.status(201).json({
token,
diff --git a/server/routes/reserves.js b/server/routes/reserves.js
index eb24502a6933190fdb4e5e6698f7abb2049b43d5..776fae6fe1654d8b1c7efa6ff3c436500cd629f3 100644
--- a/server/routes/reserves.js
+++ b/server/routes/reserves.js
@@ -17,7 +17,8 @@ router.post('/', function (req, res, next) {
room: req.body.room,
reason: req.body.reason,
students: req.body.students,
- approve: req.body.approve,
+ approve: true,
+ check: true,
num: req.body.students.length + 1,
});
@@ -70,15 +71,25 @@ router.get('/room/:room', function (req, res, next) {
})
// router.get('/:_id', verifyToken, function (req, res, next) {
-router.get('/:_id', function (req, res, next) {
+router.get('/:_id', verifyToken, function (req, res, next) {
console.log('/reserves get req.params', req.params)
Reserve.find({ user: req.params._id }, function (err, reserve) {
if (err) return res.status(500).json({ error: err });
- res.status(201).json(reserve);
+ // console.log(reserve, Date.now())
+ const reserves = reserve.map(item => (
+ new Date(item.end) >= Date.now() ? item : ""
+ ));
+
+ if (!reserves) {
+ console.log("no신청")
+ res.status(404).json({error: "신청내역이 없습니다."})
+ }
+ console.log("reserves",reserves)
+ res.status(201).json(reserves);
})
});
-router.get('/admin/:_id', function (req, res, next) {
+router.get('/admin/:_id', verifyToken, function (req, res, next) {
console.log('/reserves/admin get req.params', req.params)
Reserve.find({ approve: false }).populate('user').exec(function (err, reserve) {
if (err) return res.status(500).json({ error: err });
diff --git a/server/routes/users.js b/server/routes/users.js
index 36828d94a3be9b66226d18000fda5ff2f1803e10..7f5367596a0d821c7bce88987a2d2040d2f8d4b7 100644
--- a/server/routes/users.js
+++ b/server/routes/users.js
@@ -34,7 +34,7 @@ router.post('/', function (req, res, next) {
})
});
-router.get('/:_id', function (req, res, next) {
+router.get('/:_id', verifyToken, function (req, res, next) {
console.log('/users get req.params', req.params)
User.findOne({ _id: req.params._id }, function (err, user) {
if (err) return res.status(500).json({ error: err });