• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

khu-khlug / sight-backend / 14214383247

02 Apr 2025 07:52AM UTC coverage: 51.939% (+0.3%) from 51.618%
14214383247

push

github

web-flow
feat: 캐싱이 적용된 디스코드 유저 아이디 매퍼 구현 (#117)

825 of 2561 branches covered (32.21%)

Branch coverage included in aggregate %.

35 of 40 new or added lines in 3 files covered. (87.5%)

9 existing lines in 1 file now uncovered.

2283 of 3423 relevant lines covered (66.7%)

12.95 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/app/AppModule.ts
1
import { MikroOrmModule } from '@mikro-orm/nestjs';
2
import { Module, Provider } from '@nestjs/common';
×
3

×
4
import { DiscordApiAdapter } from '@khlug/app/infra/discord/DiscordApiAdapter';
×
5
import { DiscordOAuth2Adapter } from '@khlug/app/infra/discord/DiscordOAuth2Adapter';
×
6
import { DiscordStateGenerator } from '@khlug/app/infra/discord/DiscordStateGenerator';
7
import { CachedDiscordUserIdMapper } from '@khlug/app/infra/notification/CachedDiscordUserIdMapper';
8
import { DiscordUserIdMapperToken } from '@khlug/app/infra/notification/IDiscordUserIdMapper';
9
import { DiscordIntegrationEntity } from '@khlug/app/infra/persistence/entity/DiscordIntegrationEntity';
10
import { DiscordIntegrationQuery } from '@khlug/app/infra/persistence/query/DiscordIntegrationQuery';
11
import { DiscordIntegrationRepository } from '@khlug/app/infra/persistence/repository/DiscordIntegrationRepository';
12
import { DiscordIntegrationMapper } from '@khlug/app/infra/persistence/repository/mapper/DiscordIntegrationMapper';
13

14
import { InfraBlueManageController } from '@khlug/app/interface/infraBlue/manager/InfraBlueManageController';
15
import { UserDiscordEventHandler } from '@khlug/app/interface/user/discord/UserDiscordEventHandler';
16
import { UserManageController } from '@khlug/app/interface/user/manager/UserManageController';
17
import { UserController } from '@khlug/app/interface/user/public/UserController';
18

19
import { DiscordApiAdapterToken } from '@khlug/app/application/adapter/IDiscordApiAdapter';
20
import { DiscordOAuth2AdapterToken } from '@khlug/app/application/adapter/IDiscordOAuth2Adapter';
21
import { DiscordStateGeneratorToken } from '@khlug/app/application/adapter/IDiscordStateGenerator';
22
import { UpdateDoorLockPasswordCommandHandler } from '@khlug/app/application/infraBlue/command/updateDoorLockPassword/UpdateDoorLockPasswordCommandHandler';
23
import { GetDoorLockPasswordQueryHandler } from '@khlug/app/application/infraBlue/query/getDoorLockPassword/GetDoorLockPasswordQueryHandler';
24
import { ApplyUserInfoToEnteredDiscordUserCommandHandler } from '@khlug/app/application/user/command/applyUserInfoToEnteredDiscordUser/ApplyUserInfoToEnteredDiscordUserCommandHandler';
25
import { CreateDiscordIntegrationCommandHandler } from '@khlug/app/application/user/command/createDiscordIntegration/CreateDiscordIntegrationCommandHandler';
26
import { CreateDiscordOAuth2UrlCommandHandler } from '@khlug/app/application/user/command/createDiscordOAuth2Url/CreateDiscordOAuth2UrlCommandHandler';
27
import { DeleteUserCommandHandler } from '@khlug/app/application/user/command/deleteUser/DeleteUserCommandHandler';
28
import { GraduateUserCommandHandler } from '@khlug/app/application/user/command/graduateUser/GraduateUserCommandHandler';
29
import { RemoveDiscordIntegrationCommandHandler } from '@khlug/app/application/user/command/removeDiscordIntegration/RemoveDiscordIntegrationCommandHandler';
30
import { GetDiscordIntegrationQueryHandler } from '@khlug/app/application/user/query/getDiscordIntegration/GetDiscordIntegrationQueryHandler';
31
import { DiscordIntegrationQueryToken } from '@khlug/app/application/user/query/IDiscordIntegrationQuery';
32
import { ListUserQueryHandler } from '@khlug/app/application/user/query/listUser/ListUserQueryHandler';
33
import { DiscordMemberService } from '@khlug/app/application/user/service/DiscordMemberService';
34

35
import { Cache } from '@khlug/app/domain/cache/model/Cache';
36
import { DiscordIntegrationRepositoryToken } from '@khlug/app/domain/discord/IDiscordIntegrationRepository';
37
import { FeeHistory } from '@khlug/app/domain/fee/model/FeeHistory';
38
import { User } from '@khlug/app/domain/user/model/User';
39

40
const adapters: Provider[] = [
41
  { provide: DiscordApiAdapterToken, useClass: DiscordApiAdapter },
×
42
  { provide: DiscordOAuth2AdapterToken, useClass: DiscordOAuth2Adapter },
43
  { provide: DiscordStateGeneratorToken, useClass: DiscordStateGenerator },
44
];
45
const queries: Provider[] = [
46
  { provide: DiscordIntegrationQueryToken, useClass: DiscordIntegrationQuery },
47
];
48
const repositories: Provider[] = [
49
  {
50
    provide: DiscordIntegrationRepositoryToken,
51
    useClass: DiscordIntegrationRepository,
52
  },
53
];
54
const entityMappers: Provider[] = [DiscordIntegrationMapper];
NEW
55

×
56
// 도메인과 무관한 실제 구현체를 넣습니다.
57
const implementations: Provider[] = [
58
  {
59
    provide: DiscordUserIdMapperToken,
60
    useValue: CachedDiscordUserIdMapper,
NEW
61
  },
×
62
];
63

64
const controllers = [UserController];
65
const manageControllers = [InfraBlueManageController, UserManageController];
66
const discordEventHandlers = [UserDiscordEventHandler];
UNCOV
67

×
68
const commandHandlers: Provider[] = [
69
  UpdateDoorLockPasswordCommandHandler,
70
  CreateDiscordIntegrationCommandHandler,
UNCOV
71
  CreateDiscordOAuth2UrlCommandHandler,
×
72
  RemoveDiscordIntegrationCommandHandler,
73
  ApplyUserInfoToEnteredDiscordUserCommandHandler,
74
  DeleteUserCommandHandler,
75
  GraduateUserCommandHandler,
76
];
UNCOV
77
const queryHandlers: Provider[] = [
×
78
  GetDoorLockPasswordQueryHandler,
79
  ListUserQueryHandler,
UNCOV
80
  GetDiscordIntegrationQueryHandler,
×
81
];
82
const services: Provider[] = [DiscordMemberService];
83

UNCOV
84
@Module({
×
85
  imports: [
86
    MikroOrmModule.forFeature([
UNCOV
87
      Cache,
×
88
      User,
89
      FeeHistory,
90
      DiscordIntegrationEntity,
91
    ]),
92
  ],
93
  controllers: [...controllers, ...manageControllers],
94
  providers: [
95
    ...adapters,
UNCOV
96
    ...queries,
×
97
    ...repositories,
98
    ...entityMappers,
99
    ...implementations,
100
    ...discordEventHandlers,
UNCOV
101
    ...commandHandlers,
×
102
    ...queryHandlers,
103
    ...services,
104
  ],
105
})
UNCOV
106
export class AppModule {}
×
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc