ruslanguns / nestjs-myblog

😍 NestJS + TypeORM + MySQL + Bonus: Swagger
140 stars 52 forks source link

Temario Dominicode LiveCoding 23-08-2020 #1

Closed ruslanguns closed 4 years ago

ruslanguns commented 4 years ago
  • Clonar repositorio git clone -b livecoding/1 https://github.com/ruslanguns/nestjs-myblog.git myblog

Requisitos:

Paquetes:

- bcryptjs
- @types/bcryptjs
  • Creación de estructura de usuario (archivos con el CLI)
  • Creando la configuración de la entidad de usuario
  • Configurando los DTOs de Usuario
  • Inyectando el repositorio en el provider de Usuario y creando el CRUD
  • Ajustar los nombres de camelCase a pascal_case para las propiedades de la DB
  • Encriptar contraseña y ocultándola en las peticiones: FUENTE

Requisitos:

Paquetes:

- @nestjs/config
  • Inyección de ConfigModule y configuración del archivo .env
  • Implementar variables de entorno con el TypeORM de forma asíncrona
  • Evitar los Magic Strings y hacer uso de constantes
  • No nos olvidemos de crear un SAMPLE ENV y excluirlo del GIT

JWT STRATEGY

  • Estructura de carpetas que usaremos.
  • Configuración básica siguiendo la Documentacion oficial
  • Inyectar PassportModule
  • Crear el provider localStrategy e implementarlo conjunto al servicio
  • Mi primer Custom Decorator para obtener el usuario
  • Inyectar JwtModule
  • Implementar el provider jwtStrategy e implementarlo
  • Método de Login JWT y endpoint profile
  • Error handling con JWT en el Guard
  • Configuración para el Swagger addBearerAuth()

Requisitos:

Paquetes:

- nest-access-control
  • Modificación de UserModel para almacenar los roles
  • Creación del archivo app.roles.ts y utilizar builder
  • Inyectar el AccessControlModule en el AppModule
  • Creación del decorador wrapper
  • Implementar lógica de negocio para rutas OWN && ANY
  • Creación de una función para generar un usuario único

ROADMAP

                     
  Controller Método Ruta Info PUBLIC AUTHOR ADMIN AUTHOR POSSESION ADMIN POSSESION  
  USER GET /user Get Many YES YES YES ANY ANY  
  USER GET /user/1 Get One By ID YES YES YES ANY ANY  
  USER POST /user Create One NO YES YES OWN OWN  
  USER PUT /user/1 Edit One NO YES YES OWN ANY  
  USER DELETE /user/1 Delete One NO YES YES OWN ANY  
  USER POST /post Registration YES YES YES - -  
  POST GET /post Get Many YES YES YES ANY ANY  
  POST GET /post/1 Get One By ID YES YES YES ANY ANY  
  POST POST /post Create One NO YES YES OWN OWN  
  POST PUT /post/1 Edit One NO YES YES OWN ANY  
  POST DELETE /post/1 Delete One NO YES YES OWN ANY  
  AUTH POST /auth/login Login YES YES YES - -  
  AUTH GET /auth/profile Get me NO YES YES - -  
                     

Articles to read

bezael commented 4 years ago

Eres un crack!

aurelio-mont commented 4 years ago

Eres buenicimo, saludos desde México

femastro commented 4 years ago

me contacte con el en privado y la verdad , un maestro !!!! GRACIAS!!!! Ruslan!!!

femastro commented 4 years ago

estoy empezando con todo esto, estuve viendo como usar Git, creo que lo hice bien, pase un commit. con lo que te comente. del .env.sample. si hice lio o algo mal decirme.

ruslanguns commented 4 years ago

Excelente! ¡Estate pendiente de la próxima entrega! ¡Saludos!

-- Ruslán González Tel: +34 644 27 47 56 email: ruslanguns@gmail.com

El mar., 25 de ago. de 2020 a la(s) 22:00, Fernando ( notifications@github.com) escribió:

estoy empezando con todo esto, estuve viendo como usar Git, creo que lo hice bien, pase un commit. con lo que te comente. del .env.sample. si hice lio o algo mal decirme.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/ruslanguns/nestjs-myblog/issues/1#issuecomment-680267292, or unsubscribe https://github.com/notifications/unsubscribe-auth/AEXDV6GACSDBWACKRXWGXALSCQQ6TANCNFSM4QITE6GA .

femastro commented 4 years ago

no no puede porque no estoy autorizado para hacer un commit.

femastro commented 4 years ago

bueno menos mal no hice lio..

ruslanguns commented 4 years ago

@femastro no nada mal hecho, tranqui! El domingo la próxima parte del mini curso!

ruslanguns commented 4 years ago

Cierro este Issue y abro #4 para continuar con la parte II de este hilo.