Skip to content

Commit dc3257b

Browse files
authored
Merge pull request #177 from dnd-side-project/feature/#176-template-add-func
Feature/#176 template add func
2 parents bb447f3 + c56ce5b commit dc3257b

File tree

7 files changed

+30
-14
lines changed

7 files changed

+30
-14
lines changed

src/main/java/com/dnd/reevserver/domain/template/controller/TemplateController.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,10 @@ public ResponseEntity<List<TemplateResponseDto>> findCustomTemplatesByUser(@Auth
3131
}
3232

3333
// 공용 템플릿 조회
34-
@Operation(summary = "공용 템플릿 조회, userId는 public라고 나올 것입니다.")
34+
@Operation(summary = "공용 템플릿 조회, userId는 public라고 나올 것입니다. Type은 회고 방식을 나타내는 retrospective_type과 직무를 나타내는 job_type으로 분류할 수 있습니다.")
3535
@GetMapping("/public")
36-
public ResponseEntity<List<TemplateResponseDto>> findPublicTemplates() {
37-
return ResponseEntity.ok(templateService.findPublicTemplates());
36+
public ResponseEntity<List<TemplateResponseDto>> findPublicTemplates(@RequestParam String type) {
37+
return ResponseEntity.ok(templateService.findPublicTemplates(type));
3838
}
3939

4040
// 템플릿 개별 조회

src/main/java/com/dnd/reevserver/domain/template/dto/request/CreateTemplateRequestDto.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33

44
import java.util.List;
55

6-
public record CreateTemplateRequestDto(String templateName, String content, String preset, List<String> categoryNames) {
6+
public record CreateTemplateRequestDto(String templateName, String content, String preset, List<String> categoryNames, String description, String type) {
77

88
}

src/main/java/com/dnd/reevserver/domain/template/dto/request/UpdateTemplateRequestDto.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,5 @@
22

33
import java.util.List;
44

5-
public record UpdateTemplateRequestDto(Long templateId, String templateName, String content, String preset, List<String> categoryNames) {
5+
public record UpdateTemplateRequestDto(Long templateId, String templateName, String content, String preset, List<String> categoryNames, String description, String type) {
66
}

src/main/java/com/dnd/reevserver/domain/template/dto/response/TemplateResponseDto.java

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

77
@Builder
8-
public record TemplateResponseDto(Long templateId, String templateName, String content, String preset,
9-
boolean isPublic, String userId, List<String> categories){
8+
public record TemplateResponseDto(Long templateId, String templateName, String description, String content, String preset,
9+
boolean isPublic, String userId, List<String> categories, String type){
1010
}
1111

src/main/java/com/dnd/reevserver/domain/template/entity/Template.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ public class Template extends BaseEntity {
2323
@Column(name = "template_name", nullable = false, length = 200, unique = true)
2424
private String templateName;
2525

26+
@Column(name = "description", nullable = false, columnDefinition = "LONGTEXT")
27+
private String description;
28+
2629
@Column(name = "content", nullable = false, columnDefinition = "LONGTEXT")
2730
private String content;
2831

@@ -36,6 +39,9 @@ public class Template extends BaseEntity {
3639
@Column(name = "preset", nullable = false, columnDefinition = "LONGTEXT")
3740
private String preset;
3841

42+
@Column(name = "type", nullable = false)
43+
private String type;
44+
3945
@OneToMany(mappedBy = "template")
4046
private List<TemplateCategory> templateCategories = new ArrayList<>();
4147

@@ -47,7 +53,11 @@ public void updateContent(String newContent) {
4753
this.content = newContent;
4854
}
4955

50-
public void updateDescription(String newDescription) { this.preset = newDescription; }
56+
public void updatePreset(String newPreset) { this.preset = newPreset; }
57+
58+
public void updateDescription(String newDescription) { this.description = newDescription; }
59+
60+
public void updateType(String newType) { this.type = newType; }
5161

5262
public void clearTemplateCategory(){
5363
this.templateCategories.clear();

src/main/java/com/dnd/reevserver/domain/template/repository/TemplateRepository.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ public interface TemplateRepository extends JpaRepository<Template, Long> {
1919
@Query("SELECT t FROM Template t " +
2020
"LEFT JOIN FETCH t.templateCategories tc " +
2121
"LEFT JOIN FETCH tc.category " +
22-
"WHERE t.isPublic = true")
23-
List<Template> findByIsPublicTrueWithCategories();
22+
"WHERE t.isPublic = true AND t.type = :type")
23+
List<Template> findByIsPublicTrueWithCategories(@Param("type") String type);
2424

2525

2626
Template findByTemplateName(String templateName);

src/main/java/com/dnd/reevserver/domain/template/service/TemplateService.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ public List<TemplateResponseDto> findCustomTemplatesByUser(String userId) {
5050
}
5151

5252
// 공용 템플릿 조회
53-
public List<TemplateResponseDto> findPublicTemplates() {
54-
return templateRepository.findByIsPublicTrueWithCategories().stream()
53+
public List<TemplateResponseDto> findPublicTemplates(String type) {
54+
return templateRepository.findByIsPublicTrueWithCategories(type).stream()
5555
.map(this::convertToDto)
5656
.collect(Collectors.toList());
5757
}
@@ -69,10 +69,12 @@ public void createCustomTemplate(String userId, CreateTemplateRequestDto dto) {
6969
Template template = Template.builder()
7070
.templateName(dto.templateName())
7171
.content(dto.content())
72+
.description(dto.description())
7273
.isPublic(false)
7374
.member(member)
7475
.preset(dto.preset())
7576
.templateCategories(new ArrayList<>())
77+
.type(dto.type())
7678
.build();
7779
templateRepository.save(template);
7880

@@ -86,7 +88,7 @@ public void createCustomTemplate(String userId, CreateTemplateRequestDto dto) {
8688
templateCategoryBatchRepository.saveAll(tcList);
8789
}
8890

89-
// 템플릿 제목, 내용, 설명, 카테고리 수정, isPublic이 false여만 가능, true면 PublicTemplateCannotModifyException 예외 처리
91+
// 템플릿 제목, 내용, 설명, 카테고리, 타입 수정, isPublic이 false여만 가능, true면 PublicTemplateCannotModifyException 예외 처리
9092
@Transactional
9193
public void updateTemplate(String userId, UpdateTemplateRequestDto dto) {
9294
Template template = findById(dto.templateId());
@@ -100,7 +102,9 @@ public void updateTemplate(String userId, UpdateTemplateRequestDto dto) {
100102

101103
template.updateTemplateName(dto.templateName());
102104
template.updateContent(dto.content());
103-
template.updateDescription(dto.preset());
105+
template.updatePreset(dto.preset());
106+
template.updateDescription(dto.description());
107+
template.updateType(dto.type());
104108

105109
templateCategoryRepository.deleteAllByTemplate(template);
106110
template.clearTemplateCategory();
@@ -133,10 +137,12 @@ private TemplateResponseDto convertToDto(Template template) {
133137
return TemplateResponseDto.builder()
134138
.templateId(template.getTemplateId())
135139
.templateName(template.getTemplateName())
140+
.description(template.getDescription())
136141
.content(template.getContent())
137142
.preset(template.getPreset())
138143
.isPublic(template.isPublic())
139144
.userId(template.isPublic() ? "public" : template.getMember().getUserId())
145+
.type(template.getType())
140146
.categories(
141147
List.copyOf(
142148
template.getTemplateCategories().stream()

0 commit comments

Comments
 (0)