CRUD basico, utilizando Fastify, JWT para autenticar usuario y tipo, donde existen solo 2 roles:
- Basicos, usuario que puede borrar, actualizar y revisar sus productos propios.
- Administrador, que puede ver productos de cualquier usuario basico y los productos propios del admin (Productos de Administradores solo pueden ser visto por sus creadores)
- Moderador, para manipular quienes pueden pasar a ser administradores
- master, simplemente master el mas mamalon
Algunas de las herramientas utilizadas son:
- Mikro-ORM para manipulacion de la base de datos
- Se reintenta re-conexion al realizar uso de repositorios (punto para mikro-orm)
- JWT como clave para autenticar usuarios
- BCrypt para hash de contraseñas de usuarios
- Fastify
- class-validators para Body tipado
Diferencias con la version en GraphQL
- No hay softDelete
- Query Builder funciona como el culo, Updates y Deletes en Query Builder de Postgresql no crean SQL con joins (ni auto-joins son generados)
- pruebas en repo de Mikro-ORM pasan la prueba pero en MySQL (usuarios postgres quedar tipo :c)
- Uso de entidad virtual en el caso de tag para obtener numero de items por tag
- este solo punto lo hace mas piñufla que typeORM
- multer para recibir imagenes (portada de item se guardan en servicio de cloudinary, se puede usar si se quiere)
- no hay interceptor para el caso de archivos con fastify (debe ser creado por uno)
- interceptores para crear id de usuario antes de metodo (la peor excusa para probar interceptores)
- un pipe para confirmar un valor alfanumerico por ahi (similar a la excusa anterior pero con un pipe)
A progressive Node.js framework for building efficient and scalable server-side applications.
Nest framework TypeScript starter repository.
$ npm install
# development
$ npm run start
# watch mode
$ npm run start:dev
# production mode
$ npm run start:prod
# unit tests
$ npm run test
# e2e tests
$ npm run test:e2e
# test coverage
$ npm run test:cov
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please read more here.
- Author - Kamil Myśliwiec
- Website - https://nestjs.com
- Twitter - @nestframework
Nest is MIT licensed.