Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
students
butter-studio
Commits
53792c65
Commit
53792c65
authored
Aug 09, 2021
by
Jiwon Yoon
Browse files
오류수정
parent
80239d34
Changes
9
Hide whitespace changes
Inline
Side-by-side
client/src/apis/auth.api.js
View file @
53792c65
...
...
@@ -18,6 +18,11 @@ const logout = async () => {
return
data
};
const
saveGuestInfo
=
async
(
guest
)
=>
{
const
{
data
}
=
await
axios
.
post
(
`
${
baseUrl
}
/api/auth/guest/save`
,
guest
);
return
data
}
const
guestLogin
=
async
(
guest
)
=>
{
const
{
data
}
=
await
axios
.
post
(
`
${
baseUrl
}
/api/auth/guest`
,
guest
);
return
data
...
...
@@ -68,6 +73,7 @@ const authApi = {
getUser
,
login
,
logout
,
saveGuestInfo
,
guestLogin
,
signup
,
confirmMbnum
,
...
...
client/src/apis/reservation.api.js
View file @
53792c65
...
...
@@ -2,8 +2,9 @@ import axios from "axios";
import
{
baseUrl
}
from
"
../utils/baseUrl.js
"
;
const
findReservedSeats
=
async
(
timeTable
)
=>
{
console
.
log
(
timeTable
)
const
url
=
`
${
baseUrl
}
/api/reservation/findreservation`
;
const
{
data
}
=
await
axios
.
post
(
url
,
timeTable
);
const
{
data
}
=
await
axios
.
post
(
url
,
{
timeTable
:
timeTable
}
);
return
data
}
...
...
client/src/pages/PaymentCompletePage.js
View file @
53792c65
import
axios
from
'
axios
'
import
{
useAuth
}
from
'
../context/auth_context
'
import
{
useEffect
,
useState
}
from
'
react
'
import
catchErrors
from
'
../utils/catchErrors
'
import
reservationApi
from
'
../apis/reservation.api
'
...
...
@@ -9,88 +8,78 @@ import reservationApi from '../apis/reservation.api'
const
PaymentCompletePage
=
()
=>
{
const
{
user
}
=
useAuth
()
const
[
error
,
setError
]
=
useState
()
const
[
success
,
setSuccess
]
=
useState
(
false
)
const
[
paymentData
,
setPaymentData
]
=
useState
()
useEffect
(()
=>
{
if
(
user
.
role
===
"
member
"
)
{
getUserInfo
()
}
else
{
getGuestInfo
()
if
(
user
.
id
>
0
)
{
const
tid
=
localStorage
.
getItem
(
'
tid
'
)
approveKakaopay
(
tid
)
if
(
user
.
role
===
"
member
"
)
{
saveUserReservation
()
}
else
{
saveGuestReservation
()
}
}
},
[
user
])
async
function
get
Guest
Info
()
{
async
function
save
Guest
Reservation
()
{
try
{
if
(
user
.
id
>
0
)
{
const
response
=
await
axios
.
get
(
`/api/auth/guestinfo/
${
user
.
id
}
`
);
const
guest
=
{
userType
:
"
guest
"
,
user
:
user
.
id
};
const
response2
=
await
reservationApi
.
findOneReservation
(
guest
);
console
.
log
({
reservationData
:
[...
response2
.
data
],
userData
:
{
...
response
.
data
},
})
if
(
response
.
data
||
response2
.
data
)
{
const
responseEmail
=
await
axios
.
post
(
'
/api/email/send
'
,
{
reservationData
:
[...
response2
.
data
],
userData
:
{
...
response
.
data
},
cinema
:
"
Butter Studio 조치원
"
,
title
:
"
더 수어사이드 스쿼드
"
,
theater
:
"
1
"
,
time
:
"
2021/07/21 10:00
"
})
console
.
log
(
responseEmail
.
data
)
}
console
.
log
(
response
.
data
)
}
const
response
=
await
axios
.
get
(
`/api/auth/guestinfo/
${
user
.
id
}
`
);
// const response2 = await reservationApi.save({
// userType: "guest",
// user: user.id,
// ...paymentData,
// timetableId: 1
// })
// if (response.data) {
// const responseEmail = await axios.post('/api/email/send', {
// reservationData: [...response2.data],
// userData: { ...response.data },
// cinema: "Butter Studio 조치원",
// title: "더 수어사이드 스쿼드",
// theater: "1",
// time: "2021/07/21 10:00"
// })
// console.log(responseEmail.data)
// }
console
.
log
(
response
.
data
)
}
catch
(
error
)
{
catchErrors
(
error
,
setError
)
}
}
async
function
getUserInfo
()
{
async
function
saveUserReservation
()
{
try
{
const
response
=
await
axios
.
post
(
`/api/auth/getuserinfo`
,
{
id
:
user
.
id
})
const
member
=
{
userType
:
"
member
"
,
user
:
user
.
id
}
const
response2
=
await
reservationApi
.
findOneReservation
(
member
);
console
.
log
(
response2
.
data
)
if
(
response
.
data
||
response2
.
data
)
{
const
responseEmail
=
await
axios
.
post
(
'
/api/email/send
'
,
{
...
response2
.
data
,
...
response
.
data
,
})
console
.
log
(
responseEmail
.
data
)
}
// if (response.data) {
// const responseEmail = await axios.post('/api/email/send', {
// ...response2.data,
// ...response.data,
// })
// console.log(responseEmail.data)
// }
}
catch
(
error
)
{
catchErrors
(
error
,
setError
)
}
}
async
function
approveKakaopay
(
tid
)
{
const
urlParams
=
new
URLSearchParams
(
window
.
location
.
search
);
const
pg_token
=
urlParams
.
get
(
'
pg_token
'
);
try
{
if
(
user
.
id
>
0
)
{
console
.
log
(
user
.
id
)
const
response
=
await
axios
.
post
(
`/api/kakaopay/success`
,
{
'
tid
'
:
tid
,
cid
:
'
TC0ONETIME
'
,
partner_order_id
:
'
butter_studio
'
,
partner_user_id
:
'
000000
'
+
user
.
id
,
pg_token
:
pg_token
})
console
.
log
(
response
.
data
)
}
const
urlParams
=
new
URLSearchParams
(
window
.
location
.
search
);
const
pg_token
=
urlParams
.
get
(
'
pg_token
'
);
const
response
=
await
axios
.
post
(
`/api/kakaopay/success`
,
{
'
tid
'
:
tid
,
cid
:
'
TC0ONETIME
'
,
partner_order_id
:
'
butter_studio
'
,
partner_user_id
:
'
000000
'
+
user
.
id
,
pg_token
:
pg_token
})
setPaymentData
(
response
.
data
)
}
catch
(
error
)
{
catchErrors
(
error
,
setError
)
}
...
...
client/src/pages/PaymentPage/PaymentPage.js
View file @
53792c65
import
axios
from
'
axios
'
import
{
useEffect
,
useState
}
from
'
react
'
import
{
useHistory
}
from
'
react-router-dom
'
import
authApi
from
'
../../apis/auth.api
'
import
reservationApi
from
'
../../apis/reservation.api
'
import
{
useAuth
}
from
'
../../context/auth_context
'
import
catchErrors
from
'
../../utils/catchErrors
'
...
...
@@ -46,10 +47,10 @@ const Payment = ({ location }) => {
async
function
handleClickGuest
()
{
try
{
const
response
=
await
reservationApi
.
save
({
const
response
=
await
authApi
.
saveGuestInfo
({
...
guestInfo
});
setGuestID
(
response
.
data
.
id
);
setGuestID
(
response
.
id
);
alert
(
"
비회원 정보가 저장되었습니다.
"
);
}
catch
(
error
)
{
catchErrors
(
error
,
setError
)
...
...
@@ -71,7 +72,6 @@ const Payment = ({ location }) => {
if
(
user
.
role
===
"
member
"
)
{
const
response
=
await
reservationApi
.
save
({
userType
:
"
member
"
,
// payment: "카카오페이",
user
:
userInfo
.
id
,
...
ticketInfo
,
timetable
:
1
...
...
@@ -98,14 +98,14 @@ const Payment = ({ location }) => {
userType
:
"
guest
"
,
user
:
guestID
,
...
ticketInfo
,
// payment: "카카오페이",
timetable
:
1
timetableId
:
1
})
const
responsekakao
=
await
axios
.
post
(
'
/api/kakaopay/test/single
'
,
{
cid
:
'
TC0ONETIME
'
,
partner_order_id
:
'
butter_studio
'
,
partner_user_id
:
'
000000
'
+
guestID
,
item_name
:
ticketInfo
.
title
,
item_code
:
ticketInfo
.
movieId
,
quantity
:
ticketInfo
.
adult
+
ticketInfo
.
youth
+
ticketInfo
.
senior
,
total_amount
:
ticketInfo
.
totalFee
,
vat_amount
:
0
,
...
...
@@ -114,7 +114,7 @@ const Payment = ({ location }) => {
fail_url
:
'
http://localhost:3000/ticket
'
,
cancel_url
:
'
http://localhost:3000/ticket
'
,
})
if
(
response
&&
responsekakao
)
{
if
(
responsekakao
)
{
localStorage
.
setItem
(
'
tid
'
,
responsekakao
.
data
.
tid
)
window
.
location
.
href
=
responsekakao
.
data
.
redirect_url
}
...
...
@@ -187,7 +187,7 @@ const Payment = ({ location }) => {
<
/div
>
<
div
className
=
"
my-1
"
>
<
label
className
=
{
styles
.
labelStyle
}
>
비밀번호
<
/label
>
<
input
type
=
"
password
"
name
=
"
guestP
assword
"
placeholder
=
"
비밀번호
"
onChange
=
{
handleChangeGuest
}
required
style
=
{{
width
:
"
178px
"
}}
/
>
<
input
type
=
"
password
"
name
=
"
p
assword
"
placeholder
=
"
비밀번호
"
onChange
=
{
handleChangeGuest
}
required
style
=
{{
width
:
"
178px
"
}}
/
>
<
/div
>
<
div
className
=
"
m-2
"
>
<
p
className
=
{
`text-muted
${
styles
.
warningText
}
`
}
>
...
...
client/src/pages/TicketingSeatPage.js
View file @
53792c65
...
...
@@ -40,12 +40,10 @@ const TicketingSeatPage = ({ location }) => {
async
function
getInfo
()
{
try
{
const
response
=
await
axios
.
post
(
'
/api/theater/getInfo
'
,
{
theater
Name
:
ticketInfo
.
selectedTheater
theater
Id
:
ticketInfo
.
selectedTheater
})
setTheaterInfo
(
response
.
data
)
const
response2
=
await
reservationApi
.
findReservedSeats
({
timetable
:
1
});
const
response2
=
await
reservationApi
.
findReservedSeats
(
1
);
const
reserve
=
response2
.
data
.
map
((
el
)
=>
el
.
row
+
'
-
'
+
el
.
col
);
...
...
server/controllers/reservation.controller.js
View file @
53792c65
...
...
@@ -4,10 +4,11 @@ import config from '../config/app.config.js'
const
findReservedSeats
=
async
(
req
,
res
)
=>
{
try
{
const
{
timetable
}
=
req
.
body
const
{
timeTable
}
=
req
.
body
console
.
log
(
"
타임테이블===============
"
,
timeTable
)
const
reservedSeats
=
await
Reservation
.
findAll
({
where
:
{
timetable
:
time
t
able
timetable
Id
:
time
T
able
}
})
res
.
json
(
reservedSeats
)
...
...
@@ -49,10 +50,10 @@ const findOneReservation = async (req, res, next) => {
}
}
const
saveReservation
=
async
(
req
,
res
)
=>
{
const
{
movieId
,
selectedTheater
,
timetable
,
payment
,
user
,
userType
,
totalFee
}
=
req
.
body
const
rows
=
req
.
body
.
selectedSeats
.
map
(
el
=>
el
.
split
(
'
-
'
)[
0
])
const
cols
=
req
.
body
.
selectedSeats
.
map
(
el
=>
el
.
split
(
'
-
'
)[
1
])
try
{
const
{
movieId
,
selectedTheater
,
timetable
,
payment
,
user
,
userType
,
totalFee
}
=
req
.
body
const
rows
=
req
.
body
.
selectedSeats
.
map
(
el
=>
el
.
split
(
'
-
'
)[
0
])
const
cols
=
req
.
body
.
selectedSeats
.
map
(
el
=>
el
.
split
(
'
-
'
)[
1
])
for
(
let
index
=
0
;
index
<
rows
.
length
;
index
++
)
{
const
reservation
=
await
Reservation
.
create
({
user
:
user
,
...
...
@@ -63,7 +64,7 @@ const saveReservation = async (req, res) => {
col
:
cols
[
index
],
timetableId
:
timetable
,
payment
:
payment
,
totalFee
:
totalFee
totalFee
:
totalFee
,
})
}
const
movie
=
await
Movie
.
findOne
({
...
...
server/controllers/theater.controller.js
View file @
53792c65
import
{
Theater
,
TheaterType
}
from
"
../db/index.js
"
;
const
getTheaterInfo
=
async
(
req
,
res
)
=>
{
const
{
theaterName
}
=
req
.
body
try
{
const
{
theaterId
}
=
req
.
body
const
theaterInfo
=
await
Theater
.
findOne
({
where
:
{
theaterName
:
String
(
theater
Name
)
},
where
:
{
id
:
theater
Id
},
attributes
:
[
'
theaterName
'
,
'
rows
'
,
'
columns
'
]
})
// console.log("theaterInfo====",theaterInfo)
...
...
server/controllers/user.controller.js
View file @
53792c65
...
...
@@ -461,16 +461,17 @@ const getUserInfo = async (req, res) => {
}
const
saveGuestInfo
=
async
(
req
,
res
)
=>
{
const
{
name
,
email
,
birth
,
phoneNumber
,
password
}
=
req
.
body
try
{
const
{
name
,
email
,
birth
,
phoneNumber
,
password
}
=
req
.
body
const
newGuest
=
await
Guest
.
create
({
name
:
name
,
email
:
email
,
birth
:
birth
,
phoneNumber
:
phoneNumber
,
password
:
password
,
roleId
:
1
});
//
console.log(newGuest)
console
.
log
(
newGuest
)
res
.
clearCookie
(
config
.
cookieName
);
const
token
=
jwt
.
sign
({
id
:
newGuest
.
id
,
role
:
"
user
"
},
config
.
jwtSecret
,
{
expiresIn
:
config
.
jwtExpires
,
...
...
server/index.js
View file @
53792c65
...
...
@@ -10,7 +10,7 @@ dotenv.config({
});
sequelize
.
sync
({
force
:
false
})
.
sync
({
force
:
false
})
.
then
(
async
()
=>
{
await
Promise
.
all
(
Object
.
keys
(
ROLE_NAME
).
map
((
name
)
=>
{
...
...
@@ -32,7 +32,7 @@ sequelize
img
:
"
970aaa79673a39331d45d4b55ca05d25
"
,
roleId
:
adminRole
?.
id
,
});
}
else
{}
}
else
{
}
app
.
listen
(
appConfig
.
port
,
()
=>
{
console
.
log
(
`Server is running on port
${
appConfig
.
port
}
`
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment