Skip to content

Commit 65e0ad7

Browse files
committed
refactor: 임시저장 편지 API 수정 (WR9-120)
1 parent 4135126 commit 65e0ad7

File tree

4 files changed

+48
-25
lines changed

4 files changed

+48
-25
lines changed

src/main/java/io/crops/warmletter/domain/letter/controller/LetterController.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -81,20 +81,19 @@ public ResponseEntity<BaseResponse<Void>> evaluateLetter(@PathVariable Long lett
8181
/**
8282
* 임시저장 편지 생성
8383
*/
84-
@PostMapping("/letters/{letterId}/temporary-save")
84+
@PostMapping("/letters/temporary-save")
8585
public ResponseEntity<BaseResponse<LetterResponse>> temporarySaveLetter(
86-
@PathVariable (name="letterId")Long letterId, @Valid @RequestBody TemporarySaveLetterRequest request) {
86+
@Valid @RequestBody TemporarySaveLetterRequest request) {
8787

88-
return ResponseEntity.ok(BaseResponse.of(letterService.temporarySaveLetter(letterId, request),"임시 저장 완료 "));
88+
return ResponseEntity.ok(BaseResponse.of(letterService.temporarySaveLetter(request),"임시 저장 완료 "));
8989
}
9090

9191
/**
9292
* 임시저장 편지 삭제
9393
*/
9494
@DeleteMapping("/letters/{letterId}/temporary-save")
9595
public ResponseEntity<BaseResponse<Map<String,Long>>> deleteTemporarySaveLetter(@PathVariable Long letterId) {
96-
return ResponseEntity.status(HttpStatus.OK)
97-
.body(new BaseResponse<>(letterService.deleteTemporarySaveLetter(letterId),"임시 저장 편지 삭제 완료"));
96+
return ResponseEntity.ok(BaseResponse.of(letterService.deleteTemporarySaveLetter(letterId),"임시 저장 편지 삭제 완료"));
9897
}
9998

10099
/**

src/main/java/io/crops/warmletter/domain/letter/dto/request/TemporarySaveLetterRequest.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,23 @@
44
import io.crops.warmletter.domain.letter.enums.FontType;
55
import io.crops.warmletter.domain.letter.enums.PaperType;
66
import jakarta.validation.constraints.NotBlank;
7+
import jakarta.validation.constraints.NotNull;
78
import lombok.*;
89

910
@Getter
10-
@Setter
1111
@NoArgsConstructor
1212
@AllArgsConstructor
1313
public class TemporarySaveLetterRequest {
1414

15+
private Long letterId;
16+
17+
@NotNull(message = "받는 사람을 설정해주세요.")
1518
private Long receiverId;
1619

20+
@NotNull(message = "매칭 번호를 설정해주세요.")
1721
private Long matchingId;
1822

23+
@NotNull(message = "상위 편지를 설정해주세요.")
1924
private Long parentLetterId;
2025

2126
@NotBlank(message = "제목을 입력해주세요.")

src/main/java/io/crops/warmletter/domain/letter/entity/Letter.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -91,15 +91,20 @@ public void updateLetterType(LetterType letterType) {
9191
this.letterType = letterType;
9292
}
9393

94-
95-
public void updateTemporarySave(Long receiverId, Long matchingId, Long parentLetterId, Category category, String title, String content) {
96-
this.receiverId = receiverId;
97-
this.matchingId = matchingId;
98-
this.parentLetterId = parentLetterId;
99-
this.category = category;
94+
public void updateTitle(String title) {
10095
this.title = title;
96+
}
97+
98+
public void updateContent(String content) {
10199
this.content = content;
102-
this.status = Status.SAVED;
100+
}
101+
102+
public void updatePaperType(PaperType paperType) {
103+
this.paperType = paperType;
104+
}
105+
106+
public void updateFontType(FontType fontType) {
107+
this.fontType = fontType;
103108
}
104109

105110
public void updateMatchingId(Long matchingId) {

src/main/java/io/crops/warmletter/domain/letter/service/LetterService.java

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -184,21 +184,35 @@ public void evaluateLetter(Long letterId, EvaluateLetterRequest request) {
184184
}
185185

186186
@Transactional
187-
public LetterResponse temporarySaveLetter(Long letterId, TemporarySaveLetterRequest request) {
187+
public LetterResponse temporarySaveLetter(TemporarySaveLetterRequest request) {
188188
Long writerId = authFacade.getCurrentUserId();
189189
String writerZipCode = authFacade.getZipCode();
190190

191-
Letter letter = letterRepository.findByIdAndWriterId(letterId, writerId)
192-
.orElseThrow(LetterNotBelongException::new);
193-
194-
letter.updateTemporarySave(
195-
request.getReceiverId(),
196-
request.getMatchingId(),
197-
request.getParentLetterId(),
198-
request.getCategory(),
199-
request.getTitle(),
200-
request.getContent()
201-
);
191+
Letter letter;
192+
193+
if (request.getLetterId() == null) {
194+
letter = Letter.builder()
195+
.receiverId(request.getReceiverId())
196+
.matchingId(request.getMatchingId())
197+
.parentLetterId(request.getParentLetterId())
198+
.title(request.getTitle())
199+
.content(request.getContent())
200+
.category(request.getCategory())
201+
.paperType(request.getPaperType())
202+
.fontType(request.getFontType())
203+
.status(Status.SAVED)
204+
.build();
205+
206+
letterRepository.save(letter);
207+
} else {
208+
letter = letterRepository.findByIdAndWriterId(request.getLetterId(), writerId)
209+
.orElseThrow(LetterNotBelongException::new);
210+
211+
letter.updateTitle(request.getTitle());
212+
letter.updateContent(request.getContent());
213+
letter.updatePaperType(request.getPaperType());
214+
letter.updateFontType(request.getFontType());
215+
}
202216

203217
return LetterResponse.fromEntity(letter, writerZipCode);
204218
}

0 commit comments

Comments
 (0)