diff --git a/build.gradle b/build.gradle index 3ac4bc45e9..186fbb73d4 100644 --- a/build.gradle +++ b/build.gradle @@ -28,6 +28,9 @@ dependencies { // h2 testImplementation 'com.h2database:h2' + // web + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'com.fasterxml.jackson.core:jackson-databind:2.12.7.1' implementation 'com.fasterxml.jackson.datatype:jackson-datatype-jsr310' } diff --git a/logs/log b/logs/log new file mode 100644 index 0000000000..bfaa47e8f1 --- /dev/null +++ b/logs/log @@ -0,0 +1,4 @@ +2023-10-30 02:24:32.165 ERROR 99525 --- [main] c.p.v.infra.input.BufferedReaderImpl : input type은 [list, create, exit] 중 하나이어야 합니다. + +2023-10-30 02:24:35.241 ERROR 99525 --- [main] c.p.v.infra.input.BufferedReaderImpl : input type은 [list, create, exit] 중 하나이어야 합니다. + diff --git a/src/main/java/com/prgrms/vouchermanagement/core/customer/controller/CustomerController.java b/src/main/java/com/prgrms/vouchermanagement/core/customer/controller/CustomerController.java index 6d2853b559..3e5015b988 100644 --- a/src/main/java/com/prgrms/vouchermanagement/core/customer/controller/CustomerController.java +++ b/src/main/java/com/prgrms/vouchermanagement/core/customer/controller/CustomerController.java @@ -40,6 +40,7 @@ public CustomersResponse findAll() { return toCustomersResponse(customerDtoList); } + // 별도의 클래스로 빼서 static 메서드로 관리하면 깔끔할듯 private static CustomersResponse toCustomersResponse(List customerDtoList) { List customerResponses = customerDtoList.stream() .map(it -> new CustomerResponse(it.getId(), it.getName(), it.getEmail())) diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/Mapper.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/Mapper.java new file mode 100644 index 0000000000..4ac0594dfd --- /dev/null +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/Mapper.java @@ -0,0 +1,37 @@ +package com.prgrms.vouchermanagement.core.voucher.controller; + +import com.prgrms.vouchermanagement.core.voucher.controller.request.VoucherCreateRequest; +import com.prgrms.vouchermanagement.core.voucher.controller.response.VoucherCreateResponse; +import com.prgrms.vouchermanagement.core.voucher.controller.response.VoucherDeleteResponse; +import com.prgrms.vouchermanagement.core.voucher.controller.response.VoucherResponse; +import com.prgrms.vouchermanagement.core.voucher.controller.response.VouchersResponse; +import com.prgrms.vouchermanagement.core.voucher.dto.VoucherDto; + +import java.util.List; +import java.util.stream.Collectors; + +public class Mapper { + + public static VouchersResponse toVouchersResponse(List voucherDtoList) { + List voucherResponseList = voucherDtoList.stream() + .map(it -> new VoucherResponse(it.getId(), it.getName(), it.getAmount(), it.getVoucherType())) + .collect(Collectors.toList()); + return new VouchersResponse(voucherResponseList); + } + + public static VoucherCreateResponse toVoucherCreationResponse(VoucherDto voucherDto) { + return new VoucherCreateResponse(voucherDto.getId(), voucherDto.getName(), voucherDto.getAmount(), voucherDto.getVoucherType().toString()); + } + + public static VoucherDto toVoucherDto(VoucherCreateRequest voucherCreateRequest) { + return new VoucherDto(voucherCreateRequest.getName(), voucherCreateRequest.getAmount(), voucherCreateRequest.getVoucherType()); + } + + public static VoucherResponse toVoucherResponse(VoucherDto voucherDto) { + return new VoucherResponse(voucherDto.getId(),voucherDto.getName(), voucherDto.getAmount(), voucherDto.getVoucherType()); + } + + public static VoucherDeleteResponse toVoucherDeleteResponse(String id) { + return new VoucherDeleteResponse(id); + } +} diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/api/ApiVoucherController.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/api/ApiVoucherController.java new file mode 100644 index 0000000000..d41f1eca7b --- /dev/null +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/api/ApiVoucherController.java @@ -0,0 +1,81 @@ +package com.prgrms.vouchermanagement.core.voucher.controller.api; + +import com.prgrms.vouchermanagement.core.voucher.controller.request.VoucherCreateRequest; +import com.prgrms.vouchermanagement.core.voucher.controller.response.VoucherCreateResponse; +import com.prgrms.vouchermanagement.core.voucher.controller.response.VoucherDeleteResponse; +import com.prgrms.vouchermanagement.core.voucher.controller.response.VoucherResponse; +import com.prgrms.vouchermanagement.core.voucher.controller.response.VouchersResponse; +import com.prgrms.vouchermanagement.core.voucher.dto.VoucherDto; +import com.prgrms.vouchermanagement.core.voucher.service.VoucherService; +import org.springframework.context.annotation.Profile; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +import static com.prgrms.vouchermanagement.core.voucher.controller.Mapper.*; + + +@Profile("prod") +@RestController +@RequestMapping("/api/vouchers") +public class ApiVoucherController { + + private final VoucherService voucherService; + + public ApiVoucherController(VoucherService voucherService) { + this.voucherService = voucherService; + } + + /** + * 바우처 전체 조회 + 타입 별 필터링 + * + * @return + */ + @GetMapping + public ResponseEntity getVouchers(@RequestParam(name = "voucherType", defaultValue = "all") String voucherType) { + if (voucherType.equals("all")) { + List voucherDtoList = voucherService.findAll(); + return ResponseEntity.ok(toVouchersResponse(voucherDtoList)); + } + List voucherDtoList = voucherService.findByVoucherType(voucherType); + return ResponseEntity.ok(toVouchersResponse(voucherDtoList)); + } + + /** + * 바우처 추가 + * + * @param voucherCreateRequest + * @return + */ + @PostMapping + public ResponseEntity create(@RequestBody VoucherCreateRequest voucherCreateRequest) { + VoucherDto voucherDto = voucherService.create(toVoucherDto(voucherCreateRequest)); + return ResponseEntity.ok(toVoucherCreationResponse(voucherDto)); + } + + /** + * 바우처 단일 조회 + * + * @param voucherId + * @return + */ + @GetMapping("/{voucherId}") + public ResponseEntity getVoucher(@PathVariable String voucherId) { + VoucherDto voucherDto = voucherService.getVoucher(voucherId); + return ResponseEntity.ok(toVoucherResponse(voucherDto)); + } + + /** + * 바우처 삭제 + * + * @param voucherId + * @return + */ + @DeleteMapping("/{voucherId}") + public ResponseEntity deleteVoucher(@PathVariable String voucherId) { + String id = voucherService.deleteById(voucherId); + return ResponseEntity.ok(toVoucherDeleteResponse(id)); + } + +} diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/VoucherController.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/console/ConsoleVoucherController.java similarity index 65% rename from src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/VoucherController.java rename to src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/console/ConsoleVoucherController.java index 891825b9b9..737242d46b 100644 --- a/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/VoucherController.java +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/console/ConsoleVoucherController.java @@ -1,24 +1,26 @@ -package com.prgrms.vouchermanagement.core.voucher.controller; +package com.prgrms.vouchermanagement.core.voucher.controller.console; import com.prgrms.vouchermanagement.core.voucher.controller.request.VoucherCreateRequest; -import com.prgrms.vouchermanagement.core.voucher.controller.response.VoucherResponse; import com.prgrms.vouchermanagement.core.voucher.controller.response.VouchersResponse; import com.prgrms.vouchermanagement.core.voucher.domain.VoucherType; import com.prgrms.vouchermanagement.core.voucher.dto.VoucherDto; import com.prgrms.vouchermanagement.core.voucher.service.VoucherService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Profile; import org.springframework.stereotype.Controller; import java.util.List; -import java.util.stream.Collectors; +import static com.prgrms.vouchermanagement.core.voucher.controller.Mapper.toVouchersResponse; + +@Profile("dev") @Controller -public class VoucherController { +public class ConsoleVoucherController { private final VoucherService voucherService; @Autowired - public VoucherController(VoucherService voucherService) { + public ConsoleVoucherController(VoucherService voucherService) { this.voucherService = voucherService; } @@ -39,11 +41,4 @@ public VouchersResponse getAllVoucher() { List voucherDtoList = voucherService.findAll(); return toVouchersResponse(voucherDtoList); } - - private static VouchersResponse toVouchersResponse(List voucherDtoList) { - List voucherResponseList = voucherDtoList.stream() - .map(it -> new VoucherResponse(it.getId(), it.getName(), it.getAmount(), it.getVoucherType())) - .collect(Collectors.toList()); - return new VouchersResponse(voucherResponseList); - } } diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VoucherCreateResponse.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VoucherCreateResponse.java new file mode 100644 index 0000000000..6ab1bb4e57 --- /dev/null +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VoucherCreateResponse.java @@ -0,0 +1,35 @@ +package com.prgrms.vouchermanagement.core.voucher.controller.response; + +public class VoucherCreateResponse { + + private String id; + private String name; + private long amount; + private String voucherType; + + public VoucherCreateResponse() { + } + + public VoucherCreateResponse(String id, String name, long amount, String voucherType) { + this.id = id; + this.name = name; + this.amount = amount; + this.voucherType = voucherType; + } + + public String getId() { + return id; + } + + public String getName() { + return name; + } + + public long getAmount() { + return amount; + } + + public String getVoucherType() { + return voucherType; + } +} diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VoucherDeleteResponse.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VoucherDeleteResponse.java new file mode 100644 index 0000000000..2fd9ab0ef2 --- /dev/null +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VoucherDeleteResponse.java @@ -0,0 +1,17 @@ +package com.prgrms.vouchermanagement.core.voucher.controller.response; + +public class VoucherDeleteResponse { + + private String id; + + public VoucherDeleteResponse() { + } + + public VoucherDeleteResponse(String id) { + this.id = id; + } + + public String getId() { + return id; + } +} diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VoucherResponse.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VoucherResponse.java index bc94028ad0..f4d67bcd71 100644 --- a/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VoucherResponse.java +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VoucherResponse.java @@ -4,10 +4,13 @@ public class VoucherResponse { - private final String id; - private final String name; - private final long amount; - private final VoucherType voucherType; + private String id; + private String name; + private long amount; + private VoucherType voucherType; + + public VoucherResponse() { + } public VoucherResponse(String id, String name, long amount, VoucherType voucherType) { this.id = id; @@ -16,6 +19,22 @@ public VoucherResponse(String id, String name, long amount, VoucherType voucherT this.voucherType = voucherType; } + public String getId() { + return id; + } + + public String getName() { + return name; + } + + public long getAmount() { + return amount; + } + + public VoucherType getVoucherType() { + return voucherType; + } + @Override public String toString() { return "Voucher = {" + diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VouchersResponse.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VouchersResponse.java index 5b26296d99..3a54a3cbb5 100644 --- a/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VouchersResponse.java +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/controller/response/VouchersResponse.java @@ -4,7 +4,10 @@ public class VouchersResponse { - private final List voucherResponses; + private List voucherResponses; + + public VouchersResponse() { + } public VouchersResponse(List voucherResponses) { this.voucherResponses = voucherResponses; diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/dto/VoucherDto.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/dto/VoucherDto.java index 037c9d2764..83da4c72d9 100644 --- a/src/main/java/com/prgrms/vouchermanagement/core/voucher/dto/VoucherDto.java +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/dto/VoucherDto.java @@ -22,6 +22,12 @@ public VoucherDto(String name, long amount, VoucherType voucherType) { this.voucherType = voucherType; } + public VoucherDto(String name, long amount, String voucherType) { + this.name = name; + this.amount = amount; + this.voucherType = VoucherType.getType(voucherType); + } + public String getId() { return id; } diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/VoucherRepository.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/VoucherRepository.java index f1bff0bf25..03b8a57454 100644 --- a/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/VoucherRepository.java +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/VoucherRepository.java @@ -16,4 +16,6 @@ public interface VoucherRepository { Optional findById(String id); List findAllByIds(List idList); + + void deleteById(String id); } diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/file/FileRepository.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/file/FileRepository.java index 7f182c9f0c..46fd80eb69 100644 --- a/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/file/FileRepository.java +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/file/FileRepository.java @@ -49,4 +49,8 @@ public Optional findById(String id) { public List findAllByIds(List idList) { return null; } + + @Override + public void deleteById(String id) { + } } diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/jdbc/JdbcVoucherRepository.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/jdbc/JdbcVoucherRepository.java index af37cc0678..72ec48329a 100644 --- a/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/jdbc/JdbcVoucherRepository.java +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/jdbc/JdbcVoucherRepository.java @@ -77,4 +77,12 @@ public List findAllByIds(List idList) { return jdbcTemplate.query(sql, idList.toArray(), voucherRowMapper); } + + @Override + public void deleteById(String id) { + int update = jdbcTemplate.update("DELETE FROM vouchers WHERE id = ?", id); + if (update != 1) { + throw new RuntimeException("Failed to delete the voucher with ID: " + id); + } + } } diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/memory/MemoryVoucherRepository.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/memory/MemoryVoucherRepository.java index 7f2573e9cc..e6679daade 100644 --- a/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/memory/MemoryVoucherRepository.java +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/repository/memory/MemoryVoucherRepository.java @@ -40,4 +40,8 @@ public Optional findById(String id) { public List findAllByIds(List idList) { return null; } + + @Override + public void deleteById(String id) { + } } diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/service/VoucherService.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/service/VoucherService.java index 4531370268..2462b156c0 100644 --- a/src/main/java/com/prgrms/vouchermanagement/core/voucher/service/VoucherService.java +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/service/VoucherService.java @@ -3,13 +3,18 @@ import com.prgrms.vouchermanagement.core.voucher.domain.Voucher; import com.prgrms.vouchermanagement.core.voucher.dto.VoucherDto; import com.prgrms.vouchermanagement.core.voucher.repository.VoucherRepository; -import com.prgrms.vouchermanagement.core.voucher.utils.mapper.Mapper; +import com.prgrms.vouchermanagement.infra.exception.InvalidFormatException; +import com.prgrms.vouchermanagement.infra.utils.MenuPatternUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; +import static com.prgrms.vouchermanagement.core.voucher.utils.mapper.Mapper.toVoucher; +import static com.prgrms.vouchermanagement.core.voucher.utils.mapper.Mapper.toVoucherDto; + @Service public class VoucherService { @@ -20,8 +25,9 @@ public VoucherService(VoucherRepository voucherRepository) { this.voucherRepository = voucherRepository; } - public void create(VoucherDto voucherDto) { - voucherRepository.save(Mapper.toVoucher(voucherDto)); + public VoucherDto create(VoucherDto voucherDto) { + Voucher voucher = voucherRepository.save(toVoucher(voucherDto)); + return new VoucherDto(voucher.getId(), voucher.getName(), voucher.getAmount(), voucher.getVoucherType()); } public List findAll() { @@ -30,4 +36,29 @@ public List findAll() { .map(it -> new VoucherDto(it.getId(), it.getName(), it.getAmount(), it.getVoucherType())) .collect(Collectors.toList()); } + + public VoucherDto getVoucher(String voucherId) { + Optional optionalVoucher = voucherRepository.findById(voucherId); + if (optionalVoucher.isEmpty()) { + throw new IllegalArgumentException("존재하지 않는 바우처 id 입니다."); + } + return toVoucherDto(optionalVoucher.get()); + } + + + public String deleteById(String voucherId) { + voucherRepository.deleteById(voucherId); + return voucherId; + } + + public List findByVoucherType(String voucherType) { + if (!MenuPatternUtils.VOUCHER_TYPE.matcher(voucherType).matches()) { + throw new InvalidFormatException("voucherType은 [fixed, rate] 중 하나이어야 합니다."); + } + List voucherList = voucherRepository.findAll(); + return voucherList.stream() + .filter(it -> it.getVoucherType().getValue().equals(voucherType)) + .map(it -> new VoucherDto(it.getId(), it.getName(), it.getAmount(), it.getVoucherType())) + .collect(Collectors.toList()); + } } diff --git a/src/main/java/com/prgrms/vouchermanagement/core/voucher/utils/mapper/Mapper.java b/src/main/java/com/prgrms/vouchermanagement/core/voucher/utils/mapper/Mapper.java index c9951f318b..7b65f5eb8f 100644 --- a/src/main/java/com/prgrms/vouchermanagement/core/voucher/utils/mapper/Mapper.java +++ b/src/main/java/com/prgrms/vouchermanagement/core/voucher/utils/mapper/Mapper.java @@ -9,4 +9,8 @@ public static Voucher toVoucher(VoucherDto voucherDto) { return new Voucher(voucherDto.getName(), voucherDto.getAmount(), voucherDto.getVoucherType().toString()); } + public static VoucherDto toVoucherDto(Voucher voucher) { + return new VoucherDto(voucher.getId(), voucher.getName(), voucher.getAmount(), voucher.getVoucherType()); + } + } diff --git a/src/main/java/com/prgrms/vouchermanagement/infra/InfraManager.java b/src/main/java/com/prgrms/vouchermanagement/infra/InfraManager.java index 05cf641819..9f38a9f17b 100644 --- a/src/main/java/com/prgrms/vouchermanagement/infra/InfraManager.java +++ b/src/main/java/com/prgrms/vouchermanagement/infra/InfraManager.java @@ -1,66 +1,65 @@ -package com.prgrms.vouchermanagement.infra; - -import com.prgrms.vouchermanagement.core.voucher.controller.VoucherController; -import com.prgrms.vouchermanagement.core.voucher.controller.request.VoucherCreateRequest; -import com.prgrms.vouchermanagement.core.voucher.controller.response.VouchersResponse; -import com.prgrms.vouchermanagement.infra.input.InputProvider; -import com.prgrms.vouchermanagement.infra.utils.OutputMessage; -import com.prgrms.vouchermanagement.infra.output.OutputProvider; -import com.prgrms.vouchermanagement.infra.utils.MenuType; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.boot.CommandLineRunner; -import org.springframework.stereotype.Component; - -import java.io.IOException; - -@Component -public class InfraManager implements CommandLineRunner { - - private final InputProvider inputProvider; - private final OutputProvider outputProvider; - private final VoucherController voucherController; - - @Autowired - public InfraManager(InputProvider inputProvider, OutputProvider outputProvider, VoucherController voucherController) { - this.inputProvider = inputProvider; - this.outputProvider = outputProvider; - this.voucherController = voucherController; - } - - @Override - public void run(String... args) throws Exception { - boolean isRunning = true; - - while (isRunning) { - outputProvider.printMessage(OutputMessage.MENU_TYPES); - MenuType menuType = inputProvider.inputMenuType(); - - switch(menuType) { - case LIST: - list(); - break; - case CREATE: - create(); - break; - case EXIT: - isRunning = false; - break; - } - } - } - - private void list() { - VouchersResponse vouchersResponse = voucherController.getAllVoucher(); - outputProvider.printMessage(vouchersResponse); - } - - private void create() throws IOException { - outputProvider.printMessage(OutputMessage.VOUCHER_NAME); - String name = inputProvider.inputVoucherName(); - outputProvider.printMessage(OutputMessage.VOUCHER_TYPES); - String voucherType = inputProvider.inputVoucherType(); - outputProvider.printVoucherTypeMessage(voucherType); - int amount = inputProvider.inputVoucherAmount(); - voucherController.createVoucher(new VoucherCreateRequest(name, voucherType, amount)); - } -} +//package com.prgrms.vouchermanagement.infra; +// +//import com.prgrms.vouchermanagement.core.voucher.controller.request.VoucherCreateRequest; +//import com.prgrms.vouchermanagement.core.voucher.controller.response.VouchersResponse; +//import com.prgrms.vouchermanagement.infra.input.InputProvider; +//import com.prgrms.vouchermanagement.infra.utils.OutputMessage; +//import com.prgrms.vouchermanagement.infra.output.OutputProvider; +//import com.prgrms.vouchermanagement.infra.utils.MenuType; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.boot.CommandLineRunner; +//import org.springframework.stereotype.Component; +// +//import java.io.IOException; +// +//@Component +//public class InfraManager implements CommandLineRunner { +// +// private final InputProvider inputProvider; +// private final OutputProvider outputProvider; +// private final VoucherController voucherController; +// +// @Autowired +// public InfraManager(InputProvider inputProvider, OutputProvider outputProvider, VoucherController voucherController) { +// this.inputProvider = inputProvider; +// this.outputProvider = outputProvider; +// this.VoucherController = voucherController; +// } +// +// @Override +// public void run(String... args) throws Exception { +// boolean isRunning = true; +// +// while (isRunning) { +// outputProvider.printMessage(OutputMessage.MENU_TYPES); +// MenuType menuType = inputProvider.inputMenuType(); +// +// switch(menuType) { +// case LIST: +// list(); +// break; +// case CREATE: +// create(); +// break; +// case EXIT: +// isRunning = false; +// break; +// } +// } +// } +// +// private void list() { +// VouchersResponse vouchersResponse = voucherController.getAllVoucher(); +// outputProvider.printMessage(vouchersResponse); +// } +// +// private void create() throws IOException { +// outputProvider.printMessage(OutputMessage.VOUCHER_NAME); +// String name = inputProvider.inputVoucherName(); +// outputProvider.printMessage(OutputMessage.VOUCHER_TYPES); +// String voucherType = inputProvider.inputVoucherType(); +// outputProvider.printVoucherTypeMessage(voucherType); +// int amount = inputProvider.inputVoucherAmount(); +// voucherController.createVoucher(new VoucherCreateRequest(name, voucherType, amount)); +// } +//} diff --git a/src/main/resources/application-common.yml b/src/main/resources/application-common.yml index 0f322a062f..dc6aed311b 100644 --- a/src/main/resources/application-common.yml +++ b/src/main/resources/application-common.yml @@ -4,6 +4,6 @@ voucher: logging: level: - root: warn + root: info file: name: logs/log \ No newline at end of file diff --git a/src/test/java/com/prgrms/vouchermanagement/core/wallet/service/WalletServiceIntegrationTest.java b/src/test/java/com/prgrms/vouchermanagement/core/wallet/service/WalletServiceIntegrationTest.java index 718cce66fc..e851a59fdc 100644 --- a/src/test/java/com/prgrms/vouchermanagement/core/wallet/service/WalletServiceIntegrationTest.java +++ b/src/test/java/com/prgrms/vouchermanagement/core/wallet/service/WalletServiceIntegrationTest.java @@ -217,10 +217,27 @@ void testFindVouchersByCustomerWithNoVoucher() { @Test void testDeleteVouchersByCustomer() { // given + String customerId = UUID.randomUUID().toString(); + Customer customer = new Customer(customerId, "test10", "test10@email.com"); + customerRepository.save(customer); + + String voucherId1 = UUID.randomUUID().toString(); + Voucher voucher1 = new Voucher(voucherId1, "test6", 1000, VoucherType.FIXED); + voucherRepository.save(voucher1); + + String voucherId2 = UUID.randomUUID().toString(); + Voucher voucher2 = new Voucher(voucherId2, "test7", 1000, VoucherType.FIXED); + voucherRepository.save(voucher2); + + walletService.assignVoucher(customerId, voucherId1); + walletService.assignVoucher(customerId, voucherId2); // when + walletService.deleteVouchersByCustomer(customerId); + List voucherDtoList = walletService.findVouchersByCustomer(customerId); // then + assertThat(voucherDtoList.isEmpty()).isTrue(); } // 고객이 존재하지 않는 경우 @@ -228,10 +245,13 @@ void testDeleteVouchersByCustomer() { @Test void testDeleteVouchersByNoExistCustomer() { // given + String customerId = UUID.randomUUID().toString(); // when // then + assertThrows(IllegalArgumentException.class, + () -> walletService.deleteVouchersByCustomer(customerId)); }