diff --git a/src/main/java/org/pingle/pingleserver/controller/TeamController.java b/src/main/java/org/pingle/pingleserver/controller/TeamController.java index 4271105..843713e 100644 --- a/src/main/java/org/pingle/pingleserver/controller/TeamController.java +++ b/src/main/java/org/pingle/pingleserver/controller/TeamController.java @@ -6,6 +6,7 @@ import org.pingle.pingleserver.annotation.UserId; import org.pingle.pingleserver.controller.swagger.TeamApi; import org.pingle.pingleserver.dto.common.ApiResponse; +import org.pingle.pingleserver.dto.reponse.KeywordResponse; import org.pingle.pingleserver.dto.reponse.TeamCreationResponse; import org.pingle.pingleserver.dto.reponse.TeamNameDuplicatedResponse; import org.pingle.pingleserver.dto.request.TeamCreationRequest; @@ -53,4 +54,10 @@ public ApiResponse checkTeamName(@NotBlank @RequestP public ApiResponse createTeam(@UserId Long userId, @Valid @RequestBody TeamCreationRequest request){ return ApiResponse.success(SuccessMessage.OK, teamService.createTeam(userId, request)); } + + @GetMapping("/keywords") + public ApiResponse> getKeywords(){ + return ApiResponse.success(SuccessMessage.OK, teamService.getKeywords()); + } + } diff --git a/src/main/java/org/pingle/pingleserver/domain/enums/TKeyword.java b/src/main/java/org/pingle/pingleserver/domain/enums/TKeyword.java index 19c6de3..f9c0c2f 100644 --- a/src/main/java/org/pingle/pingleserver/domain/enums/TKeyword.java +++ b/src/main/java/org/pingle/pingleserver/domain/enums/TKeyword.java @@ -7,21 +7,17 @@ @Getter @RequiredArgsConstructor(access = AccessLevel.PRIVATE) public enum TKeyword { - CIRCLE("연합 동아리"), - SCHOOL_CLUB("교내 동아리"), - MIDDLE_SCHOOL("중학교"), - HIGH_SCHOOL("고등학교"), + CIRCLE("연합동아리"), + SCHOOL_CLUB("교내동아리"), + STUDENT_COUNCIL("학생회"), UNIVERSITY("대학교"), + HIGH_SCHOOL("고등학교"), + MIDDLE_SCHOOL("중학교"), LECTURE("강의"), - STUDENT_COUNCIL("학생회"), STUDY_GROUP("스터디"), + PRIVATE_MEETING("사모임"), CLUB("동호회"), - PRIVATE_MEETING("사모임"); + ETC("기타"); private final String value; - - @Override - public String toString() { - return value; - } } diff --git a/src/main/java/org/pingle/pingleserver/dto/reponse/KeywordResponse.java b/src/main/java/org/pingle/pingleserver/dto/reponse/KeywordResponse.java new file mode 100644 index 0000000..154d153 --- /dev/null +++ b/src/main/java/org/pingle/pingleserver/dto/reponse/KeywordResponse.java @@ -0,0 +1,15 @@ +package org.pingle.pingleserver.dto.reponse; + +import lombok.Builder; +import org.pingle.pingleserver.domain.enums.TKeyword; + +@Builder +public record KeywordResponse (String name, String value){ + + public static KeywordResponse of(TKeyword keyword){ + return KeywordResponse.builder() + .name(keyword.toString()) + .value(keyword.getValue()) + .build(); + } +} diff --git a/src/main/java/org/pingle/pingleserver/dto/response/MyTeamResponse.java b/src/main/java/org/pingle/pingleserver/dto/response/MyTeamResponse.java index 690b077..1415bbe 100644 --- a/src/main/java/org/pingle/pingleserver/dto/response/MyTeamResponse.java +++ b/src/main/java/org/pingle/pingleserver/dto/response/MyTeamResponse.java @@ -7,7 +7,7 @@ public record MyTeamResponse ( public static MyTeamResponse of(Team team, Long meetingCount, Long participantCount, boolean isOwner) { return new MyTeamResponse( team.getId(), - team.getKeyword().toString(), + team.getKeyword().getValue(), team.getName(), meetingCount, participantCount, diff --git a/src/main/java/org/pingle/pingleserver/dto/response/SelectedTeamResponse.java b/src/main/java/org/pingle/pingleserver/dto/response/SelectedTeamResponse.java index 7d075a4..2e59ae8 100644 --- a/src/main/java/org/pingle/pingleserver/dto/response/SelectedTeamResponse.java +++ b/src/main/java/org/pingle/pingleserver/dto/response/SelectedTeamResponse.java @@ -7,7 +7,7 @@ public record SelectedTeamResponse( Long id, String keyword, String name, Long meetingCount, Long participantCount) { public static SelectedTeamResponse of(Team team, Long meetingCount, Long participantCount) { - return new SelectedTeamResponse(team.getId(), team.getKeyword().toString(), team.getName(), meetingCount, participantCount); + return new SelectedTeamResponse(team.getId(), team.getKeyword().getValue(), team.getName(), meetingCount, participantCount); } } diff --git a/src/main/java/org/pingle/pingleserver/dto/response/TeamSearchResultResponse.java b/src/main/java/org/pingle/pingleserver/dto/response/TeamSearchResultResponse.java index e9ba77d..6827210 100644 --- a/src/main/java/org/pingle/pingleserver/dto/response/TeamSearchResultResponse.java +++ b/src/main/java/org/pingle/pingleserver/dto/response/TeamSearchResultResponse.java @@ -1,10 +1,9 @@ package org.pingle.pingleserver.dto.response; import org.pingle.pingleserver.domain.Team; -import org.pingle.pingleserver.domain.enums.TKeyword; public record TeamSearchResultResponse(Long id, String name, String keyword) { public static TeamSearchResultResponse of(Team team) { - return new TeamSearchResultResponse(team.getId(), team.getName(), team.getKeyword().toString()); + return new TeamSearchResultResponse(team.getId(), team.getName(), team.getKeyword().getValue()); } } diff --git a/src/main/java/org/pingle/pingleserver/service/TeamService.java b/src/main/java/org/pingle/pingleserver/service/TeamService.java index 5f2f8a3..36cfbcf 100644 --- a/src/main/java/org/pingle/pingleserver/service/TeamService.java +++ b/src/main/java/org/pingle/pingleserver/service/TeamService.java @@ -4,7 +4,9 @@ import org.pingle.pingleserver.domain.Team; import org.pingle.pingleserver.domain.User; import org.pingle.pingleserver.domain.UserTeam; +import org.pingle.pingleserver.domain.enums.TKeyword; import org.pingle.pingleserver.domain.enums.TRole; +import org.pingle.pingleserver.dto.reponse.KeywordResponse; import org.pingle.pingleserver.dto.reponse.TeamCreationResponse; import org.pingle.pingleserver.dto.reponse.TeamNameDuplicatedResponse; import org.pingle.pingleserver.dto.request.TeamCreationRequest; @@ -19,11 +21,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.util.ArrayList; -import java.util.Comparator; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; -import java.util.Random; @Service @RequiredArgsConstructor @@ -117,6 +116,12 @@ public TeamCreationResponse createTeam(Long userId, TeamCreationRequest request) return TeamCreationResponse.of(team); } + public List getKeywords() { + return Arrays.stream(TKeyword.values()) + .map(KeywordResponse::of) + .collect(Collectors.toList()); + } + private String generateCode() { String characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; StringBuilder result = new StringBuilder(12);