/stock-rest

stock rest api (the same of sotck-gql without graphql)

Primary LanguageTypeScript


Descripcion

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

Herramientas

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)

Nest Logo

A progressive Node.js framework for building efficient and scalable server-side applications.

NPM Version Package License NPM Downloads CircleCI Coverage Discord Backers on Open Collective Sponsors on Open Collective Support us

Description

Nest framework TypeScript starter repository.

Installation

$ npm install

Running the app

# development
$ npm run start

# watch mode
$ npm run start:dev

# production mode
$ npm run start:prod

Test

# unit tests
$ npm run test

# e2e tests
$ npm run test:e2e

# test coverage
$ npm run test:cov

Support

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.

Stay in touch

License

Nest is MIT licensed.