From 134062d42580fecc9dbfc67f08d380e10961fd66 Mon Sep 17 00:00:00 2001 From: rokaf6444 Date: Thu, 28 Nov 2024 00:38:51 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EA=B7=B8=EB=A3=B9=20=EC=9D=B4=EB=A6=84?= =?UTF-8?q?=20=EC=A1=B0=ED=9A=8C=20API=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/payload/status/SuccessStatus.java | 1 + .../group/controller/GroupController.java | 28 ++++++++++++++----- .../pictalk/group/service/GroupService.java | 3 +- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/main/java/com/pictalk/global/payload/status/SuccessStatus.java b/src/main/java/com/pictalk/global/payload/status/SuccessStatus.java index 4fba0ba..4f64cac 100644 --- a/src/main/java/com/pictalk/global/payload/status/SuccessStatus.java +++ b/src/main/java/com/pictalk/global/payload/status/SuccessStatus.java @@ -17,6 +17,7 @@ public enum SuccessStatus implements BaseStatus { GET_IMAGE_SUCCESS(HttpStatus.OK, "IMAGE_200", "이미지가 성공적으로 조회되었습니다"), GROUP_CREATED(HttpStatus.CREATED, "GROUP_201", "그룹이 성공적으로 생성되었습니다"), + GROUPS_FOUND(HttpStatus.OK, "GROUP_200", "그룹이 성공적으로 조회되었습니다."), GROUP_DELETED(HttpStatus.NO_CONTENT, "GROUP_204", "그룹이 성공적으로 삭제되었습니다"), GROUP_UPDATED(HttpStatus.OK, "GROUP_200", "그룹 이름 변경이 성공적으로 처리되었습니다."), GROUP_RECEIVER_ADDED(HttpStatus.CREATED, "GR_RC_201", "그룹 멤버 추가가 성공적으로 처리되었습니다."), diff --git a/src/main/java/com/pictalk/group/controller/GroupController.java b/src/main/java/com/pictalk/group/controller/GroupController.java index 3b24454..d589138 100644 --- a/src/main/java/com/pictalk/group/controller/GroupController.java +++ b/src/main/java/com/pictalk/group/controller/GroupController.java @@ -5,19 +5,17 @@ import com.pictalk.group.domain.Group; import com.pictalk.group.dto.GroupRequestDto.CreateGroupRequest; import com.pictalk.group.dto.GroupRequestDto.UpdateGroupRequest; +import com.pictalk.group.dto.GroupResponseDto; import com.pictalk.group.dto.GroupResponseDto.CreateGroupResponse; import com.pictalk.group.service.GroupService; import io.swagger.v3.oas.annotations.Operation; import lombok.RequiredArgsConstructor; import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.security.core.userdetails.UserDetails; -import org.springframework.web.bind.annotation.DeleteMapping; -import org.springframework.web.bind.annotation.PatchMapping; -import org.springframework.web.bind.annotation.PathVariable; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; + +import java.util.List; +import java.util.stream.Collectors; @RestController @RequiredArgsConstructor @@ -51,4 +49,20 @@ public CommonResponse updateGroup(@PathVariable("group_id") Long groupId groupService.updateGroup(groupId, updateGroupRequest); return CommonResponse.of(SuccessStatus.GROUP_UPDATED, null); } + + @Operation(summary = "그룹 조회") + @GetMapping + public CommonResponse> getGroups(@AuthenticationPrincipal UserDetails authenticatedPrincipal) { + String userEmail = authenticatedPrincipal.getUsername(); + List groups = groupService.getAllGroupsByUser(userEmail); + + List response = groups.stream() + .map(group -> GroupResponseDto.SearchGroupResponse.builder() + .groupId(group.getId()) + .groupName(group.getName()) + .build()) + .collect(Collectors.toList()); + + return CommonResponse.of(SuccessStatus.GROUPS_FOUND, response); + } } diff --git a/src/main/java/com/pictalk/group/service/GroupService.java b/src/main/java/com/pictalk/group/service/GroupService.java index 597f599..53d8da3 100644 --- a/src/main/java/com/pictalk/group/service/GroupService.java +++ b/src/main/java/com/pictalk/group/service/GroupService.java @@ -40,8 +40,7 @@ public void deleteGroup(Long groupId) { group.softDelete(); } - - public List getAllGroupByUser(String userEmail) { + public List getAllGroupsByUser(String userEmail) { User user = userRepository.findByEmail(userEmail) .orElseThrow(() -> new GeneralException(ErrorStatus.USER_NOT_FOUND)); return groupRepository.findAllByUser(user);