🎨 Configure standardJS

This commit is contained in:
divlo
2020-08-03 12:04:07 +02:00
parent e22e62a749
commit 58f47c7480
120 changed files with 12271 additions and 10025 deletions

View File

@ -1,205 +1,205 @@
const { Router } = require('express');
const fileUpload = require('express-fileupload');
const { body } = require('express-validator');
const adminController = require('../controllers/admin');
const Functions = require('../models/functions');
const Categories = require('../models/categories');
const { Router } = require('express')
const fileUpload = require('express-fileupload')
const { body } = require('express-validator')
const adminController = require('../controllers/admin')
const Functions = require('../models/functions')
const Categories = require('../models/categories')
const AdminRouter = Router();
const AdminRouter = Router()
AdminRouter.route('/functions')
// Récupère les fonctions
.get(adminController.getFunctions)
// Récupère les fonctions
.get(adminController.getFunctions)
// Permet de créé une fonction
.post(fileUpload({
useTempFiles: true,
safeFileNames: true,
preserveExtension: Number,
limits: { fileSize: 5 * 1024 * 1024 }, // 5mb,
parseNested: true
}),
[
body('title')
.not()
.isEmpty()
.withMessage("La fonction doit avoir un titre.")
.isLength({ max: 100 })
.withMessage("Le titre est trop long.")
.custom(((title) => {
if (title === 'undefined') {
return Promise.reject("La fonction doit avoir un titre.");
}
return true;
})),
body('slug')
.not()
.isEmpty()
.withMessage("La fonction doit avoir un slug.")
.isLength({ max: 100 })
.withMessage("Le slug est trop long.")
.custom(((slug) => {
if (slug === 'undefined') {
return Promise.reject("La fonction doit avoir un slug.");
}
return true;
}))
.custom((async (slug) => {
try {
const FunctionSlug = await Functions.findOne({ where: { slug } });
if (FunctionSlug) {
return Promise.reject("Le slug existe déjà...");
}
} catch (error) {
console.log(error);
}
return true;
})),
body('description')
.not()
.isEmpty()
.withMessage("La fonction doit avoir une description.")
.isLength({ max: 255, min: 1 })
.withMessage("La description est trop longue.")
.custom(((description) => {
if (description === 'undefined') {
return Promise.reject("La fonction doit avoir une description.");
}
return true;
})),
body('categorieId')
.not()
.isEmpty()
.withMessage("La fonction doit avoir une catégorie.")
.custom(async (categorieId) => {
try {
const categorieFound = await Categories.findOne({ where: { id: parseInt(categorieId) } });
if (!categorieFound) {
return Promise.reject("La catégorie n'existe pas!");
}
} catch (error) {
console.log(error);
}
return true;
}),
body('type')
.custom((type) => {
if (!(type === 'article' || type === 'form' || type === 'page')) {
return Promise.reject('Le type de la fonction peut être : article, form ou page.');
}
return true;
})
], adminController.postFunction);
// Permet de créé une fonction
.post(fileUpload({
useTempFiles: true,
safeFileNames: true,
preserveExtension: Number,
limits: { fileSize: 5 * 1024 * 1024 }, // 5mb,
parseNested: true
}),
[
body('title')
.not()
.isEmpty()
.withMessage('La fonction doit avoir un titre.')
.isLength({ max: 100 })
.withMessage('Le titre est trop long.')
.custom((title) => {
if (title === 'undefined') {
return Promise.reject(new Error('La fonction doit avoir un titre.'))
}
return true
}),
body('slug')
.not()
.isEmpty()
.withMessage('La fonction doit avoir un slug.')
.isLength({ max: 100 })
.withMessage('Le slug est trop long.')
.custom((slug) => {
if (slug === 'undefined') {
return Promise.reject(new Error('La fonction doit avoir un slug.'))
}
return true
})
.custom(async (slug) => {
try {
const FunctionSlug = await Functions.findOne({ where: { slug } })
if (FunctionSlug) {
return Promise.reject(new Error('Le slug existe déjà...'))
}
} catch (error) {
console.log(error)
}
return true
}),
body('description')
.not()
.isEmpty()
.withMessage('La fonction doit avoir une description.')
.isLength({ max: 255, min: 1 })
.withMessage('La description est trop longue.')
.custom((description) => {
if (description === 'undefined') {
return Promise.reject(new Error('La fonction doit avoir une description.'))
}
return true
}),
body('categorieId')
.not()
.isEmpty()
.withMessage('La fonction doit avoir une catégorie.')
.custom(async (categorieId) => {
try {
const categorieFound = await Categories.findOne({ where: { id: parseInt(categorieId) } })
if (!categorieFound) {
return Promise.reject(new Error("La catégorie n'existe pas!"))
}
} catch (error) {
console.log(error)
}
return true
}),
body('type')
.custom((type) => {
if (!(type === 'article' || type === 'form' || type === 'page')) {
return Promise.reject(new Error('Le type de la fonction peut être : article, form ou page.'))
}
return true
})
], adminController.postFunction)
AdminRouter.route('/functions/:slug')
// Récupère les informations d'une fonction
.get(adminController.getFunctionBySlug);
// Récupère les informations d'une fonction
.get(adminController.getFunctionBySlug)
AdminRouter.route('/functions/:id')
// Modifie information basique d'une fonction
.put(fileUpload({
useTempFiles: true,
safeFileNames: true,
preserveExtension: Number,
limits: { fileSize: 5 * 1024 * 1024 }, // 5mb,
parseNested: true
}),
[
body('title')
.not()
.isEmpty()
.withMessage("La fonction doit avoir un titre.")
.isLength({ max: 100 })
.withMessage("Le titre est trop long.")
.custom(((title) => {
if (title === 'undefined') {
return Promise.reject("La fonction doit avoir un titre.");
}
return true;
})),
body('slug')
.not()
.isEmpty()
.withMessage("La fonction doit avoir un slug.")
.isLength({ max: 100 })
.withMessage("Le slug est trop long.")
.custom(((slug) => {
if (slug === 'undefined') {
return Promise.reject("La fonction doit avoir un slug.");
}
return true;
})),
body('description')
.not()
.isEmpty()
.withMessage("La fonction doit avoir une description.")
.isLength({ max: 255, min: 1 })
.withMessage("La description est trop longue.")
.custom(((description) => {
if (description === 'undefined') {
return Promise.reject("La fonction doit avoir une description.");
}
return true;
})),
body('categorieId')
.not()
.isEmpty()
.withMessage("La fonction doit avoir une catégorie.")
.custom(async (categorieId) => {
try {
const categorieFound = await Categories.findOne({ where: { id: parseInt(categorieId) } });
if (!categorieFound) {
return Promise.reject("La catégorie n'existe pas!");
}
} catch (error) {
console.log(error);
}
return true;
}),
body('type')
.custom((type) => {
if (!(type === 'article' || type === 'form' || type === 'page')) {
return Promise.reject('Le type de la fonction peut être : article, form ou page.');
}
return true;
})
], adminController.putFunction)
// Modifie information basique d'une fonction
.put(fileUpload({
useTempFiles: true,
safeFileNames: true,
preserveExtension: Number,
limits: { fileSize: 5 * 1024 * 1024 }, // 5mb,
parseNested: true
}),
[
body('title')
.not()
.isEmpty()
.withMessage('La fonction doit avoir un titre.')
.isLength({ max: 100 })
.withMessage('Le titre est trop long.')
.custom((title) => {
if (title === 'undefined') {
return Promise.reject(new Error('La fonction doit avoir un titre.'))
}
return true
}),
body('slug')
.not()
.isEmpty()
.withMessage('La fonction doit avoir un slug.')
.isLength({ max: 100 })
.withMessage('Le slug est trop long.')
.custom((slug) => {
if (slug === 'undefined') {
return Promise.reject(new Error('La fonction doit avoir un slug.'))
}
return true
}),
body('description')
.not()
.isEmpty()
.withMessage('La fonction doit avoir une description.')
.isLength({ max: 255, min: 1 })
.withMessage('La description est trop longue.')
.custom((description) => {
if (description === 'undefined') {
return Promise.reject(new Error('La fonction doit avoir une description.'))
}
return true
}),
body('categorieId')
.not()
.isEmpty()
.withMessage('La fonction doit avoir une catégorie.')
.custom(async (categorieId) => {
try {
const categorieFound = await Categories.findOne({ where: { id: parseInt(categorieId) } })
if (!categorieFound) {
return Promise.reject(new Error("La catégorie n'existe pas!"))
}
} catch (error) {
console.log(error)
}
return true
}),
body('type')
.custom((type) => {
if (!(type === 'article' || type === 'form' || type === 'page')) {
return Promise.reject(new Error('Le type de la fonction peut être : article, form ou page.'))
}
return true
})
], adminController.putFunction)
// Supprime une fonction avec son id
.delete(adminController.deleteFunction);
// Supprime une fonction avec son id
.delete(adminController.deleteFunction)
AdminRouter.route('/functions/article/:id')
.put(adminController.putFunctionArticle);
.put(adminController.putFunctionArticle)
AdminRouter.route('/functions/form/:id')
.put(adminController.putFunctionForm);
.put(adminController.putFunctionForm)
AdminRouter.route('/categories')
// Crée une catégorie
.post(adminController.postCategory);
// Crée une catégorie
.post(adminController.postCategory)
AdminRouter.route('/categories/:id')
// Modifier une catégorie avec son id
.put(adminController.putCategory)
// Modifier une catégorie avec son id
.put(adminController.putCategory)
// Supprime une catégorie avec son id
.delete(adminController.deleteCategory);
// Supprime une catégorie avec son id
.delete(adminController.deleteCategory)
AdminRouter.route('/quotes')
// Récupère les citations pas encore validées
.get(adminController.getQuotes);
// Récupère les citations pas encore validées
.get(adminController.getQuotes)
AdminRouter.route('/quotes/:id')
// Valide ou supprime une citation
.put(adminController.putQuote);
// Valide ou supprime une citation
.put(adminController.putQuote)
module.exports = AdminRouter;
module.exports = AdminRouter

View File

@ -1,11 +1,11 @@
const { Router } = require('express');
const categoriesController = require('../controllers/categories');
const { Router } = require('express')
const categoriesController = require('../controllers/categories')
const CategoriesRouter = Router();
const CategoriesRouter = Router()
CategoriesRouter.route('/')
// Récupère les catégories
.get(categoriesController.getCategories);
// Récupère les catégories
.get(categoriesController.getCategories)
module.exports = CategoriesRouter;
module.exports = CategoriesRouter

View File

@ -1,23 +1,23 @@
const { Router } = require('express');
const commentsController = require('../controllers/comments');
const isAuth = require('../middlewares/isAuth');
const { Router } = require('express')
const commentsController = require('../controllers/comments')
const isAuth = require('../middlewares/isAuth')
const CommentsRouter = Router();
const CommentsRouter = Router()
CommentsRouter.route('/:commentId')
// Modifier un commentaire
.put(isAuth, commentsController.putCommentsById)
// Modifier un commentaire
.put(isAuth, commentsController.putCommentsById)
// Supprime un commentaire
.delete(isAuth, commentsController.deleteCommentById);
// Supprime un commentaire
.delete(isAuth, commentsController.deleteCommentById)
CommentsRouter.route('/:functionId')
// Récupère les commentaires
.get(commentsController.getCommentsByFunctionId)
// Récupère les commentaires
.get(commentsController.getCommentsByFunctionId)
// Permet à un utilisateur de poster un commentaire sur une fonction
.post(isAuth, commentsController.postCommentsByFunctionId);
// Permet à un utilisateur de poster un commentaire sur une fonction
.post(isAuth, commentsController.postCommentsByFunctionId)
module.exports = CommentsRouter;
module.exports = CommentsRouter

View File

@ -1,18 +1,18 @@
const { Router } = require('express');
const favoritesController = require('../controllers/favorites');
const isAuth = require('../middlewares/isAuth');
const { Router } = require('express')
const favoritesController = require('../controllers/favorites')
const isAuth = require('../middlewares/isAuth')
const FavoritesRouter = Router();
const FavoritesRouter = Router()
FavoritesRouter.route('/:functionId')
// Récupère si une fonction est en favoris (d'un utilisateur)
.get(isAuth, favoritesController.getFavoriteByFunctionId)
// Récupère si une fonction est en favoris (d'un utilisateur)
.get(isAuth, favoritesController.getFavoriteByFunctionId)
// Permet à un utilisateur d'ajouter une fonction aux favoris
.post(isAuth, favoritesController.postFavoriteByFunctionId)
// Permet à un utilisateur d'ajouter une fonction aux favoris
.post(isAuth, favoritesController.postFavoriteByFunctionId)
// Supprime une fonction des favoris d'un utilisateur
.delete(isAuth, favoritesController.deleteFavoriteByFunctionId);
// Supprime une fonction des favoris d'un utilisateur
.delete(isAuth, favoritesController.deleteFavoriteByFunctionId)
module.exports = FavoritesRouter;
module.exports = FavoritesRouter

View File

@ -1,19 +1,19 @@
const { Router } = require('express');
const functionsController = require('../controllers/functions');
const { Router } = require('express')
const functionsController = require('../controllers/functions')
const FunctionsRouter = Router();
const FunctionsRouter = Router()
FunctionsRouter.route('/')
// Récupère les fonctions
.get(functionsController.getFunctions);
// Récupère les fonctions
.get(functionsController.getFunctions)
FunctionsRouter.route('/:slug')
// Récupère les informations de la fonction par son slug
.get(functionsController.getFunctionBySlug)
// Récupère les informations de la fonction par son slug
.get(functionsController.getFunctionBySlug)
// Exécute la fonction demandée en paramètre
.post(functionsController.executeFunctionBySlug);
// Exécute la fonction demandée en paramètre
.post(functionsController.executeFunctionBySlug)
module.exports = FunctionsRouter;
module.exports = FunctionsRouter

View File

@ -1,15 +1,15 @@
const { Router } = require('express');
const quotesController = require('../controllers/quotes');
const isAuth = require('../middlewares/isAuth');
const { Router } = require('express')
const quotesController = require('../controllers/quotes')
const isAuth = require('../middlewares/isAuth')
const QuotesRouter = Router();
const QuotesRouter = Router()
QuotesRouter.route('/')
// Récupère les citations
.get(quotesController.getQuotes)
// Récupère les citations
.get(quotesController.getQuotes)
// Proposer une citation
.post(isAuth, quotesController.postQuote);
// Proposer une citation
.post(isAuth, quotesController.postQuote)
module.exports = QuotesRouter;
module.exports = QuotesRouter

View File

@ -1,23 +1,23 @@
const { Router } = require('express');
const tasksController = require('../controllers/tasks');
const isAuth = require('../middlewares/isAuth');
const { Router } = require('express')
const tasksController = require('../controllers/tasks')
const isAuth = require('../middlewares/isAuth')
const TasksRouter = Router();
const TasksRouter = Router()
TasksRouter.route('/')
// Récupère les tâches à faire d'un user
.get(isAuth, tasksController.getTasks)
// Récupère les tâches à faire d'un user
.get(isAuth, tasksController.getTasks)
// Poster une nouvelle tâche à faire
.post(isAuth, tasksController.postTask);
// Poster une nouvelle tâche à faire
.post(isAuth, tasksController.postTask)
TasksRouter.route('/:id')
// Permet de mettre une tâche à faire en isCompleted ou !isCompleted
.put(isAuth, tasksController.putTask)
// Permet de mettre une tâche à faire en isCompleted ou !isCompleted
.put(isAuth, tasksController.putTask)
// Supprimer une tâche à faire
.delete(isAuth, tasksController.deleteTask);
// Supprimer une tâche à faire
.delete(isAuth, tasksController.deleteTask)
module.exports = TasksRouter;
module.exports = TasksRouter

View File

@ -1,145 +1,145 @@
const { Router } = require('express');
const { body } = require('express-validator');
const fileUpload = require('express-fileupload');
const usersController = require('../controllers/users');
const { requiredFields } = require('../assets/config/errors');
const Users = require('../models/users');
const isAuth = require('../middlewares/isAuth');
const { Router } = require('express')
const { body } = require('express-validator')
const fileUpload = require('express-fileupload')
const usersController = require('../controllers/users')
const { requiredFields } = require('../assets/config/errors')
const Users = require('../models/users')
const isAuth = require('../middlewares/isAuth')
const UsersRouter = Router();
const UsersRouter = Router()
UsersRouter.route('/')
// Récupère les utilisateurs
.get(usersController.getUsers)
// Récupère les utilisateurs
.get(usersController.getUsers)
// Permet de modifier son profil
.put(isAuth,
fileUpload({
useTempFiles: true,
safeFileNames: true,
preserveExtension: Number,
limits: { fileSize: 5 * 1024 * 1024 }, // 5mb,
parseNested: true
// Permet de modifier son profil
.put(isAuth,
fileUpload({
useTempFiles: true,
safeFileNames: true,
preserveExtension: Number,
limits: { fileSize: 5 * 1024 * 1024 }, // 5mb,
parseNested: true
}),
[
body('email')
.isEmail()
.withMessage("Veuillez rentré une adresse mail valide.")
.custom((async (email) => {
try {
const user = await Users.findOne({ where: { email } });
if (user && user.email !== email) {
return Promise.reject("L'adresse email existe déjà...");
}
} catch (error) {
return console.log(error);
}
return true;
}))
.normalizeEmail(),
body('name')
.trim()
.not()
.isEmpty()
.withMessage("Vous devez avoir un nom (ou pseudo).")
.isAlphanumeric()
.withMessage("Votre nom ne peut contenir que des lettres ou/et des nombres.")
.isLength({ max: 30 })
.withMessage("Votre nom est trop long")
.custom(async (name) => {
try {
const user = await Users.findOne({ where: { name } });
if (user && user.name !== name) {
return Promise.reject("Le nom existe déjà...");
}
} catch (error) {
console.log(error);
}
return true;
}),
body('isPublicEmail')
.isBoolean()
.withMessage("L'adresse email peut être public ou privé, rien d'autre."),
body('biography')
.trim()
.escape()
], usersController.putUser);
// Permet de se connecter
UsersRouter.post('/login', [
body('email')
.not()
.isEmpty()
.withMessage(requiredFields.message),
body('password')
.not()
.isEmpty()
.withMessage(requiredFields.message)
], usersController.login);
// Récupère les informations public d'un profil
UsersRouter.get('/:name', usersController.getUserInfo);
// Permet de s'inscrire
UsersRouter.post('/register', [
body('email')
body('email')
.isEmail()
.withMessage("Veuillez rentré une adresse mail valide.")
.custom((async (email) => {
try {
const user = await Users.findOne({ where: { email } });
if (user) {
return Promise.reject("L'adresse email existe déjà...");
}
} catch (error) {
return console.log(error);
.withMessage('Veuillez rentré une adresse mail valide.')
.custom(async (email) => {
try {
const user = await Users.findOne({ where: { email } })
if (user && user.email !== email) {
return Promise.reject(new Error("L'adresse email existe déjà..."))
}
return true;
}))
} catch (error) {
return console.log(error)
}
return true
})
.normalizeEmail(),
body('password')
.isLength({ min: 4 })
.withMessage("Votre mot de passe est trop court!"),
body('name')
body('name')
.trim()
.not()
.isEmpty()
.withMessage("Vous devez avoir un nom (ou pseudo).")
.withMessage('Vous devez avoir un nom (ou pseudo).')
.isAlphanumeric()
.withMessage("Votre nom ne peut contenir que des lettres ou/et des nombres.")
.withMessage('Votre nom ne peut contenir que des lettres ou/et des nombres.')
.isLength({ max: 30 })
.withMessage("Votre nom est trop long")
.withMessage('Votre nom est trop long')
.custom(async (name) => {
try {
const user = await Users.findOne({ where: { name } });
if (user) {
return Promise.reject("Le nom existe déjà...");
}
} catch (error) {
console.log(error);
try {
const user = await Users.findOne({ where: { name } })
if (user && user.name !== name) {
return Promise.reject(new Error('Le nom existe déjà...'))
}
return true;
})
], usersController.register);
} catch (error) {
console.log(error)
}
return true
}),
body('isPublicEmail')
.isBoolean()
.withMessage("L'adresse email peut être public ou privé, rien d'autre."),
body('biography')
.trim()
.escape()
], usersController.putUser)
// Permet de se connecter
UsersRouter.post('/login', [
body('email')
.not()
.isEmpty()
.withMessage(requiredFields.message),
body('password')
.not()
.isEmpty()
.withMessage(requiredFields.message)
], usersController.login)
// Récupère les informations public d'un profil
UsersRouter.get('/:name', usersController.getUserInfo)
// Permet de s'inscrire
UsersRouter.post('/register', [
body('email')
.isEmail()
.withMessage('Veuillez rentré une adresse mail valide.')
.custom(async (email) => {
try {
const user = await Users.findOne({ where: { email } })
if (user) {
return Promise.reject(new Error("L'adresse email existe déjà..."))
}
} catch (error) {
return console.log(error)
}
return true
})
.normalizeEmail(),
body('password')
.isLength({ min: 4 })
.withMessage('Votre mot de passe est trop court!'),
body('name')
.trim()
.not()
.isEmpty()
.withMessage('Vous devez avoir un nom (ou pseudo).')
.isAlphanumeric()
.withMessage('Votre nom ne peut contenir que des lettres ou/et des nombres.')
.isLength({ max: 30 })
.withMessage('Votre nom est trop long')
.custom(async (name) => {
try {
const user = await Users.findOne({ where: { name } })
if (user) {
return Promise.reject(new Error('Le nom existe déjà...'))
}
} catch (error) {
console.log(error)
}
return true
})
], usersController.register)
// Confirme l'inscription
UsersRouter.get('/confirm-email/:tempToken', usersController.confirmEmail);
UsersRouter.get('/confirm-email/:tempToken', usersController.confirmEmail)
UsersRouter.route('/reset-password')
// Demande une réinitialisation du mot de passe
.post([
body('email')
.isEmail()
.withMessage("Veuillez rentré une adresse mail valide.")
], usersController.resetPassword)
// Demande une réinitialisation du mot de passe
.post([
body('email')
.isEmail()
.withMessage('Veuillez rentré une adresse mail valide.')
], usersController.resetPassword)
// Nouveau mot de passe
.put([
body('password')
.isLength({ min: 4 })
.withMessage("Votre mot de passe est trop court!")
], usersController.newPassword);
// Nouveau mot de passe
.put([
body('password')
.isLength({ min: 4 })
.withMessage('Votre mot de passe est trop court!')
], usersController.newPassword)
module.exports = UsersRouter;
module.exports = UsersRouter