curupiras
Version:
Curupiras é um template back-end que utiliza Express e TypeScript
64 lines (58 loc) • 1.59 kB
text/typescript
import UserController from '@modules/userSample/controllers/UserController';
import { TokenValidation } from '@shared/middlewares';
import { celebrate, Joi, Segments } from 'celebrate';
import { Router } from 'express';
const userRoutes = Router();
const userController = new UserController();
const validation = new TokenValidation();
userRoutes
.route('/')
.post(
celebrate({
[]: {
name: Joi.string().required(),
email: Joi.string().email().required(),
phone: Joi.string().required(),
password: Joi.string().required(),
age: Joi.number().positive().required(),
admin: Joi.bool().required(),
},
}),
userController.create,
)
.get(validation.adminRoute,userController.list);
userRoutes
.route('/:id')
.put(
celebrate({
[]: { id: Joi.string().required() },
[]: {
name: Joi.string(),
email: Joi.string().email(),
phone: Joi.string(),
password: Joi.string(),
age: Joi.number().positive(),
admin: Joi.bool(),
},
}),
userController.update,
)
.get(
celebrate({ [Segments.PARAMS]: { id: Joi.string().required() } }),
userController.find,
)
.delete(
celebrate({ [Segments.PARAMS]: { id: Joi.string().required() } }),
userController.remove,
);
userRoutes.post(
'/login',
celebrate({
[]: {
email: Joi.string().email().required(),
password: Joi.string().required(),
},
}),
userController.login
);
export default userRoutes;