Skip to content

Commit 74e1887

Browse files
authored
Merge pull request #220 from boostcampwm-2024/feat/#219-divide-authService
AuthService 속 함수들 책임 분리
2 parents c085366 + 17159e7 commit 74e1887

File tree

9 files changed

+31
-19
lines changed

9 files changed

+31
-19
lines changed

back/src/auth/service/auth.service.ts

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -47,17 +47,6 @@ export class AuthService {
4747
this.redis.set(`user:${sid}`, JSON.stringify({ ...session, userStatus: USER_STATUS.ADMIN }));
4848
}
4949

50-
async setUserEventTarget(sid: string, eventId: number) {
51-
const session = JSON.parse(await this.redis.get(`user:${sid}`));
52-
53-
this.redis.set(`user:${sid}`, JSON.stringify({ ...session, targetEvent: eventId }));
54-
}
55-
56-
async getUserEventTarget(sid: string) {
57-
const session = JSON.parse(await this.redis.get(`user:${sid}`));
58-
return session.targetEvent;
59-
}
60-
6150
async removeSession(sid: string, loginId: string) {
6251
this.redis.unlink(`user-id:${loginId}`);
6352
return this.redis.unlink(`user:${sid}`);

back/src/domains/booking/booking.module.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { EventEmitterModule } from '@nestjs/event-emitter';
44
import { AuthModule } from '../../auth/auth.module';
55
import { EventModule } from '../event/event.module';
66
import { PlaceModule } from '../place/place.module';
7+
import { UserModule } from '../user/user.module';
78

89
import { BookingController } from './controller/booking.controller';
910
import { BookingSeatsService } from './service/booking-seats.service';
@@ -13,7 +14,7 @@ import { OpenBookingService } from './service/open-booking.service';
1314
import { WaitingQueueService } from './service/waiting-queue.service';
1415

1516
@Module({
16-
imports: [EventEmitterModule.forRoot(), EventModule, AuthModule, PlaceModule],
17+
imports: [EventEmitterModule.forRoot(), EventModule, AuthModule, PlaceModule, UserModule],
1718
controllers: [BookingController],
1819
providers: [BookingService, InBookingService, OpenBookingService, BookingSeatsService, WaitingQueueService],
1920
exports: [InBookingService],

back/src/domains/booking/service/booking-seats.service.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { BehaviorSubject } from 'rxjs';
1111
import { map } from 'rxjs/operators';
1212

1313
import { AuthService } from '../../../auth/service/auth.service';
14+
import { UserService } from '../../user/service/user.service';
1415
import { SEATS_BROADCAST_INTERVAL } from '../const/seatsBroadcastInterval.const';
1516
import { SEATS_SSE_RETRY_TIME } from '../const/seatsSseRetryTime.const';
1617
import { SeatStatus } from '../const/seatStatus.enum';
@@ -37,6 +38,7 @@ export class BookingSeatsService {
3738
private inBookingService: InBookingService,
3839
private authService: AuthService,
3940
private eventEmitter: EventEmitter2,
41+
private readonly userService: UserService,
4042
) {
4143
this.redis = this.redisService.getOrThrow();
4244
}
@@ -57,7 +59,7 @@ export class BookingSeatsService {
5759
}
5860

5961
async bookSeat(sid: string, target: [number, number]) {
60-
const eventId = await this.authService.getUserEventTarget(sid);
62+
const eventId = await this.userService.getUserEventTarget(sid);
6163
const bookedSeat = await this.inBookingService.getBookedSeats(sid);
6264
const bookingAmount = await this.inBookingService.getBookingAmount(sid);
6365
const bookedAmount = bookedSeat.length;
@@ -74,7 +76,7 @@ export class BookingSeatsService {
7476
}
7577

7678
async unBookSeat(sid: string, target: [number, number]) {
77-
const eventId = await this.authService.getUserEventTarget(sid);
79+
const eventId = await this.userService.getUserEventTarget(sid);
7880
const bookedSeat = await this.inBookingService.getBookedSeats(sid);
7981
const bookedAmount = bookedSeat.length;
8082

back/src/domains/booking/service/booking.service.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { OnEvent } from '@nestjs/event-emitter';
33

44
import { AuthService } from '../../../auth/service/auth.service';
55
import { EventService } from '../../event/service/event.service';
6+
import { UserService } from '../../user/service/user.service';
67
import { BookingAdmissionStatusDto } from '../dto/bookingAdmissionStatus.dto';
78
import { ServerTimeDto } from '../dto/serverTime.dto';
89

@@ -21,11 +22,12 @@ export class BookingService {
2122
private readonly inBookingService: InBookingService,
2223
private readonly openBookingService: OpenBookingService,
2324
private readonly waitingQueueService: WaitingQueueService,
25+
private readonly userService: UserService,
2426
) {}
2527

2628
@OnEvent('seats-sse-close')
2729
async letInNextWaiting(event: { sid: string }) {
28-
const eventId = await this.authService.getUserEventTarget(event.sid);
30+
const eventId = await this.userService.getUserEventTarget(event.sid);
2931
if ((await this.waitingQueueService.getQueueSize(eventId)) < 1) {
3032
return;
3133
}
@@ -53,7 +55,7 @@ export class BookingService {
5355
throw new BadRequestException('이미 예약 마감된 이벤트입니다.');
5456
}
5557

56-
await this.authService.setUserEventTarget(sid, eventId);
58+
await this.userService.setUserEventTarget(sid, eventId);
5759

5860
return await this.getForwarded(sid);
5961
}

back/src/domains/booking/service/in-booking.service.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { OnEvent } from '@nestjs/event-emitter';
44
import Redis from 'ioredis';
55

66
import { AuthService } from '../../../auth/service/auth.service';
7+
import { UserService } from '../../user/service/user.service';
78

89
type InBookingSession = {
910
sid: string;
@@ -17,6 +18,7 @@ export class InBookingService {
1718
constructor(
1819
private readonly authService: AuthService,
1920
private redisService: RedisService,
21+
private readonly userService: UserService,
2022
) {
2123
this.redis = this.redisService.getOrThrow();
2224
}
@@ -104,7 +106,7 @@ export class InBookingService {
104106
}
105107

106108
private getTargetEventId(sid: string) {
107-
return this.authService.getUserEventTarget(sid);
109+
return this.userService.getUserEventTarget(sid);
108110
}
109111

110112
private getSessionKey(eventId: number, sid: string) {

back/src/domains/booking/service/waiting-queue.service.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import { BehaviorSubject } from 'rxjs';
55
import { map } from 'rxjs/operators';
66

77
import { AuthService } from '../../../auth/service/auth.service';
8+
import { UserService } from '../../user/service/user.service';
89
import { WAITING_BROADCAST_INTERVAL } from '../const/waitingBroadcastInterval.const';
910
import { DEFAULT_WAITING_THROUGHPUT_RATE } from '../const/watingThroughputRate.const';
1011
import { WaitingSseDto } from '../dto/waitingSse.dto';
@@ -23,6 +24,7 @@ export class WaitingQueueService {
2324
constructor(
2425
private redisService: RedisService,
2526
private authService: AuthService,
27+
private userService: UserService,
2628
) {
2729
this.redis = this.redisService.getOrThrow();
2830
}
@@ -39,7 +41,7 @@ export class WaitingQueueService {
3941
}
4042

4143
async pushQueue(sid: string) {
42-
const eventId = await this.authService.getUserEventTarget(sid);
44+
const eventId = await this.userService.getUserEventTarget(sid);
4345
if (!this.queueSubscriptionMap.get(eventId)) {
4446
await this.createQueueSubscription(eventId);
4547
}

back/src/domains/reservation/reservation.module.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import { ReservationService } from './service/reservation.service';
2222
PlaceModule,
2323
AuthModule,
2424
BookingModule,
25+
UserModule,
2526
],
2627
controllers: [ReservationController],
2728
providers: [ReservationService, ReservationRepository, ReservedSeatRepository],

back/src/domains/reservation/service/reservation.service.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { Event } from '../../event/entity/event.entity';
1111
import { Place } from '../../place/entity/place.entity';
1212
import { Section } from '../../place/entity/section.entity';
1313
import { Program } from '../../program/entities/program.entity';
14+
import { UserService } from '../../user/service/user.service';
1415
import { ReservationCreateDto } from '../dto/reservationCreate.dto';
1516
import { ReservationIdDto } from '../dto/reservationId.dto';
1617
import { ReservationSeatInfoDto } from '../dto/reservationSeatInfo.dto';
@@ -30,6 +31,7 @@ export class ReservationService {
3031
@Inject() private readonly dataSource: DataSource,
3132
@Inject() private readonly authService: AuthService,
3233
@Inject() private readonly inBookingService: InBookingService,
34+
@Inject() private readonly userService: UserService,
3335
) {
3436
this.redis = this.redisService.getOrThrow();
3537
}
@@ -93,7 +95,7 @@ export class ReservationService {
9395
try {
9496
const session = await this.authService.getUserSession(sid);
9597
const userId = session.id;
96-
const eventId = await this.authService.getUserEventTarget(sid);
98+
const eventId = await this.userService.getUserEventTarget(sid);
9799
const { bookingAmount, bookedSeats } = await this.inBookingService.getBookAmountAndBookedSeats(
98100
sid,
99101
eventId,

back/src/domains/user/service/user.service.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,4 +141,15 @@ export class UserService {
141141
throw new InternalServerErrorException('로그아웃에 실패하였습니다.');
142142
}
143143
}
144+
145+
async setUserEventTarget(sid: string, eventId: number) {
146+
const session = JSON.parse(await this.redis.get(`user:${sid}`));
147+
148+
this.redis.set(`user:${sid}`, JSON.stringify({ ...session, targetEvent: eventId }));
149+
}
150+
151+
async getUserEventTarget(sid: string) {
152+
const session = JSON.parse(await this.redis.get(`user:${sid}`));
153+
return session.targetEvent;
154+
}
144155
}

0 commit comments

Comments
 (0)