Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Dúvida] Interface de Payload

Uma dúvida bem simples. No minuto 5:20 a interface dentro desse arquivo não quebraria o conceito 'S' do SOLID?

1 resposta
solução!

Olá Renan! Tudo joia?

A sua dúvida é bastante interessante e toca em um ponto importante do SOLID, especificamente o princípio da responsabilidade única (Single Responsibility Principle - SRP). O SRP sugere que uma classe ou módulo deve ter uma única razão para mudar, ou seja, deve ter apenas uma responsabilidade.

No contexto do Nest.js e da criação de um JWT, a interface UsuarioPayload que você mencionou é utilizada para definir a estrutura do payload do JWT. A criação dessa interface dentro do mesmo arquivo onde o JWT é gerado pode, à primeira vista, parecer que estamos misturando responsabilidades, mas, na prática, ela serve apenas como um tipo para garantir a consistência dos dados.

Para manter o princípio do SRP, você poderia optar por definir essa interface em um arquivo separado, especialmente se ela for utilizada em diferentes partes do seu projeto. Por exemplo, você poderia criar um arquivo usuario-payload.interface.ts e definir a interface lá:

// usuario-payload.interface.ts
export interface UsuarioPayload {
  sub: string;
  nomeUsuario: string;
}

E então importá-la onde for necessário:

import { UsuarioPayload } from './usuario-payload.interface';

// autenticacao.service.ts
const payload: UsuarioPayload = {
  sub: usuario.id,
  nomeUsuario: usuario.nome,
};

Dessa forma, você estaria separando as responsabilidades de maneira mais clara, o que é uma prática recomendada para manter o código organizado e aderente aos princípios do SOLID.

Espero ter ajudado e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.