bullpen/backend/controllers/player.controller.js

63 lines
1.9 KiB
JavaScript

const db = require("../models/index");
const {registerUser} = require("../helper/user.helper");
const Player = db.Player;
const User = db.User;
const Op = db.Sequelize.Op;
exports.insert = (req, res) => {
registerUser(req.body).then(user => {
return Player.create({
firstName: req.body.firstName,
lastName: req.body.lastName,
dateOfBirth: req.body.dateOfBirth,
gender: req.body.gender,
height: req.body.height ? req.body.height : null,
weight: req.body.weight ? req.body.weight : null,
bats: req.body.bats ? req.body.bats : 'right',
throws: req.body.throws ? req.body.throws : 'right',
state: req.body.state ? req.body.state : 'inactive',
jerseyNumber: req.body.jerseyNumber,
userId: user.id
}).then(player => {
return player.reload({ include: { model: User }});
});
}).then(player => {
res.status(201).send(player);
}).catch(err => {
res.status(500).send({message: err.message});
});
};
exports.findAll = (req, res) => {
const title = req.query.title;
const condition = title ? {title: {[Op.iLike]: `%${title}%`}} : null;
Player.findAll({
where: condition,
include: {
model: User
}
}).then(data => {
res.send(data);
}).catch(err => {
res.status(500).send({message:err.message || "Some error occurred while retrieving players."});
});
};
exports.findOne = (req, res) => {
const id = req.params.id;
Player.findByPk(id, {
include: {
model: User
}
}).then(data => {
if (data) {
res.send(data);
} else {
res.status(404).send({message: `Cannot find user with id=${id}.`});
}
}).catch(err => {
res.status(500).send({message: `Error retrieving user with id=${id} (${err.message}).`});
});
}