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

khu-khlug / sight-backend / 14247600948

03 Apr 2025 04:05PM UTC coverage: 50.988% (-1.0%) from 51.939%
14247600948

push

github

web-flow
feat: 디스코드 메신저 구현 (#118)

823 of 2618 branches covered (31.44%)

Branch coverage included in aggregate %.

29 of 64 new or added lines in 13 files covered. (45.31%)

45 existing lines in 10 files now uncovered.

2272 of 3452 relevant lines covered (65.82%)

12.83 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/messenger/CachedDiscordUserIdMapper';
8
import { DiscordMessenger } from '@khlug/app/infra/messenger/DiscordMessenger';
9
import { DiscordUserIdMapperToken } from '@khlug/app/infra/messenger/IDiscordUserIdMapper';
10
import { DiscordIntegrationEntity } from '@khlug/app/infra/persistence/entity/DiscordIntegrationEntity';
11
import { DiscordIntegrationQuery } from '@khlug/app/infra/persistence/query/DiscordIntegrationQuery';
12
import { DiscordIntegrationRepository } from '@khlug/app/infra/persistence/repository/DiscordIntegrationRepository';
13
import { DiscordIntegrationMapper } from '@khlug/app/infra/persistence/repository/mapper/DiscordIntegrationMapper';
14

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

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

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

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

×
58
// 도메인과 무관한 실제 구현체를 넣습니다.
59
const implementations: Provider[] = [
60
  {
61
    provide: DiscordUserIdMapperToken,
62
    useValue: CachedDiscordUserIdMapper,
63
  },
×
64
  {
65
    provide: MessengerToken,
66
    useValue: DiscordMessenger,
67
  },
68
];
UNCOV
69

×
70
const controllers = [UserController];
71
const manageControllers = [InfraBlueManageController, UserManageController];
72
const discordEventHandlers = [UserDiscordEventHandler];
73

×
74
const commandHandlers: Provider[] = [
75
  UpdateDoorLockPasswordCommandHandler,
76
  CreateDiscordIntegrationCommandHandler,
77
  CreateDiscordOAuth2UrlCommandHandler,
78
  RemoveDiscordIntegrationCommandHandler,
79
  ApplyUserInfoToEnteredDiscordUserCommandHandler,
80
  DeleteUserCommandHandler,
81
  GraduateUserCommandHandler,
82
];
83
const queryHandlers: Provider[] = [
×
84
  GetDoorLockPasswordQueryHandler,
85
  ListUserQueryHandler,
86
  GetDiscordIntegrationQueryHandler,
×
87
];
88
const services: Provider[] = [DiscordMemberService];
89

90
@Module({
×
91
  imports: [
92
    MikroOrmModule.forFeature([
93
      Cache,
×
94
      User,
95
      FeeHistory,
96
      DiscordIntegrationEntity,
97
    ]),
98
  ],
99
  controllers: [...controllers, ...manageControllers],
100
  providers: [
101
    ...adapters,
102
    ...queries,
×
103
    ...repositories,
104
    ...entityMappers,
105
    ...implementations,
106
    ...discordEventHandlers,
107
    ...commandHandlers,
×
108
    ...queryHandlers,
109
    ...services,
110
  ],
111
})
112
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