Skip to content

Commit cea3204

Browse files
committed
refactor : 추후 테스팅 용이성을 위해 추상화 된 UUID 생성 클래스를 주입하는 것으로 변경
1 parent 717d7f5 commit cea3204

File tree

5 files changed

+23
-16
lines changed

5 files changed

+23
-16
lines changed

src/main/java/com/prgmrs/voucher/service/UserService.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@
77
import com.prgmrs.voucher.model.User;
88
import com.prgmrs.voucher.model.wrapper.Username;
99
import com.prgmrs.voucher.repository.UserRepository;
10-
import com.prgmrs.voucher.util.UUIDGenerator;
11-
import com.prgmrs.voucher.util.UuidConverter;
10+
import com.prgmrs.voucher.util.IdGenerator;
11+
import com.prgmrs.voucher.util.UUIDConverter;
1212
import org.springframework.stereotype.Service;
1313

1414
import java.util.List;
@@ -17,13 +17,15 @@
1717
@Service
1818
public class UserService {
1919
private final UserRepository userRepository;
20+
private final IdGenerator idGenerator;
2021

21-
public UserService(UserRepository userRepository) {
22+
public UserService(UserRepository userRepository, IdGenerator idGenerator) {
2223
this.userRepository = userRepository;
24+
this.idGenerator = idGenerator;
2325
}
2426

2527
public UserResponse createUser(UserRequest userRequest) { // 유저 생성
26-
UUID uuid = UUIDGenerator.generateUUID();
28+
UUID uuid = idGenerator.generate();
2729
User user = new User(uuid, new Username(userRequest.username()));
2830
userRepository.save(user);
2931

@@ -41,7 +43,7 @@ public UserListResponse getUserListWithVoucherAssigned() {
4143
}
4244

4345
public UserResponse getUserByVoucherId(VoucherIdRequest voucherIdRequest) {
44-
UUID uuid = UuidConverter.fromString(voucherIdRequest.voucherUuid());
46+
UUID uuid = UUIDConverter.fromString(voucherIdRequest.voucherUuid());
4547
User user = userRepository.getUserByVoucherId(uuid);
4648

4749
return new UserResponse(user.userId(), user.username().value());

src/main/java/com/prgmrs/voucher/service/VoucherService.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import com.prgmrs.voucher.model.wrapper.Percent;
1818
import com.prgmrs.voucher.model.wrapper.Username;
1919
import com.prgmrs.voucher.repository.VoucherRepository;
20-
import com.prgmrs.voucher.util.UUIDGenerator;
20+
import com.prgmrs.voucher.util.IdGenerator;
2121
import org.springframework.stereotype.Service;
2222

2323
import java.time.LocalDateTime;
@@ -27,18 +27,20 @@
2727
public class VoucherService {
2828
private final VoucherRepository voucherRepository;
2929
private final VoucherValidator voucherValidator;
30+
private final IdGenerator idGenerator;
3031

31-
public VoucherService(VoucherRepository voucherRepository, VoucherValidator voucherValidator) {
32+
public VoucherService(VoucherRepository voucherRepository, VoucherValidator voucherValidator, IdGenerator idGenerator) {
3233
this.voucherRepository = voucherRepository;
3334
this.voucherValidator = voucherValidator;
35+
this.idGenerator = idGenerator;
3436
}
3537

3638
public VoucherResponse createVoucher(VoucherRequest voucherRequest) {
3739
DiscountType discountType = DiscountType.fromString(voucherRequest.discountType());
3840
Long validatedLongValue =
3941
voucherValidator.convertToLongWithValidation(voucherRequest.discountStringValue(), discountType);
4042

41-
UUID uuid = UUIDGenerator.generateUUID();
43+
UUID uuid = idGenerator.generate();
4244
Voucher voucher;
4345

4446
switch (discountType) {

src/main/java/com/prgmrs/voucher/service/WalletService.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import com.prgmrs.voucher.model.wrapper.Username;
99
import com.prgmrs.voucher.repository.UserRepository;
1010
import com.prgmrs.voucher.repository.WalletRepository;
11-
import com.prgmrs.voucher.util.UuidConverter;
11+
import com.prgmrs.voucher.util.UUIDConverter;
1212
import org.springframework.stereotype.Service;
1313

1414
import java.util.UUID;
@@ -25,14 +25,14 @@ public WalletService(UserRepository userRepository, WalletRepository walletRepos
2525

2626
public WalletResponse assignVoucher(AssignVoucherRequest assignVoucherRequest) {
2727
User user = userRepository.findByUsername(new Username(assignVoucherRequest.username()));
28-
Wallet wallet = new Wallet(user.userId(), UuidConverter.fromString(assignVoucherRequest.voucherUuid()));
28+
Wallet wallet = new Wallet(user.userId(), UUIDConverter.fromString(assignVoucherRequest.voucherUuid()));
2929
walletRepository.save(wallet);
3030

3131
return new WalletResponse(wallet.voucherId(), user.username().value());
3232
}
3333

3434
public WalletResponse removeVoucher(RemoveVoucherRequest removeVoucherRequest) {
35-
UUID convertedUuid = UuidConverter.fromString(removeVoucherRequest.voucherUuid());
35+
UUID convertedUuid = UUIDConverter.fromString(removeVoucherRequest.voucherUuid());
3636
User user = userRepository.getUserByVoucherId(convertedUuid);
3737
Wallet wallet = new Wallet(user.userId(), convertedUuid);
3838
walletRepository.remove(wallet);

src/main/java/com/prgmrs/voucher/util/UuidConverter.java renamed to src/main/java/com/prgmrs/voucher/util/UUIDConverter.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
package com.prgmrs.voucher.util;
22

33
import com.prgmrs.voucher.exception.WrongRangeFormatException;
4-
import org.springframework.stereotype.Component;
54

65
import java.util.UUID;
76

8-
@Component
9-
public class UuidConverter {
7+
public class UUIDConverter {
8+
9+
private UUIDConverter() {
10+
throw new IllegalStateException("Util class");
11+
}
12+
1013
public static UUID fromString(String uuidString) {
1114
try {
1215
return UUID.fromString(uuidString);

src/main/java/com/prgmrs/voucher/util/UUIDGenerator.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
import java.util.UUID;
66

77
@Component
8-
public class UUIDGenerator {
9-
public static UUID generateUUID() {
8+
public class UUIDGenerator implements IdGenerator {
9+
public UUID generate() {
1010
return UUID.randomUUID();
1111
}
1212
}

0 commit comments

Comments
 (0)