"vscode:/vscode.git/clone" did not exist on "efdc264b45fb8e6904bc7f3d02f85e00f2f92507"
Commit 64d60802 authored by 한규민's avatar 한규민
Browse files

Merge branch 'master' into gyumin

parents dca77d17 44b5a715
import nodemailer from "nodemailer" import nodemailer from "nodemailer"
const SendMail = async (req,res) => { const SendMail = async (req,res) => {
// console.log(req.body) const {email, title, cinema,selectedTheater, time, nickname} = req.body
const {email} = req.body const selectedSeats = req.body.selectedSeats
console.log(email) const sendMail = async (email,title, cinema,selectedTheater, time, nickname, selectedSeats) => {
const sendMail = async (email) => {
// 메일을 전달해줄 객체 // 메일을 전달해줄 객체
const transporter = nodemailer.createTransport({ const transporter = nodemailer.createTransport({
// service: "gmail",
host: 'smtp.gmail.com', host: 'smtp.gmail.com',
port: 465, port: 465,
secure: true, secure: true,
...@@ -16,7 +14,6 @@ const SendMail = async (req,res) => { ...@@ -16,7 +14,6 @@ const SendMail = async (req,res) => {
user: "angelayoon99@gmail.com", user: "angelayoon99@gmail.com",
clientId: process.env.GMAIL_CLIENTID, clientId: process.env.GMAIL_CLIENTID,
clientSecret: process.env.GMAIL_CLIENTSECRET, clientSecret: process.env.GMAIL_CLIENTSECRET,
accessToken: process.env.GMAIL_ACCESS_TOKEN,
refreshToken: process.env.GMAIL_REFRESH_TOKEN, refreshToken: process.env.GMAIL_REFRESH_TOKEN,
}, },
tls: { tls: {
...@@ -26,10 +23,10 @@ const SendMail = async (req,res) => { ...@@ -26,10 +23,10 @@ const SendMail = async (req,res) => {
// 메일 옵션 // 메일 옵션
const mailOptions = { const mailOptions = {
from: `윤지원 <angelayoon99@gmail.com>`, from: `${cinema} <angelayoon99@gmail.com>`,
to: "jiwon5393@naver.com", to: `${email}`,
subject: "사용자 계정 확인용 메일.", subject: `${cinema} 예매확인내역: ${title}`,
text: "Test Mail from Test Server.", text: `${nickname}님의 예매: ${title} / ${cinema} / ${selectedTheater}관 / 일시: ${time} / ${selectedSeats} /`,
}; };
// 메일 전송 // 메일 전송
...@@ -42,7 +39,7 @@ const SendMail = async (req,res) => { ...@@ -42,7 +39,7 @@ const SendMail = async (req,res) => {
} }
} }
sendMail(email); sendMail(email,title, cinema,selectedTheater, time, nickname, selectedSeats);
} }
......
import axios from 'axios'
import { Reservation,Theater } from '../db/index.js'
import sequelize from 'sequelize'
const { Op } = sequelize
const findReservation = async (req,res) => {
const {timetable} = req.body
try {
const reservedSeats = await Reservation.findAll({
where: {
timetable:timetable
}
})
console.log(reservedSeats)
res.json(reservedSeats)
} catch (error) {
return res.status(500).send(error.message || "이미 예매되어있는 좌석을 찾는 중 오류발생")
}
}
export default {findReservation}
\ No newline at end of file
import { Theater, TicketFee } from "../db/index.js";
const getTheaterInfo = async (req, res) => {
const { theaterNum } = req.body
try {
const theaterInfo = await Theater.findOne({
where: { theaterNum: theaterNum },
attributes: ['theaterNum', 'rows', 'columns', 'theaterType']
})
// console.log("theaterInfo====",theaterInfo)
return res.json(theaterInfo)
} catch (error){
console.log(error)
}
}
const getAll = async (req, res) => {
try {
const findList = await Theater.findAll({ include: [{ model: TicketFee, attributes: ["theaterType"] }] })
console.log("Ads==", findList)
return res.json(findList)
} catch (error) {
return res.status(500).send(error.message || "상영관 정보 가져오는 중 에러 발생")
}
}
const getTypes = async (req, res) => {
try {
const findTypes = await TicketFee.findAll({ attributes: ['id', 'theaterType'] })
return res.json(findTypes)
} catch (error) {
return res.status(500).send(error.message || "상영관 정보 가져오는 중 에러 발생")
}
}
const submit = async (req, res) => {
try {
const { id } = req.body
let response = null
if (id) response = await Theater.update({ ...req.body }, { where: { id: id } })
else response = await Theater.create({ ...req.body })
return res.json(response)
} catch (error) {
return res.status(500).send(error.message || "상영관 정보 저장 중 에러 발생")
}
}
const remove = async (req, res) => {
try {
} catch (error) {
return res.status(500).send(error.message || "상영관 정보 삭제 중 에러 발생")
}
}
export default {
getAll,
getTypes,
submit,
remove,
getTheaterInfo
}
import jwt from "jsonwebtoken"; import jwt from "jsonwebtoken";
import config from "../config/app.config.js"; import config from "../config/app.config.js";
import { User, Role } from '../db/index.js'; import { User, Role } from '../db/index.js';
<<<<<<< HEAD
import fs from "fs"; import fs from "fs";
=======
<<<<<<< HEAD
>>>>>>> master
const getUser = async (req, res) => { const getUser = async (req, res) => {
try { try {
...@@ -17,6 +21,9 @@ const getUser = async (req, res) => { ...@@ -17,6 +21,9 @@ const getUser = async (req, res) => {
return res.status(500).send("유저를 가져오지 못했습니다."); return res.status(500).send("유저를 가져오지 못했습니다.");
} }
} }
=======
// import Twilio from "twilio";
>>>>>>> jiwon
const login = async (req, res) => { const login = async (req, res) => {
try { try {
...@@ -92,8 +99,8 @@ const compareId = async (req, res) => { ...@@ -92,8 +99,8 @@ const compareId = async (req, res) => {
} }
const confirmMbnum = async (req, res) => { const confirmMbnum = async (req, res) => {
const id = req.params.id; // const id = req.params.id;
const token = req.params.token; // const token = req.params.token;
// const client = Twilio(id, token); // const client = Twilio(id, token);
// // console.log(client); // // console.log(client);
...@@ -206,6 +213,7 @@ const comparePw = async (req, res) => { ...@@ -206,6 +213,7 @@ const comparePw = async (req, res) => {
} }
} }
<<<<<<< HEAD
const overlap = async (decoded, dataType, data) => { const overlap = async (decoded, dataType, data) => {
try { try {
let overlap = await User.findOne({ where: { id: decoded.id } }); let overlap = await User.findOne({ where: { id: decoded.id } });
...@@ -226,6 +234,9 @@ const overlap = async (decoded, dataType, data) => { ...@@ -226,6 +234,9 @@ const overlap = async (decoded, dataType, data) => {
} }
} }
=======
<<<<<<< HEAD
>>>>>>> master
const modifyUser = async (req, res) => { const modifyUser = async (req, res) => {
try { try {
const token = req.cookies.butterStudio; const token = req.cookies.butterStudio;
...@@ -256,6 +267,21 @@ const modifyUser = async (req, res) => { ...@@ -256,6 +267,21 @@ const modifyUser = async (req, res) => {
res.status(500).send("수정 에러. 나중에 다시 시도 해주세요"); res.status(500).send("수정 에러. 나중에 다시 시도 해주세요");
} }
}; };
=======
const getUserInfo = async (req,res)=>{
const {id} = req.body
console.log(id)
try {
const userInfo = await User.findOne({
where:{id:id},
attributes:["userId","email","nickname","birth","phoneNumber"]
})
res.json(userInfo)
} catch (error) {
console.log(error)
}
}
>>>>>>> jiwon
export default { export default {
getUser, getUser,
...@@ -264,8 +290,16 @@ export default { ...@@ -264,8 +290,16 @@ export default {
compareId, compareId,
confirmMbnum, confirmMbnum,
signup, signup,
<<<<<<< HEAD
getMember, getMember,
uploadProfile, uploadProfile,
=======
getNickName,
<<<<<<< HEAD
>>>>>>> master
comparePw, comparePw,
modifyUser modifyUser
=======
getUserInfo
>>>>>>> jiwon
} }
...@@ -4,6 +4,7 @@ import RoleModel from "../models/role.model.js"; ...@@ -4,6 +4,7 @@ import RoleModel from "../models/role.model.js";
import MovieModel from "../models/movie.model.js"; import MovieModel from "../models/movie.model.js";
import CinemaModel from "../models/cinema.model.js"; import CinemaModel from "../models/cinema.model.js";
import TheaterModel from "../models/theater.model.js"; import TheaterModel from "../models/theater.model.js";
import TheaterTypeModel from "../models/theatertype.model.js";
import TicketFeeModel from "../models/ticketfee.model.js"; import TicketFeeModel from "../models/ticketfee.model.js";
import TimeTableModel from '../models/role.model.js'; import TimeTableModel from '../models/role.model.js';
import ReservationModel from '../models/reservation.model.js'; import ReservationModel from '../models/reservation.model.js';
...@@ -30,6 +31,7 @@ const Role = RoleModel(sequelize) ...@@ -30,6 +31,7 @@ const Role = RoleModel(sequelize)
const Movie = MovieModel(sequelize) const Movie = MovieModel(sequelize)
const Cinema = CinemaModel(sequelize) const Cinema = CinemaModel(sequelize)
const Theater = TheaterModel(sequelize) const Theater = TheaterModel(sequelize)
const TheaterType = TheaterTypeModel(sequelize)
const TicketFee = TicketFeeModel(sequelize) const TicketFee = TicketFeeModel(sequelize)
const TimeTable = TimeTableModel(sequelize) const TimeTable = TimeTableModel(sequelize)
const Reservation = ReservationModel(sequelize) const Reservation = ReservationModel(sequelize)
...@@ -37,7 +39,9 @@ const Reservation = ReservationModel(sequelize) ...@@ -37,7 +39,9 @@ const Reservation = ReservationModel(sequelize)
User.belongsTo(Role); User.belongsTo(Role);
Role.hasOne(User); Role.hasOne(User);
TicketFee.hasOne(Theater, { foreignKey: "theaterType", targetKey: "theaterType", onDelete : "Cascade" }); Theater.belongsTo(TheaterType);
TicketFee.belongsTo(TheaterType, { onDelete: 'CASCADE' });
export { export {
sequelize, sequelize,
...@@ -46,6 +50,7 @@ export { ...@@ -46,6 +50,7 @@ export {
Movie, Movie,
Cinema, Cinema,
Theater, Theater,
TheaterType,
TicketFee, TicketFee,
TimeTable, TimeTable,
Reservation Reservation
......
...@@ -29,8 +29,8 @@ sequelize ...@@ -29,8 +29,8 @@ sequelize
password: "admin!", password: "admin!",
roleId: adminRole?.id, roleId: adminRole?.id,
}); });
}else{}
} else { }
app.listen(appConfig.port, () => { app.listen(appConfig.port, () => {
console.log(`Server is running on port ${appConfig.port}`); console.log(`Server is running on port ${appConfig.port}`);
}); });
...@@ -39,4 +39,4 @@ sequelize ...@@ -39,4 +39,4 @@ sequelize
console.log(err); console.log(err);
}); });
export default {} export default {}
\ No newline at end of file \ No newline at end of file
...@@ -18,7 +18,7 @@ const ReservationModel = (sequelize) => { ...@@ -18,7 +18,7 @@ const ReservationModel = (sequelize) => {
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
}, },
row: { row: {
type: DataTypes.STRING, type: DataTypes.INTEGER,
}, },
col: { col: {
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
......
...@@ -6,12 +6,16 @@ const TheaterModel = (sequelize) => { ...@@ -6,12 +6,16 @@ const TheaterModel = (sequelize) => {
const Theater = sequelize.define( const Theater = sequelize.define(
"theater", "theater",
{ {
theaterNum: { id: {
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
primaryKey: true, primaryKey: true,
autoIncrement: true,
},
theaterName: {
type: DataTypes.STRING
}, },
rows: { rows: {
type: DataTypes.STRING, type: DataTypes.INTEGER,
}, },
columns: { columns: {
type: DataTypes.INTEGER, type: DataTypes.INTEGER,
......
import Sequelize from "sequelize";
const { DataTypes } = Sequelize;
const TheaterTypeModel = (sequelize) => {
const TheaterType = sequelize.define(
"theatertype",
{
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true,
},
theaterTypeName: {
type: DataTypes.STRING,
unique: true
}
},
{
timestamps: true,
freezeTableName: true,
tableName: "theatertypes"
}
);
return TheaterType;
};
export default TheaterTypeModel;
\ No newline at end of file
...@@ -11,9 +11,6 @@ const TicketFeeModel = (sequelize) => { ...@@ -11,9 +11,6 @@ const TicketFeeModel = (sequelize) => {
primaryKey: true, primaryKey: true,
autoIncrement: true, autoIncrement: true,
}, },
theaterType: {
type: DataTypes.STRING
},
weekdays: { weekdays: {
type: DataTypes.INTEGER type: DataTypes.INTEGER
}, },
......
import express from "express"; import express from "express";
import userRouter from './user.route.js' import userRouter from './user.route.js'
import movieRouter from './movie.route.js' import movieRouter from './movie.route.js'
import theaterRouter from "./theater.route.js";
import cinemaRouter from "./cinema.route.js"; import cinemaRouter from "./cinema.route.js";
import kakaopayRouter from "./kakaopay.route.js"; import kakaopayRouter from "./kakaopay.route.js";
import emailRouter from './email.route.js' import emailRouter from './email.route.js'
import theaterRouter from './theater.route.js'
import reservationRouter from './reservation.route.js'
const router = express.Router(); const router = express.Router();
...@@ -12,5 +15,7 @@ router.use('/auth', userRouter) ...@@ -12,5 +15,7 @@ router.use('/auth', userRouter)
router.use('/kakaopay',kakaopayRouter) router.use('/kakaopay',kakaopayRouter)
router.use('/email',emailRouter) router.use('/email',emailRouter)
router.use('/info', cinemaRouter) router.use('/info', cinemaRouter)
router.use('/theater', theaterRouter)
router.use('/reservation', reservationRouter)
export default router; export default router;
\ No newline at end of file
import express from "express";
import ReservationCtrl from "../controllers/reservation.controller.js";
const router = express.Router();
router.route('/findreservation')
.post(ReservationCtrl.findReservation)
export default router;
\ No newline at end of file
import express from "express";
import theaterCtrl from "../controllers/theater.controller.js";
const router = express.Router();
router.route("/getInfo")
.post(theaterCtrl.getTheaterInfo)
router
.route("/")
.get(theaterCtrl.getAll)
.put(theaterCtrl.submit)
.delete(theaterCtrl.remove)
router
.route("/type")
.get(theaterCtrl.getTypes)
export default router;
...@@ -43,7 +43,14 @@ router ...@@ -43,7 +43,14 @@ router
.get(userCtrl.compareId) .get(userCtrl.compareId)
router router
.route("/:id/:token") .route("/:id/:token")
.get(userCtrl.confirmMbnum) .get(userCtrl.confirmMbnum)
// router
// .route("/:iddd")
// .get(userCtrl.getNickName)
router.route('/getuserinfo')
.post(userCtrl.getUserInfo)
export default router; export default router;
\ No newline at end of file
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