🎨 Configure standardJS
This commit is contained in:
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Reference in New Issue
Block a user