Comunicação - Yago-Captain/GeneralNotes GitHub Wiki
O diretório de Comunicação, localizado em MyGeneralNotes.Communication
, é uma biblioteca de classes essencial que facilita a comunicação entre diferentes componentes ou serviços da nossa aplicação. Este diretório desempenha um papel fundamental na troca de informações entre os diversos módulos do sistema, garantindo uma integração eficiente e coesa.
Neste diretório, encontramos duas enumerações importantes:
- DayOfWeek: Esta enumeração define os dias da semana, fornecendo uma representação consistente dos dias para várias funcionalidades da nossa aplicação.
namespace MyGeneralNotes.Communication.Enum
{
public enum DayOfWeek
{
Sunday = 1,
Monday = 2,
Tuesday = 3,
Wednesday = 4,
Thursday = 5,
Friday = 6,
Saturday = 7
}
}
- ExerciseLocation: Esta enumeração especifica os locais onde um exercício pode ser realizado, oferecendo uma maneira padronizada de identificar o ambiente de treino.
namespace MyGeneralNotes.Communication.Enum
{
public enum ExerciseLocation
{
Gym = 1,
Home = 2
}
}
As classes de requisição definidas neste diretório são responsáveis por encapsular os dados enviados para os diferentes endpoints ou serviços da aplicação. Cada classe de requisição corresponde a uma operação específica que pode ser realizada, como alterar a senha do usuário, realizar login, registrar um novo usuário, entre outras.
- RequestChangePassword: Responsável por encapsular os dados necessários para a alteração de senha do usuário.
namespace MyGeneralNotes.Communication.Requests
{
public class RequestChangePassword
{
public string Password { get; set; } = string.Empty;
public string NewPassword { get; set; } = string.Empty;
}
}
- RequestDashboard: Encapsula os dados necessários para solicitar o dashboard, incluindo o nome do usuário e o dia da semana.
namespace MyGeneralNotes.Communication.Requests
{
public class RequestDashboard
{
public string Name { get; set; } = string.Empty;
public DayOfWeek DayOfWeek { get; set; }
}
}
- RequestExercise: Responsável por encapsular os dados de um exercício, incluindo nome, localização, carga, repetições, tempo de descanso, equipamento e detalhes.
namespace MyGeneralNotes.Communication.Requests
{
public class RequestExercise
{
public string Name { get; set; } = string.Empty;
public ExerciseLocation Location { get; set; }
public double Charge { get; set; }
public int Repetitions { get; set; }
public int RestTime { get; set; }
public string Equipment { get; set; } = string.Empty;
public string Details { get; set; } = string.Empty;
}
}
- RequestLogin: Encapsula os dados necessários para a solicitação de login, incluindo o email e a senha do usuário.
namespace MyGeneralNotes.Communication.Requests
{
public class RequestLogin
{
public string Email { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
}
}
- RequestRegisteredUser: Responsável por encapsular os dados necessários para registrar um novo usuário, incluindo nome, email e senha.
namespace MyGeneralNotes.Communication.Requests
{
public class RequestRegisteredUser
{
public string Name { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
public string Password { get; set; } = string.Empty;
}
}
- RequestRoutine: Encapsula os dados necessários para definir uma rotina de exercícios, incluindo nome, dia da semana e a lista de exercícios.
namespace MyGeneralNotes.Communication.Requests
{
public class RequestRoutine
{
public RequestRoutine()
{
Exercises = new List<RequestExercise>();
}
public string Name { get; set; } = string.Empty;
public DayOfWeek DayOfWeek { get; set; }
public List<RequestExercise> Exercises { get; set; }
}
}
- RequestUpdateUser: Responsável por encapsular os dados necessários para atualizar o perfil do usuário, incluindo nome e email.
namespace MyGeneralNotes.Communication.Requests
{
public class RequestUpdateUser
{
public string Name { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
}
}
As classes de resposta neste diretório fornecem uma estrutura para os dados retornados pelos endpoints ou serviços da aplicação. Cada classe de resposta corresponde a um tipo específico de informação que pode ser recebida, como informações do perfil do usuário, rotinas de treino, erros, entre outras.
- ResponseDashboard: Responsável por encapsular os dados do dashboard, incluindo uma lista de rotinas.
namespace MyGeneralNotes.Communication.Responses
{
public class ResponseDashboard
{
public List<ResponseRoutinesDashboard> Routines { get; set; } = new List<ResponseRoutinesDashboard>();
}
}
- ResponseError: Encapsula os dados de erro, incluindo uma lista de mensagens de erro e um indicador de expiração do token.
namespace MyGeneralNotes.Communication.Responses
{
public class ResponseError
{
public IList<string> Errors { get; set; }
public bool TokenIsExpired { get; set; }
public ResponseError(IList<string> errors) => Errors = errors;
public ResponseError(string error)
{
Errors = new List<string> { error };
}
}
}
- ResponseExercice: Responsável por encapsular os dados de um exercício, incluindo ID, nome, localização, carga, repetições, tempo de descanso, equipamento e detalhes.
namespace MyGeneralNotes.Communication.Responses
{
public class ResponseExercice
{
public string Id { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public ExerciseLocation Location { get; set; }
public double Charge { get; set; }
public int Repetitions { get; set; }
public int RestTime { get; set; }
public string Equipment { get; set; } = string.Empty;
public string Details { get; set; } = string.Empty;
}
}
- ResponseRegisteredUser: Encapsula os dados de um usuário registrado, incluindo nome e tokens de acesso.
namespace MyGeneralNotes.Communication.Responses
{
public class ResponseRegisteredUser
{
public string Name { get; set; } = string.Empty;
public ResponseTokens Tokens { get; set; } = new ResponseTokens();
}
}
- ResponseRoutine: Responsável por encapsular os dados de uma rotina de exercícios, incluindo ID, nome, dia da semana e lista de exercícios.
namespace MyGeneralNotes.Communication.Responses
{
public class ResponseRoutine
{
public ResponseRoutine()
{
Exercises = new List<RequestExercise>();
}
public string Id { get; set; } = string.Empty;
public string Name { get; set; } = string.Empty;
public DayOfWeek DayOfWeek { get; set; }
public List<RequestExercise> Exercises { get; set; }
}
}
- ResponseRoutinesDashboard: Encapsula os dados de uma rotina de treino para exibição no dashboard, incluindo nome, dia da semana e contagem de exercícios.
namespace MyGeneralNotes.Communication.Responses
{
public class ResponseRoutinesDashboard
{
public string Name { get; set; } = string.Empty;
public DayOfWeek DayOfWeek { get; set; }
public int ExerciseCount { get; set; }
}
}
- ResponseTokens: Responsável por encapsular os tokens de acesso, incluindo o token de acesso JWT.
namespace MyGeneralNotes.Communication.Responses
{
public class ResponseTokens
{
public string AccessToken { get; set; } = string.Empty;
}
}
- ResponseUserProfile: Encapsula os dados do perfil do usuário, incluindo nome e email.
namespace MyGeneralNotes.Communication.Responses
{
public class ResponseUserProfile
{
public string Name { get; set; } = string.Empty;
public string Email { get; set; } = string.Empty;
}
}
Essas classes de requisição e resposta são fundamentais para garantir uma comunicação eficaz e uma integração bem-sucedida entre os diferentes componentes da nossa aplicação. Elas fornecem uma maneira padronizada e consistente de trocar dados, facilitando o desenvolvimento, manutenção e escalabilidade do sistema.