Skip to content

Commit c971d92

Browse files
authored
Merge pull request #5 from eduardoconti/mongo
feat: adiciona mongo e cria userMongoRepository
2 parents fbcdd3c + f915ea2 commit c971d92

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+307
-74
lines changed

docker-compose.yml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,25 @@ services:
7878
- api-pix
7979
dns:
8080
- 8.8.8.8
81+
82+
mongo:
83+
image: mongo
84+
container_name: mongo
85+
ports:
86+
- ${DB_MONGO_PORT}:${DB_MONGO_PORT}
87+
volumes:
88+
- mongo-apipix-data:/data/db
89+
networks:
90+
- api-pix
91+
restart: always
92+
dns:
93+
- 8.8.8.8
94+
8195
networks:
8296
api-pix:
8397

8498
volumes:
8599
pg-apipix-data:
86100
redis:
87101
es-data:
102+
mongo-apipix-data:

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
"@nestjs/elasticsearch": "8.0.0",
3535
"@nestjs/event-emitter": "^1.4.1",
3636
"@nestjs/jwt": "^10.0.2",
37+
"@nestjs/mongoose": "^9.2.2",
3738
"@nestjs/passport": "^9.0.3",
3839
"@nestjs/platform-express": "^9.0.0",
3940
"@nestjs/schedule": "^2.2.0",
@@ -54,6 +55,7 @@
5455
"class-transformer": "^0.5.1",
5556
"class-validator": "^0.14.0",
5657
"joi": "^17.8.3",
58+
"mongoose": "^7.0.3",
5759
"nanoid": "3.3.4",
5860
"passport": "^0.6.0",
5961
"passport-jwt": "^4.0.1",
@@ -126,7 +128,6 @@
126128
"!<rootDir>/infra/strategy/**",
127129
"!<rootDir>/infra/guard/**",
128130
"!<rootDir>/infra/decorators/**"
129-
130131
],
131132
"coverageDirectory": "../coverage",
132133
"testEnvironment": "node",

src/app/app.provider.ts

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ import { IQueue } from '@domain/core/queue';
1010
import { IChargeRepository, IWebhookRepository } from '@domain/core/repository';
1111

1212
import { CelcoinApi, ICelcoinApi } from '@infra/celcoin';
13+
import { UserRepositoryMongo } from '@infra/database/mongo';
1314
import {
1415
ChargeRepository,
1516
UserWebhookNotificationRepository,
1617
WebhookRepository,
17-
} from '@infra/prisma';
18-
import { UserRepository } from '@infra/prisma/user.repository';
18+
} from '@infra/database/prisma';
1919

2020
import { IPspService } from './contracts';
2121
import { ChargeCreatedListener, ChargePayedListener } from './event-handler';
@@ -70,18 +70,18 @@ export const provideChargeCreatedListener: Provider<ChargeCreatedListener> = {
7070

7171
export const provideRegisterUserUseCase: Provider<RegisterUserUseCase> = {
7272
provide: RegisterUserUseCase,
73-
useFactory: (userRepository: IUserRepository) => {
74-
return new RegisterUserUseCase(userRepository);
73+
useFactory: (mongo: IUserRepository) => {
74+
return new RegisterUserUseCase(mongo);
7575
},
76-
inject: [UserRepository],
76+
inject: [UserRepositoryMongo],
7777
};
7878

7979
export const provideUserAuthUseCase: Provider<UserAuthUseCase> = {
8080
provide: UserAuthUseCase,
8181
useFactory: (userRepository: IUserRepository) => {
8282
return new UserAuthUseCase(userRepository);
8383
},
84-
inject: [UserRepository],
84+
inject: [UserRepositoryMongo],
8585
};
8686

8787
export const provideChargePayedListener: Provider<ChargePayedListener> = {
@@ -95,5 +95,5 @@ export const provideChargePayedListener: Provider<ChargePayedListener> = {
9595
userRepository,
9696
);
9797
},
98-
inject: [UserWebhookNotificationRepository, UserRepository],
98+
inject: [UserWebhookNotificationRepository, UserRepositoryMongo],
9999
};

src/app/event-handler/charge-payed.event-handler.spec.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,8 @@ import {
1414
import { ArgumentInvalidException } from '@domain/exceptions';
1515
import { UUID } from '@domain/value-objects';
1616

17-
import {
18-
UserRepository,
19-
UserWebhookNotificationRepository,
20-
} from '@infra/prisma';
17+
import { UserRepositoryMongo } from '@infra/database/mongo';
18+
import { UserWebhookNotificationRepository } from '@infra/database/prisma';
2119

2220
import { ChargePayedListener } from './charge-payed.event-handler';
2321

@@ -30,7 +28,7 @@ describe('ChargePayedListener', () => {
3028
providers: [
3129
provideChargePayedListener,
3230
{
33-
provide: UserRepository,
31+
provide: UserRepositoryMongo,
3432
useValue: {
3533
findOne: jest.fn(),
3634
},
@@ -48,7 +46,7 @@ describe('ChargePayedListener', () => {
4846
userWebhookNotificationRepository = module.get(
4947
UserWebhookNotificationRepository,
5048
);
51-
userRepository = module.get(UserRepository);
49+
userRepository = module.get(UserRepositoryMongo);
5250
});
5351

5452
afterEach(() => {

src/app/use-cases/create-immediate-charge.use-case.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ import {
2222
import { IEventEmitter } from '@domain/core';
2323
import { IChargeRepository } from '@domain/core/repository';
2424

25+
import { ChargeRepository } from '@infra/database/prisma';
2526
import { CreateImmediateChargeException } from '@infra/exceptions';
26-
import { ChargeRepository } from '@infra/prisma';
2727

2828
describe('CreateImmediateChargeUseCase', () => {
2929
let pspService: IPspService;

src/app/use-cases/receive-webhook.use-case.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { mockWebhookEntity } from '@domain/__mocks__/webhook.mock';
66
import { IWebhookRepository } from '@domain/core/repository';
77

88
import { mockCelcoinWebhook } from '@infra/__mocks__/celcoin.mock';
9-
import { WebhookRepository } from '@infra/prisma/webhook.repository';
9+
import { WebhookRepository } from '@infra/database/prisma/webhook.repository';
1010

1111
import { WebhookCelcoinInput } from '@presentation/dto';
1212

src/app/use-cases/receive-webhook.use-case.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
WebhookTypes,
99
} from '@domain/entities';
1010

11-
import { WebhookModel } from '@infra/prisma/models';
11+
import { WebhookModel } from '@infra/database/models';
1212

1313
export type ReceiveWebhookUseCaseOutput = string;
1414
export type ReceiveWebhookUseCaseInput = {

src/app/use-cases/register-user.use-case.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import { mockUserEntity, mockUserEntityWithoutHost } from '@domain/__mocks__';
1111
import { IUserRepository } from '@domain/core';
1212
import { ArgumentInvalidException } from '@domain/exceptions';
1313

14-
import { UserRepository } from '@infra/prisma';
14+
import { UserRepositoryMongo } from '@infra/database/mongo';
1515

1616
import {
1717
IRegisterUserUseCase,
@@ -27,7 +27,7 @@ describe('RegisterUserUseCase', () => {
2727
providers: [
2828
provideRegisterUserUseCase,
2929
{
30-
provide: UserRepository,
30+
provide: UserRepositoryMongo,
3131
useValue: {
3232
exists: jest.fn(),
3333
save: jest.fn(),
@@ -37,7 +37,7 @@ describe('RegisterUserUseCase', () => {
3737
}).compile();
3838

3939
registerUserUseCase = app.get<IRegisterUserUseCase>(RegisterUserUseCase);
40-
userRepository = app.get<IUserRepository>(UserRepository);
40+
userRepository = app.get<IUserRepository>(UserRepositoryMongo);
4141
});
4242

4343
it('should defined', () => {

src/app/use-cases/user-auth.use-case.spec.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import { provideUserAuthUseCase } from '@app/app.provider';
66
import { mockUserEntity } from '@domain/__mocks__';
77
import { IUserRepository } from '@domain/core';
88

9+
import { UserRepositoryMongo } from '@infra/database/mongo';
910
import { UnauthorizedException } from '@infra/exceptions';
10-
import { UserRepository } from '@infra/prisma';
1111

1212
import { UserAuthUseCase, IUserAuthUseCase } from './user-auth.use-case';
1313

@@ -20,7 +20,7 @@ describe('userAuthUseCase', () => {
2020
providers: [
2121
provideUserAuthUseCase,
2222
{
23-
provide: UserRepository,
23+
provide: UserRepositoryMongo,
2424
useValue: {
2525
findOne: jest.fn(),
2626
},
@@ -29,7 +29,7 @@ describe('userAuthUseCase', () => {
2929
}).compile();
3030

3131
userAuthUseCase = app.get<IUserAuthUseCase>(UserAuthUseCase);
32-
userRepository = app.get<IUserRepository>(UserRepository);
32+
userRepository = app.get<IUserRepository>(UserRepositoryMongo);
3333
});
3434

3535
it('should be defined', () => {

0 commit comments

Comments
 (0)