https://github.com/jcmdsbr/five-workshop-nest
Projeto de exemplo de nestjs aplicado no treinamento ministrado na empresa 5by5 Soluções em Sistemas
https://github.com/jcmdsbr/five-workshop-nest
nest nodejs typescript
Last synced: 15 days ago
JSON representation
Projeto de exemplo de nestjs aplicado no treinamento ministrado na empresa 5by5 Soluções em Sistemas
- Host: GitHub
- URL: https://github.com/jcmdsbr/five-workshop-nest
- Owner: jcmdsbr
- Created: 2021-06-10T23:57:27.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2022-11-07T14:16:01.000Z (over 2 years ago)
- Last Synced: 2025-05-05T20:13:01.788Z (15 days ago)
- Topics: nest, nodejs, typescript
- Language: TypeScript
- Homepage:
- Size: 203 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Primeiros passos :sunglasses:
## Croar módulo de Conta Bancária :heavy_check_mark:
```sh
nest g module accounts
nest g controller accounts
```- Vamos criar nossa classe Account que irá representar nossa conta bancária
- Depois vamos criar nosso contrato que irá representar as transações do nosso sistema
- Uma vez criado, agora iremos definir nossas classes responsáveis por Crédito e Débito
- Agora vamos voltar para nossa conta bancária e definir alguns comportamentos
- Método Open é um factory method que irá representar a abertura de uma nova conta
- Deposit será o nosso método que representará o comportamento de deposito
- Credit será o nosso método que representará o comportamento de Crédito
- Precisamos de um método para retornar o saldo atual da conta para fins de cálculo
- Vamos definir nossos casos de uso agora com eles vamos descrever os comportamentos e regras da nossa aplicação```sh
nest g service accounts/useCases/closeAccount
nest g service accounts/useCases/deposit
nest g service accounts/useCases/withdraw
nest g service accounts/useCases/getCurrentBalance
```- Vamos criar nosso repositório e seu contrato
- Depois vamos configurar o DI dele```ts
@Module({
controllers: [AccountsController],
providers: [
CloseAccountService,
DepositService,
GetCurrentBalanceService,
WithdrawService,
{ provide: 'IAccountRepository', useClass: AccountRepositry },
],
})
export class AccountsModule {}
```## Criar módulo de Clientes :exclamation:
```sh
nest g module customers
nest g controller customers
```- Vamos instalar o validador de CPF :heavy_check_mark:
```sh
npm i cpf-cnpj-validato
```- Vamos trabalhar com eventos instalando :heavy_check_mark:
```sh
npm i --save @nestjs/event-emitter
```- Configuração do modulo de Cliente :heavy_check_mark:
```ts
@Module({
controllers: [CustomersController],
providers: [
Logger,
RegisterNewCustomerService,
CustomerRegisteredEventHandler,
{ provide: 'IAccountRepository', useClass: AccountRepositry },
{ provide: 'ICustomerRepository', useClass: CustomerRepository },
],
})
export class CustomersModule {}```