Skip to content

Commit 7042e36

Browse files
committed
feat : voucher edit 기능 추가 및 컨트롤러 연결
1 parent a9f3e58 commit 7042e36

12 files changed

Lines changed: 53 additions & 11018 deletions

File tree

src/main/java/org/prgrms/kdtspringdemo/voucher/controller/VoucherWebController.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,4 +47,20 @@ public String deleteVoucher(@PathVariable UUID voucherId) {
4747
return "redirect:/vouchers";
4848
}
4949

50+
@GetMapping("/{voucherId}/edit")
51+
public String editVoucher(@PathVariable UUID voucherId, Model model) {
52+
Voucher voucher = voucherService.findById(voucherId);
53+
VoucherRequestDto voucherRequestDto = new VoucherRequestDto(voucher.getVoucherPolicy().getVoucherType(), voucher.getVoucherPolicy().getAmount());
54+
55+
model.addAttribute("voucher", voucherRequestDto);
56+
return "voucher_edit"; // 바우처 정보 수정 페이지로 이동
57+
}
58+
59+
@PostMapping("/{voucherId}/edit")
60+
public String editVoucher(@PathVariable UUID voucherId, @ModelAttribute VoucherRequestDto voucherRequestDto) {
61+
voucherService.updateVoucher(voucherId, voucherRequestDto);
62+
return "redirect:/vouchers/" + voucherId;
63+
}
64+
65+
5066
}

src/main/java/org/prgrms/kdtspringdemo/voucher/domain/dto/VoucherRequestDto.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@
77
public class VoucherRequestDto {
88
private String voucherPolicy;
99
private Long amount;
10+
11+
public VoucherRequestDto(String voucherPolicy, long amount) {
12+
this.voucherPolicy = voucherPolicy;
13+
this.amount = amount;
14+
}
15+
1016
public String getVoucherPolicy() {
1117
return voucherPolicy;
1218
}

src/main/java/org/prgrms/kdtspringdemo/voucher/repository/FileVoucherRepository.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import org.prgrms.kdtspringdemo.voucher.domain.VoucherPolicy;
77

88
import org.prgrms.kdtspringdemo.voucher.domain.VoucherTypeFunction;
9+
import org.prgrms.kdtspringdemo.voucher.domain.dto.VoucherRequestDto;
910
import org.slf4j.Logger;
1011
import org.slf4j.LoggerFactory;
1112
import org.springframework.beans.factory.annotation.Value;
@@ -47,6 +48,11 @@ public Voucher insert(Voucher voucher) {
4748
return voucher;
4849
}
4950

51+
@Override
52+
public void update(UUID voucherId, VoucherRequestDto voucherRequestDto) {
53+
54+
}
55+
5056
@Override
5157
public Optional<Voucher> findById(UUID voucherId) {
5258
try{

src/main/java/org/prgrms/kdtspringdemo/voucher/repository/JdbcVoucherRepository.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.prgrms.kdtspringdemo.voucher.domain.Voucher;
44
import org.prgrms.kdtspringdemo.voucher.domain.VoucherTypeFunction;
5+
import org.prgrms.kdtspringdemo.voucher.domain.dto.VoucherRequestDto;
56
import org.slf4j.Logger;
67
import org.slf4j.LoggerFactory;
78
import org.springframework.beans.factory.annotation.Autowired;
@@ -53,6 +54,17 @@ public Voucher insert(Voucher voucher) {
5354
return voucher;
5455
}
5556

57+
@Override
58+
public void update(UUID voucherId, VoucherRequestDto voucherRequestDto) {
59+
var update = jdbcTemplate.update("UPDATE voucher SET voucher_type = ?, amount = ? WHERE voucher_id = UUID_TO_BIN(?)",
60+
voucherRequestDto.getVoucherPolicy(),
61+
voucherRequestDto.getAmount(),
62+
voucherId.toString());
63+
if(update != 1) {
64+
throw new RuntimeException("Nothing was inserted");
65+
}
66+
}
67+
5668
@Override
5769
public Optional<Voucher> findById(UUID voucherId) {
5870
try {

src/main/java/org/prgrms/kdtspringdemo/voucher/repository/MemoryVoucherRepository.java

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.prgrms.kdtspringdemo.voucher.domain.Voucher;
44
import org.prgrms.kdtspringdemo.voucher.domain.VoucherPolicy;
5+
import org.prgrms.kdtspringdemo.voucher.domain.dto.VoucherRequestDto;
56
import org.springframework.context.annotation.Profile;
67
import org.springframework.stereotype.Repository;
78

@@ -23,6 +24,11 @@ public Voucher insert(Voucher voucher) {
2324
return voucher;
2425
}
2526

27+
@Override
28+
public void update(UUID voucherId, VoucherRequestDto voucherRequestDto) {
29+
30+
}
31+
2632
@Override
2733
public Optional<Voucher> findById(UUID voucherId) {
2834
return Optional.ofNullable(storage.get(voucherId));

src/main/java/org/prgrms/kdtspringdemo/voucher/repository/VoucherRepository.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
package org.prgrms.kdtspringdemo.voucher.repository;
22

33
import org.prgrms.kdtspringdemo.voucher.domain.Voucher;
4+
import org.prgrms.kdtspringdemo.voucher.domain.dto.VoucherRequestDto;
45

56
import java.util.List;
67
import java.util.Optional;
78
import java.util.UUID;
89

910
public interface VoucherRepository {
1011
Voucher insert(Voucher voucher);
12+
void update(UUID voucherId, VoucherRequestDto voucherRequestDto);
1113
Optional<Voucher> findById(UUID voucherId);
1214
List<Voucher> findAll();
1315
List<Voucher> findUnallocatedVoucher();

src/main/java/org/prgrms/kdtspringdemo/voucher/service/VoucherService.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.prgrms.kdtspringdemo.voucher.domain.Voucher;
44
import org.prgrms.kdtspringdemo.voucher.domain.VoucherTypeFunction;
5+
import org.prgrms.kdtspringdemo.voucher.domain.dto.VoucherRequestDto;
56
import org.prgrms.kdtspringdemo.voucher.repository.VoucherRepository;
67
import org.slf4j.Logger;
78
import org.slf4j.LoggerFactory;
@@ -32,6 +33,10 @@ public Voucher createVoucher(VoucherTypeFunction voucherType, long amount) {
3233
return voucher;
3334
}
3435

36+
public void updateVoucher(UUID voucherId, VoucherRequestDto voucherRequestDto) {
37+
voucherRepository.update(voucherId, voucherRequestDto);
38+
}
39+
3540
public List<Voucher> findAll() {
3641
return voucherRepository.findAll();
3742
}
-22.9 KB
Binary file not shown.

0 commit comments

Comments
 (0)