Skip to content

Update tutorial.controller.js #7

New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
215 changes: 89 additions & 126 deletions app/controllers/tutorial.controller.js
Original file line number Diff line number Diff line change
@@ -1,152 +1,115 @@
const db = require("../models");
const Tutorial = db.tutorials;
const Op = db.Sequelize.Op;
const { tutorials: Tutorial, Sequelize: { Op } } = db;

// Create and Save a new Tutorial
exports.create = (req, res) => {
// Validate request
if (!req.body.title) {
res.status(400).send({
message: "Content can not be empty!"
});
return;
// Error handler
const handleError = (res, message, statusCode = 500) => {
res.status(statusCode).send({ message });
};

// Request validation
const validateRequest = (req, res, fields) => {
for (const field of fields) {
if (!req.body[field]) {
handleError(res, `${field} can not be empty!`, 400);
return false;
}
}
return true;
};

// Create a Tutorial
const tutorial = {
title: req.body.title,
description: req.body.description,
published: req.body.published ? req.body.published : false
};
// Create and Save a new Tutorial
exports.create = async (req, res) => {
if (!validateRequest(req, res, ['title'])) return;

// Save Tutorial in the database
Tutorial.create(tutorial)
.then(data => {
res.send(data);
})
.catch(err => {
res.status(500).send({
message:
err.message || "Some error occurred while creating the Tutorial."
});
});
try {
const tutorial = {
title: req.body.title,
description: req.body.description,
published: req.body.published || false
};
const data = await Tutorial.create(tutorial);
res.send(data);
} catch (err) {
handleError(res, err.message || "Some error occurred while creating the Tutorial.");
}
};

// Retrieve all Tutorials from the database.
exports.findAll = (req, res) => {
const title = req.query.title;
var condition = title ? { title: { [Op.like]: `%${title}%` } } : null;

Tutorial.findAll({ where: condition })
.then(data => {
res.send(data);
})
.catch(err => {
res.status(500).send({
message:
err.message || "Some error occurred while retrieving tutorials."
});
});
exports.findAll = async (req, res) => {
try {
const { title } = req.query;
const condition = title ? { title: { [Op.like]: `%${title}%` } } : null;
const data = await Tutorial.findAll({ where: condition });
res.send(data);
} catch (err) {
handleError(res, err.message || "Some error occurred while retrieving tutorials.");
}
};

// Find a single Tutorial with an id
exports.findOne = (req, res) => {
const id = req.params.id;
exports.findOne = async (req, res) => {
const { id } = req.params;

Tutorial.findByPk(id)
.then(data => {
if (data) {
res.send(data);
} else {
res.status(404).send({
message: `Cannot find Tutorial with id=${id}.`
});
}
})
.catch(err => {
res.status(500).send({
message: "Error retrieving Tutorial with id=" + id
});
});
try {
const data = await Tutorial.findByPk(id);
if (data) {
res.send(data);
} else {
handleError(res, `Cannot find Tutorial with id=${id}.`, 404);
}
} catch (err) {
handleError(res, `Error retrieving Tutorial with id=${id}`);
}
};

// Update a Tutorial by the id in the request
exports.update = (req, res) => {
const id = req.params.id;
exports.update = async (req, res) => {
const { id } = req.params;

Tutorial.update(req.body, {
where: { id: id }
})
.then(num => {
if (num == 1) {
res.send({
message: "Tutorial was updated successfully."
});
} else {
res.send({
message: `Cannot update Tutorial with id=${id}. Maybe Tutorial was not found or req.body is empty!`
});
}
})
.catch(err => {
res.status(500).send({
message: "Error updating Tutorial with id=" + id
});
});
try {
const [num] = await Tutorial.update(req.body, { where: { id } });
if (num === 1) {
res.send({ message: "Tutorial was updated successfully." });
} else {
handleError(res, `Cannot update Tutorial with id=${id}. Maybe Tutorial was not found or req.body is empty!`, 400);
}
} catch (err) {
handleError(res, `Error updating Tutorial with id=${id}`);
}
};

// Delete a Tutorial with the specified id in the request
exports.delete = (req, res) => {
const id = req.params.id;
exports.delete = async (req, res) => {
const { id } = req.params;

Tutorial.destroy({
where: { id: id }
})
.then(num => {
if (num == 1) {
res.send({
message: "Tutorial was deleted successfully!"
});
} else {
res.send({
message: `Cannot delete Tutorial with id=${id}. Maybe Tutorial was not found!`
});
}
})
.catch(err => {
res.status(500).send({
message: "Could not delete Tutorial with id=" + id
});
});
try {
const num = await Tutorial.destroy({ where: { id } });
if (num === 1) {
res.send({ message: "Tutorial was deleted successfully!" });
} else {
handleError(res, `Cannot delete Tutorial with id=${id}. Maybe Tutorial was not found!`, 404);
}
} catch (err) {
handleError(res, `Could not delete Tutorial with id=${id}`);
}
};

// Delete all Tutorials from the database.
exports.deleteAll = (req, res) => {
Tutorial.destroy({
where: {},
truncate: false
})
.then(nums => {
res.send({ message: `${nums} Tutorials were deleted successfully!` });
})
.catch(err => {
res.status(500).send({
message:
err.message || "Some error occurred while removing all tutorials."
});
});
exports.deleteAll = async (req, res) => {
try {
const nums = await Tutorial.destroy({ where: {}, truncate: false });
res.send({ message: `${nums} Tutorials were deleted successfully!` });
} catch (err) {
handleError(res, err.message || "Some error occurred while removing all tutorials.");
}
};

// find all published Tutorial
exports.findAllPublished = (req, res) => {
Tutorial.findAll({ where: { published: true } })
.then(data => {
res.send(data);
})
.catch(err => {
res.status(500).send({
message:
err.message || "Some error occurred while retrieving tutorials."
});
});
// Find all published Tutorials
exports.findAllPublished = async (req, res) => {
try {
const data = await Tutorial.findAll({ where: { published: true } });
res.send(data);
} catch (err) {
handleError(res, err.message || "Some error occurred while retrieving tutorials.");
}
};