Skip to content

Commit 488bea8

Browse files
authored
Merge pull request #76 from raouf-b-dev/feature/ES-104-rename-redis-repositories-to-cached-repository
Feature/es 104 rename redis repositories to cached repository
2 parents 84de1e8 + f0d9bee commit 488bea8

File tree

30 files changed

+98
-104
lines changed

30 files changed

+98
-104
lines changed

DDD-HEXAGONAL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ src/modules/[module]/
102102
| **Shared Kernel** | A subset of the domain model shared between multiple contexts. Must be pure domain — no infrastructure | `src/shared-kernel/domain/` — contains only `Result`, `AppError`, `UseCase`, `Money`, `Quantity`, `IdempotencyStore` |
103103
| **Context Map** | Documents the relationships between Bounded Contexts | Orders imports from Customers (ACL via CustomerGateway), Carts (ACL via CartGateway) |
104104
| **Upstream/Downstream** | One context provides, another consumes | Orders (downstream) consumes Customers, Carts, Inventory, Payments (upstream) |
105-
| **Anti-Corruption Layer** | Translates between two contexts' models | Mappers in `secondary-adapters/persistence/mappers/` |
105+
| **Anti-Corruption Layer** | Translates between two contexts' models | Gateway adapters in `secondary-adapters/adapters/` (e.g., `CustomerGatewayAdapter`, `CartGatewayAdapter`) |
106106

107107
### 2.2 Tactical Design Patterns
108108

src/modules/auth/auth.module.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { TypeOrmModule } from '@nestjs/typeorm';
33
import { JwtModule } from '@nestjs/jwt';
44
import { PassportModule } from '@nestjs/passport';
55
import { PostgresUserRepository } from './secondary-adapters/repositories/postgres-user-repository/postgres-user.repository';
6-
import { RedisUserRepository } from './secondary-adapters/repositories/redis-user-repository/redis-user.repository';
6+
import { CachedUserRepository } from './secondary-adapters/repositories/cached-user-repository/cached-user.repository';
77
import { BcryptService } from './secondary-adapters/services/bcrypt.service';
88
import { JwtStrategy } from './secondary-adapters/strategies/jwt.strategy';
99
import { UserEntity } from './secondary-adapters/orm/user.schema';
@@ -14,7 +14,7 @@ import { LoginUserUseCase } from './core/application/usecases/login-user/login-u
1414
import { RegisterUserUseCase } from './core/application/usecases/register-user/register-user.usecase';
1515
import {
1616
POSTGRES_USER_REPOSITORY,
17-
REDIS_USER_REPOSITORY,
17+
CACHED_USER_REPOSITORY,
1818
CUSTOMER_GATEWAY,
1919
} from './auth.tokens';
2020
import { ModuleCustomerGateway } from './secondary-adapters/adapters/module-customer.gateway';
@@ -45,18 +45,18 @@ import { EnvConfigService } from '../../config/env-config.service';
4545
useClass: PostgresUserRepository,
4646
},
4747
{
48-
provide: REDIS_USER_REPOSITORY,
48+
provide: CACHED_USER_REPOSITORY,
4949
useFactory: (
5050
cacheService: CacheService,
5151
postgresRepo: PostgresUserRepository,
5252
) => {
53-
return new RedisUserRepository(cacheService, postgresRepo);
53+
return new CachedUserRepository(cacheService, postgresRepo);
5454
},
5555
inject: [CacheService, POSTGRES_USER_REPOSITORY],
5656
},
5757
{
5858
provide: UserRepository,
59-
useExisting: REDIS_USER_REPOSITORY,
59+
useExisting: CACHED_USER_REPOSITORY,
6060
},
6161

6262
// Gateways

src/modules/auth/auth.tokens.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
export const POSTGRES_USER_REPOSITORY = Symbol('POSTGRES_USER_REPOSITORY');
2-
export const REDIS_USER_REPOSITORY = Symbol('REDIS_USER_REPOSITORY');
2+
export const CACHED_USER_REPOSITORY = Symbol('CACHED_USER_REPOSITORY');
33
export const CUSTOMER_GATEWAY = Symbol('CUSTOMER_GATEWAY');

src/modules/auth/secondary-adapters/repositories/redis-user-repository/redis-user.repository.spec.ts renamed to src/modules/auth/secondary-adapters/repositories/cached-user-repository/cached-user.repository.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Test, TestingModule } from '@nestjs/testing';
2-
import { RedisUserRepository } from './redis-user.repository';
2+
import { CachedUserRepository } from './cached-user.repository';
33
import { CacheService } from '../../../../../infrastructure/redis/cache/cache.service';
44
import { UserRepository } from '../../../core/domain/repositories/user.repository';
55
import { MockUserRepository } from '../../../testing/mocks/user-repository.mock';
@@ -11,8 +11,8 @@ import { UserCacheMapper } from '../../persistence/mappers/user.mapper';
1111
import { USER_REDIS } from '../../../../../infrastructure/redis/constants/redis.constants';
1212
import { Result } from '../../../../../shared-kernel/domain/result';
1313

14-
describe('RedisUserRepository', () => {
15-
let repository: RedisUserRepository;
14+
describe('CachedUserRepository', () => {
15+
let repository: CachedUserRepository;
1616
let cacheService: jest.Mocked<CacheService>;
1717
let postgresRepo: MockUserRepository;
1818

@@ -22,7 +22,7 @@ describe('RedisUserRepository', () => {
2222
beforeEach(async () => {
2323
const module: TestingModule = await Test.createTestingModule({
2424
providers: [
25-
RedisUserRepository,
25+
CachedUserRepository,
2626
{
2727
provide: CacheService,
2828
useValue: {
@@ -39,7 +39,7 @@ describe('RedisUserRepository', () => {
3939
],
4040
}).compile();
4141

42-
repository = module.get<RedisUserRepository>(RedisUserRepository);
42+
repository = module.get<CachedUserRepository>(CachedUserRepository);
4343
cacheService = module.get(CacheService);
4444
postgresRepo = module.get(UserRepository);
4545
});

src/modules/auth/secondary-adapters/repositories/redis-user-repository/redis-user.repository.ts renamed to src/modules/auth/secondary-adapters/repositories/cached-user-repository/cached-user.repository.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import {
1212
} from '../../persistence/mappers/user.mapper';
1313

1414
@Injectable()
15-
export class RedisUserRepository implements UserRepository {
15+
export class CachedUserRepository implements UserRepository {
1616
constructor(
1717
private readonly cacheService: CacheService,
1818
private readonly postgresRepo: UserRepository,

src/modules/carts/carts.module.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ import { CartItemEntity } from './secondary-adapters/orm/cart-item.schema';
66
import { RedisModule } from '../../infrastructure/redis/redis.module';
77
import {
88
POSTGRES_CART_REPOSITORY,
9-
REDIS_CART_REPOSITORY,
9+
CACHED_CART_REPOSITORY,
1010
INVENTORY_GATEWAY,
1111
PRODUCT_GATEWAY,
1212
} from './carts.token';
1313
import { PostgresCartRepository } from './secondary-adapters/repositories/postgres-cart-repository/postgres.cart-repository';
14-
import { RedisCartRepository } from './secondary-adapters/repositories/redis-cart-repository/redis.cart-repository';
14+
import { CachedCartRepository } from './secondary-adapters/repositories/cached-cart-repository/cached.cart-repository';
1515
import { ModuleInventoryGateway } from './secondary-adapters/adapters/module-inventory.gateway';
1616
import { ModuleProductGateway } from './secondary-adapters/adapters/module-product.gateway';
1717
import { CacheService } from '../../infrastructure/redis/cache/cache.service';
@@ -44,15 +44,15 @@ import { ProductsModule } from '../products/products.module';
4444

4545
// Redis Repo (decorator around Postgres)
4646
{
47-
provide: REDIS_CART_REPOSITORY,
47+
provide: CACHED_CART_REPOSITORY,
4848
useFactory: (
4949
cacheService: CacheService,
5050
postgresRepo: PostgresCartRepository,
5151
) => {
52-
return new RedisCartRepository(
52+
return new CachedCartRepository(
5353
cacheService,
5454
postgresRepo,
55-
new Logger(RedisCartRepository.name),
55+
new Logger(CachedCartRepository.name),
5656
);
5757
},
5858
inject: [CacheService, POSTGRES_CART_REPOSITORY],
@@ -71,7 +71,7 @@ import { ProductsModule } from '../products/products.module';
7171
// Default Repository Binding
7272
{
7373
provide: CartRepository,
74-
useExisting: REDIS_CART_REPOSITORY,
74+
useExisting: CACHED_CART_REPOSITORY,
7575
},
7676

7777
// Use Cases

src/modules/carts/carts.token.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
export const POSTGRES_CART_REPOSITORY = Symbol('POSTGRES_CART_REPOSITORY');
2-
export const REDIS_CART_REPOSITORY = Symbol('REDIS_CART_REPOSITORY');
2+
export const CACHED_CART_REPOSITORY = Symbol('CACHED_CART_REPOSITORY');
33
export const INVENTORY_GATEWAY = Symbol('INVENTORY_GATEWAY');
44
export const PRODUCT_GATEWAY = Symbol('PRODUCT_GATEWAY');

src/modules/carts/secondary-adapters/repositories/redis-cart-repository/redis.cart-repository.spec.ts renamed to src/modules/carts/secondary-adapters/repositories/cached-cart-repository/cached.cart-repository.spec.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
// src/modules/carts/secondary-adapters/repositories/redis-cart-repository/redis.cart-repository.spec.ts
1+
// src/modules/carts/secondary-adapters/repositories/cached-cart-repository/cached.cart-repository.spec.ts
22
import { Test, TestingModule } from '@nestjs/testing';
33
import { CartRepository } from '../../../core/domain/repositories/cart.repository';
44
import { CacheService } from '../../../../../infrastructure/redis/cache/cache.service';
55
import { Result } from '../../../../../shared-kernel/domain/result';
66
import { RepositoryError } from '../../../../../shared-kernel/domain/exceptions/repository.error';
77
import { CART_REDIS } from '../../../../../infrastructure/redis/constants/redis.constants';
8-
import { RedisCartRepository } from './redis.cart-repository';
8+
import { CachedCartRepository } from './cached.cart-repository';
99
import { Cart } from '../../../core/domain/entities/cart';
1010
import { CartTestFactory } from '../../../testing/factories/cart.factory';
1111
import { CartCacheMapper } from '../../persistence/mappers/cart.mapper';
1212
import { ResultAssertionHelper } from '../../../../../testing';
1313
import { Logger } from '@nestjs/common';
1414

15-
describe('RedisCartRepository', () => {
16-
let repository: RedisCartRepository;
15+
describe('CachedCartRepository', () => {
16+
let repository: CachedCartRepository;
1717
let cacheService: jest.Mocked<CacheService>;
1818
let postgresRepo: jest.Mocked<CartRepository>;
1919

@@ -47,14 +47,14 @@ describe('RedisCartRepository', () => {
4747

4848
const module: TestingModule = await Test.createTestingModule({
4949
providers: [
50-
RedisCartRepository,
50+
CachedCartRepository,
5151
{ provide: CacheService, useValue: mockCacheService },
5252
{ provide: CartRepository, useValue: mockPostgresRepo },
5353
{ provide: Logger, useValue: mockLogger },
5454
],
5555
}).compile();
5656

57-
repository = module.get<RedisCartRepository>(RedisCartRepository);
57+
repository = module.get<CachedCartRepository>(CachedCartRepository);
5858
cacheService = module.get(CacheService);
5959
postgresRepo = module.get(CartRepository);
6060
});

src/modules/carts/secondary-adapters/repositories/redis-cart-repository/redis.cart-repository.ts renamed to src/modules/carts/secondary-adapters/repositories/cached-cart-repository/cached.cart-repository.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
// src/modules/carts/infrastructure/repositories/redis-cart-repository/redis.cart-repository.ts
1+
// src/modules/carts/infrastructure/repositories/cached-cart-repository/cached.cart-repository.ts
22
import { Injectable, Logger } from '@nestjs/common';
33
import { Result } from '../../../../../shared-kernel/domain/result';
44
import { ErrorFactory } from '../../../../../shared-kernel/domain/exceptions/error.factory';
@@ -15,7 +15,7 @@ import {
1515
import { CreateCartDto } from '../../../primary-adapters/dto/create-cart.dto';
1616

1717
@Injectable()
18-
export class RedisCartRepository implements CartRepository {
18+
export class CachedCartRepository implements CartRepository {
1919
constructor(
2020
private readonly cacheService: CacheService,
2121
private readonly postgresRepo: CartRepository,
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
export const POSTGRES_CUSTOMER_REPOSITORY = Symbol(
22
'POSTGRES_CUSTOMER_REPOSITORY',
33
);
4-
export const REDIS_CUSTOMER_REPOSITORY = Symbol('REDIS_CUSTOMER_REPOSITORY');
4+
export const CACHED_CUSTOMER_REPOSITORY = Symbol('CACHED_CUSTOMER_REPOSITORY');

0 commit comments

Comments
 (0)