Commit 1e75d62c authored by Yoon, Daeki's avatar Yoon, Daeki 😅
Browse files

api changed

parent 2e9e6170
...@@ -47,7 +47,7 @@ function Notice({ card_id, card_index, title, date, content, admin }) { ...@@ -47,7 +47,7 @@ function Notice({ card_id, card_index, title, date, content, admin }) {
} }
function remove (card_id) { function remove (card_id) {
axios.delete(`/notices/${card_id}`) axios.delete(`/api/notices/${card_id}`)
.then(res => { .then(res => {
if (res.status === 404) return alert(res.data.error) if (res.status === 404) return alert(res.data.error)
alert("삭제되었습니다!"); alert("삭제되었습니다!");
......
...@@ -28,7 +28,7 @@ function Menu() { ...@@ -28,7 +28,7 @@ function Menu() {
}, []) }, [])
function acheck() { function acheck() {
axios.get(`/users/${localStorage.getItem('_id')}`, { axios.get(`/api/users/${localStorage.getItem('_id')}`, {
headers: { authorization: localStorage.getItem('token') }, headers: { authorization: localStorage.getItem('token') },
}).then(res => { }).then(res => {
if (res.data.role == "admin") { if (res.data.role == "admin") {
......
...@@ -20,7 +20,7 @@ function Cal(props) { ...@@ -20,7 +20,7 @@ function Cal(props) {
}); });
function getReserve(room) { function getReserve(room) {
axios.get(`/reserves/room/${room}`, { axios.get(`/api/reserves/room/${room}`, {
headers: { authorization: localStorage.getItem('token') }, headers: { authorization: localStorage.getItem('token') },
}) })
.then(res => { .then(res => {
......
...@@ -31,7 +31,7 @@ function ACheck(props) { ...@@ -31,7 +31,7 @@ function ACheck(props) {
}, []) }, [])
function getReserve() { function getReserve() {
axios.get(`/users/admin/${props.match.params.id}`, { axios.get(`/api/users/admin/${props.match.params.id}`, {
headers: { authorization: localStorage.getItem('token') }, headers: { authorization: localStorage.getItem('token') },
}) })
.then(res => { .then(res => {
...@@ -48,7 +48,7 @@ function ACheck(props) { ...@@ -48,7 +48,7 @@ function ACheck(props) {
if (state) return <Redirect to="/" />; if (state) return <Redirect to="/" />;
function remove(index) { function remove(index) {
axios.put(`/reserves/${reserve[index]._id}`) axios.put(`/api/reserves/${reserve[index]._id}`)
.then(res => { .then(res => {
if (res.status === 404) return alert(res.data.error) if (res.status === 404) return alert(res.data.error)
alert("승인을 거절했습니다!"); alert("승인을 거절했습니다!");
...@@ -60,7 +60,7 @@ function ACheck(props) { ...@@ -60,7 +60,7 @@ function ACheck(props) {
}; };
function admit(index) { function admit(index) {
axios.put(`/reserves/${reserve[index]._id}`, { axios.put(`/api/reserves/${reserve[index]._id}`, {
approve: true, approve: true,
}) })
.then(res => { .then(res => {
......
...@@ -46,7 +46,7 @@ function Apply(props) { ...@@ -46,7 +46,7 @@ function Apply(props) {
} }
function getUser() { function getUser() {
axios.get(`/users/${props.match.params.id}`, { axios.get(`/api/users/${props.match.params.id}`, {
headers: { authorization: localStorage.getItem('token') }, headers: { authorization: localStorage.getItem('token') },
}) })
.then(res => { .then(res => {
...@@ -100,7 +100,7 @@ function Apply(props) { ...@@ -100,7 +100,7 @@ function Apply(props) {
addRoomInfo(values); addRoomInfo(values);
axios({ axios({
method: 'post', method: 'post',
url: '/reserves', url: '/api/reserves',
data: values data: values
}).then(res => { }).then(res => {
if (res.status === 404) { if (res.status === 404) {
......
...@@ -12,9 +12,9 @@ const Check = styled.div` ...@@ -12,9 +12,9 @@ const Check = styled.div`
content: '새로운 비밀번호를 다시 입력하세요'; content: '새로운 비밀번호를 다시 입력하세요';
} }
& #reCheck:not(.right) { & #reCheck:not(.right)::after {
content: '비밀번호가 일치하지 않습니다.';
color: red; color: red;
content: "비밀번호가 일치하지 않습니다";
} }
` `
...@@ -29,12 +29,12 @@ function Change(props) { ...@@ -29,12 +29,12 @@ function Change(props) {
return ( return (
<div className=""> <div className="">
{(localStorage.getItem("token") !== null) ? ( {(localStorage.getItem("token") !== null) ? (
<Menu /> <Menu />
) : ( ) : (
<Menu expand="md" variant="dark"> <Menu expand="md" variant="dark">
<Navbar.Brand>회원가입</Navbar.Brand> <Navbar.Brand>회원가입</Navbar.Brand>
</Menu> </Menu>
)} )}
<Container fluid className="p-0 vh-90"> <Container fluid className="p-0 vh-90">
<Check className="row justify-content-center m-0"> <Check className="row justify-content-center m-0">
<Col md={4} className="pt-5"> <Col md={4} className="pt-5">
...@@ -50,7 +50,7 @@ function Change(props) { ...@@ -50,7 +50,7 @@ function Change(props) {
.oneOf([Yup.ref("password"), null], '비밀번호가 일치하지 않습니다.'), .oneOf([Yup.ref("password"), null], '비밀번호가 일치하지 않습니다.'),
})} })}
onSubmit={(values, { setSubmitting }) => { onSubmit={(values, { setSubmitting }) => {
axios.put(`/users/change/${props.location.state.id}`, { ...values }, axios.put(`/api/users/change/${props.location.state.id}`, { ...values },
) )
.then(res => { .then(res => {
console.log(res.data); console.log(res.data);
...@@ -87,7 +87,7 @@ function Change(props) { ...@@ -87,7 +87,7 @@ function Change(props) {
</div> </div>
<div className="form-group"> <div className="form-group">
{touched.password2 && errors.password2 ? setCheckPw(false) : null} {touched.password2 && errors.password2 ? setCheckPw(false) : setCheckPw(true)}
<div id="reCheck" className={checkPw ? "right" : "err"}></div> <div id="reCheck" className={checkPw ? "right" : "err"}></div>
<input <input
className={(touched.password2 && errors.password2 ? 'form-control is-invalid' : "form-control")} className={(touched.password2 && errors.password2 ? 'form-control is-invalid' : "form-control")}
......
...@@ -37,7 +37,7 @@ function Check(props) { ...@@ -37,7 +37,7 @@ function Check(props) {
if (state) return <Redirect to="/" />; if (state) return <Redirect to="/" />;
function getReserve() { function getReserve() {
axios.get(`/reserves/${props.match.params.id}`, { axios.get(`/api/reserves/${props.match.params.id}`, {
headers: { authorization: localStorage.getItem('token') }, headers: { authorization: localStorage.getItem('token') },
}) })
.then(res => { .then(res => {
...@@ -59,7 +59,7 @@ function Check(props) { ...@@ -59,7 +59,7 @@ function Check(props) {
}); });
} }
function remove(index) { function remove(index) {
axios.delete(`/reserves/${reserve[index]._id}`) axios.delete(`/api/reserves/${reserve[index]._id}`)
.then(res => { .then(res => {
if (res.status === 404) return alert(res.data.error) if (res.status === 404) return alert(res.data.error)
alert("삭제되었습니다!"); alert("삭제되었습니다!");
......
...@@ -43,7 +43,7 @@ function Find() { ...@@ -43,7 +43,7 @@ function Find() {
onSubmit={(values, { setSubmitting }) => { onSubmit={(values, { setSubmitting }) => {
axios({ axios({
method: 'post', method: 'post',
url: '/login/find', url: '/api/login/find',
data: values, data: values,
}).then(res => { }).then(res => {
if (res.status === 404) return alert(res.data.error) if (res.status === 404) return alert(res.data.error)
......
...@@ -16,7 +16,7 @@ function Home() { ...@@ -16,7 +16,7 @@ function Home() {
if (state) return <Redirect to="/" />; if (state) return <Redirect to="/" />;
function tcheck() { function tcheck() {
axios.get(`/users/${localStorage.getItem('_id')}`, { axios.get(`/api/users/${localStorage.getItem('_id')}`, {
headers: { authorization: localStorage.getItem('token') }, headers: { authorization: localStorage.getItem('token') },
}) })
.then(res => { .then(res => {
......
...@@ -125,7 +125,7 @@ function Login() { ...@@ -125,7 +125,7 @@ function Login() {
onSubmit={(values, { setSubmitting }) => { onSubmit={(values, { setSubmitting }) => {
axios({ axios({
method: 'post', method: 'post',
url: '/login', url: '/api/login',
data: values, data: values,
}).then(res => { }).then(res => {
if (res.status === 404) return alert(res.data.error) if (res.status === 404) return alert(res.data.error)
......
...@@ -25,7 +25,7 @@ function Modify({ match }) { ...@@ -25,7 +25,7 @@ function Modify({ match }) {
function getOne(id) { function getOne(id) {
if (id) { if (id) {
axios.get(`/notices/${match.params.id}`) axios.get(`/api/notices/${match.params.id}`)
.then(res => { .then(res => {
if (res.status !== 201) { if (res.status !== 201) {
alert(res.data.error); alert(res.data.error);
...@@ -39,7 +39,7 @@ function Modify({ match }) { ...@@ -39,7 +39,7 @@ function Modify({ match }) {
}; };
function acheck() { function acheck() {
axios.get(`/users/admin/${localStorage.getItem('_id')}`, { axios.get(`/api/users/admin/${localStorage.getItem('_id')}`, {
headers: { authorization: localStorage.getItem('token') }, headers: { authorization: localStorage.getItem('token') },
}) })
.then(res => { .then(res => {
...@@ -73,7 +73,7 @@ function Modify({ match }) { ...@@ -73,7 +73,7 @@ function Modify({ match }) {
onSubmit={(values, { setSubmitting }) => { onSubmit={(values, { setSubmitting }) => {
axios({ axios({
method: 'put', method: 'put',
url: `/writes/${match.params.id}`, url: `/api/writes/${match.params.id}`,
data: values, data: values,
}) })
.then(res => { .then(res => {
......
...@@ -18,7 +18,7 @@ function Notice() { ...@@ -18,7 +18,7 @@ function Notice() {
if (state) return <Redirect to="/" />; if (state) return <Redirect to="/" />;
function acheck() { function acheck() {
axios.get(`/users/${localStorage.getItem('_id')}`, { axios.get(`/api/users/${localStorage.getItem('_id')}`, {
headers: { authorization: localStorage.getItem('token') }, headers: { authorization: localStorage.getItem('token') },
}) })
.then(res => { .then(res => {
...@@ -36,7 +36,7 @@ function Notice() { ...@@ -36,7 +36,7 @@ function Notice() {
} }
function getNotice() { function getNotice() {
axios.get(`/notices`) axios.get(`/api/notices`)
.then(res => { .then(res => {
console.log('res.data=', res.data) console.log('res.data=', res.data)
if (res.status !== 201) { if (res.status !== 201) {
......
...@@ -17,147 +17,147 @@ const Menu = styled(Navbar)` ...@@ -17,147 +17,147 @@ const Menu = styled(Navbar)`
const Wow = styled.div` const Wow = styled.div`
height: 90vh; height: 90vh;
& #reCheck::after { & #reCheck:after {
content: '비밀번호를 다시 입력하세요'; content: "비밀번호를 다시 입력하세요";
} }
& #reCheck:not(.right) { & #reCheck:not(.right)::after {
content: '비밀번호가 일치하지 않습니다.';
color: red; color: red;
content: "비밀번호가 일치하지 않습니다";
} }
` `
function Signup() { function Signup() {
const [state, setState] = useState(false); const [state, setState] = useState(false);
const [checkPw, setCheckPw] = useState(true); const [checkPw, setCheckPw] = useState(true);
if (state) { if (state) {
return <Redirect to="/login" />; return <Redirect to="/login" />;
} }
return ( return (
<div className="vh-100"> <div className="vh-100">
<Menu expand="md" variant="dark"> <Menu expand="md" variant="dark">
<Navbar.Brand>회원가입</Navbar.Brand> <Navbar.Brand>회원가입</Navbar.Brand>
</Menu> </Menu>
<Container fluid> <Container fluid>
<Wow className="row justify-content-center"> <Wow className="row justify-content-center">
<Col md={3} xs={11} className="p-0"> <Col md={3} xs={11} className="p-0">
<Formik <Formik
initialValues={{ name: '', id: '', password: '', password2: '', question: '', answer: '' }} initialValues={{ name: '', id: '', password: '', password2: '', question: '', answer: '' }}
validationSchema={Yup.object({ validationSchema={Yup.object({
name: Yup.string() name: Yup.string()
.required('이름을 입력해주세요.'), .required('이름을 입력해주세요.'),
id: Yup.string() id: Yup.string()
.required('학번을 입력해주세요.'), .required('학번을 입력해주세요.'),
password: Yup.string() password: Yup.string()
.required('비밀번호를 입력해주세요.') .required('비밀번호를 입력해주세요.')
.min(8, '8자 이상 입력해주세요.'), .min(8, '8자 이상 입력해주세요.'),
password2: Yup.string() password2: Yup.string()
.required('비밀번호를 다시 입력해주세요.') .required('비밀번호를 다시 입력해주세요.')
.min(8, '8자 이상 입력해주세요.') .min(8, '8자 이상 입력해주세요.')
.oneOf([Yup.ref("password"), null], '비밀번호가 일치하지 않습니다.'), .oneOf([Yup.ref("password"), null], '비밀번호가 일치하지 않습니다.'),
answer: Yup.string() answer: Yup.string()
.required('답변을 입력해주세요.'), .required('답변을 입력해주세요.'),
})} })}
onSubmit={(values, { setSubmitting }) => { onSubmit={(values, { setSubmitting }) => {
axios({ axios({
method: 'post', method: 'post',
url: '/users', url: '/api/users',
data: values, data: values,
}).then(res => { }).then(res => {
if (res.status === 404) return alert(res.data.error) if (res.status === 404) return alert(res.data.error)
alert("회원가입이 완료되었습니다!") alert("회원가입이 완료되었습니다!")
setState(true); setState(true);
}) })
.catch(err => { .catch(err => {
alert(err.error) alert(err.error)
}); });
setTimeout(() => { setTimeout(() => {
setSubmitting(false); setSubmitting(false);
}, 400); // finish the cycle in handler }, 400); // finish the cycle in handler
}} }}
> >
{({ {({
errors, errors,
touched, touched,
handleSubmit, handleSubmit,
getFieldProps, // contain values, handleChange, handleBlur getFieldProps, // contain values, handleChange, handleBlur
isSubmitting, isSubmitting,
}) => ( }) => (
<form onSubmit={handleSubmit} className="d-flex flex-column pt-3"> <form onSubmit={handleSubmit} className="d-flex flex-column pt-3">
<div className="form-group "> <div className="form-group ">
<div className={touched.name && errors.name ? "text-danger" : ""}>이름을 입력하세요</div> <div className={touched.name && errors.name ? "text-danger" : ""}>이름을 입력하세요</div>
<input <input
className={(touched.name && errors.name ? 'form-control is-invalid' : "form-control")} className={(touched.name && errors.name ? 'form-control is-invalid' : "form-control")}
type="text" type="text"
name="name" name="name"
{...getFieldProps('name')} {...getFieldProps('name')}
placeholder="이름" /> placeholder="이름" />
</div> </div>
<div className="form-group"> <div className="form-group">
<div className={touched.id && errors.id ? "text-danger" : ""}>학번을 입력하세요</div> <div className={touched.id && errors.id ? "text-danger" : ""}>학번을 입력하세요</div>
<input <input
className={(touched.id && errors.id ? 'form-control is-invalid' : "form-control")} className={(touched.id && errors.id ? 'form-control is-invalid' : "form-control")}
type="text" type="text"
name="id" name="id"
{...getFieldProps('id')} {...getFieldProps('id')}
placeholder="학번/교번" placeholder="학번/교번"
/> />
</div> </div>
<div className="form-group"> <div className="form-group">
<div className={touched.password && errors.password ? "text-danger" : ""}>비밀번호를 입력하세요(8자리 이상)</div> <div className={touched.password && errors.password ? "text-danger" : ""}>비밀번호를 입력하세요(8자리 이상)</div>
<input <input
className={(touched.password && errors.password ? 'form-control is-invalid' : "form-control")} className={(touched.password && errors.password ? 'form-control is-invalid' : "form-control")}
type="password" type="password"
name="password" name="password"
{...getFieldProps('password')} {...getFieldProps('password')}
placeholder="비밀번호" placeholder="비밀번호"
/> />
</div> </div>
<div className="form-group"> <div className="form-group">
{touched.password2 && errors.password2 ? setCheckPw(false) : null} {touched.password2 && errors.password2 ? setCheckPw(false) : setCheckPw(true)}
<div id="reCheck" className={checkPw ? "right" : "err"}></div> <div id="reCheck" className={checkPw ? "right" : "err"}></div>
<input <input
className={touched.password2 && errors.password2 ? "form-control is-invalid" : "form-control"} className={touched.password2 && errors.password2 ? "form-control is-invalid" : "form-control"}
type="password" type="password"
name="password2" name="password2"
{...getFieldProps('password2')} {...getFieldProps('password2')}
placeholder="비밀번호 확인" placeholder="비밀번호 확인"
/> />
</div> </div>
<div className="form-group"> <div className="form-group">
<label>본인 확인 질문</label> <label>본인 확인 질문</label>
<Field as="select" name="question"> <Field as="select" name="question">
<option value="">질문을 선택하세요</option> <option value="">질문을 선택하세요</option>
<option value="life">자신의 인생 좌우명은?</option> <option value="life">자신의 인생 좌우명은?</option>
<option value="school">자신이 다녔던 초등학교의 이름은?</option> <option value="school">자신이 다녔던 초등학교의 이름은?</option>
<option value="place">기억에 남는 추억의 장소는?</option> <option value="place">기억에 남는 추억의 장소는?</option>
</Field> </Field>
</div> </div>
<div className="form-group"> <div className="form-group">
<div className={touched.answer && errors.answer ? "text-danger" : ""}>답변을 입력해주세요.</div> <div className={touched.answer && errors.answer ? "text-danger" : ""}>답변을 입력해주세요.</div>
<input <input
className={(touched.answer && errors.answer ? 'form-control is-invalid' : "form-control")} className={(touched.answer && errors.answer ? 'form-control is-invalid' : "form-control")}
type="text" type="text"
name="answer" name="answer"
{...getFieldProps('answer')} {...getFieldProps('answer')}
placeholder="Input answer" /> placeholder="Input answer" />
</div> </div>
<Button type="submit" variant="secondary" className="mb-2" disabled={isSubmitting}>회원가입</Button> <Button type="submit" variant="secondary" className="mb-2" disabled={isSubmitting}>회원가입</Button>
<Button variant="outline-secondary" as={Link} to="/login">로그인하러 가기</Button> <Button variant="outline-secondary" as={Link} to="/login">로그인하러 가기</Button>
</form> </form>
)} )}
</Formik> </Formik>
</Col> </Col>
</Wow> </Wow>
</Container> </Container>
</div > </div >
); );
} }
export default Signup export default Signup
\ No newline at end of file
...@@ -22,7 +22,7 @@ function Write() { ...@@ -22,7 +22,7 @@ function Write() {
} }
function acheck() { function acheck() {
axios.get(`/users/admin/${localStorage.getItem('_id')}`, { axios.get(`/api/users/admin/${localStorage.getItem('_id')}`, {
headers: { authorization: localStorage.getItem('token') }, headers: { authorization: localStorage.getItem('token') },
}) })
.then(res => { .then(res => {
...@@ -56,7 +56,7 @@ function Write() { ...@@ -56,7 +56,7 @@ function Write() {
console.log(values) console.log(values)
axios({ axios({
method: 'post', method: 'post',
url: '/writes', url: '/api/writes',
data: values, data: values,
}).then(res => { }).then(res => {
if (res.status === 404) return alert(res.data.error) if (res.status === 404) return alert(res.data.error)
......
...@@ -22,12 +22,12 @@ app.use(cors()) ...@@ -22,12 +22,12 @@ app.use(cors())
console.log('path=', path.join(CURRENT_WORKING_DIR, 'client', 'build')) console.log('path=', path.join(CURRENT_WORKING_DIR, 'client', 'build'))
app.use('/', express.static(path.join(CURRENT_WORKING_DIR, 'client', 'build'))) app.use('/', express.static(path.join(CURRENT_WORKING_DIR, 'client', 'build')))
app.use('/', indexRouter); app.use('/api/', indexRouter);
app.use('/users', usersRouter, reservesRouter); app.use('/api/users', usersRouter, reservesRouter);
app.use('/login', loginRouter); app.use('/api/login', loginRouter);
app.use('/reserves', reservesRouter); app.use('/api/reserves', reservesRouter);
app.use('/notices', noticeRouter); app.use('/api/notices', noticeRouter);
app.use('/writes', writesRouter); app.use('/api/writes', writesRouter);
app.use((err, req, res, next) => { app.use((err, req, res, next) => {
if (err.name === 'UnauthorizedError') { if (err.name === 'UnauthorizedError') {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment