From 103f518dec10804a8f55efddcc44648cb5e0713c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=84=9D=EB=B2=94?= Date: Wed, 11 Feb 2026 23:25:04 +0900 Subject: [PATCH 1/3] =?UTF-8?q?Feat:=20=EA=B7=B8=EB=A3=B9=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20API=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../group/adapter/in/web/GroupController.java | 15 +++++++++++++ .../adapter/in/web/MemberController.java | 18 ++++++++++++++++ .../persistence/GroupRepositoryAdapter.java | 5 +++++ .../port/in/DeleteGroupUseCase.java | 7 +++++++ .../port/in/command/DeleteGroupCommand.java | 7 +++++++ .../port/out/GroupRepositoryPort.java | 2 ++ .../service/DeleteGroupService.java | 21 +++++++++++++++++++ 7 files changed, 75 insertions(+) create mode 100644 src/main/java/flipnote/group/adapter/in/web/MemberController.java create mode 100644 src/main/java/flipnote/group/application/port/in/DeleteGroupUseCase.java create mode 100644 src/main/java/flipnote/group/application/port/in/command/DeleteGroupCommand.java create mode 100644 src/main/java/flipnote/group/application/service/DeleteGroupService.java diff --git a/src/main/java/flipnote/group/adapter/in/web/GroupController.java b/src/main/java/flipnote/group/adapter/in/web/GroupController.java index fd56c2f..d6e33cc 100644 --- a/src/main/java/flipnote/group/adapter/in/web/GroupController.java +++ b/src/main/java/flipnote/group/adapter/in/web/GroupController.java @@ -1,6 +1,7 @@ package flipnote.group.adapter.in.web; import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; @@ -20,6 +21,7 @@ import flipnote.group.application.port.in.FindGroupUseCase; import flipnote.group.application.port.in.command.ChangeGroupCommand; import flipnote.group.application.port.in.command.CreateGroupCommand; +import flipnote.group.application.port.in.command.DeleteGroupCommand; import flipnote.group.application.port.in.command.FindGroupCommand; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; @@ -111,4 +113,17 @@ public ResponseEntity findGroup( return ResponseEntity.ok(res); } + @DeleteMapping("/{groupId}") + public ResponseEntity deleteGroup( + @RequestHeader("X-USER-ID") Long userId, + @PathVariable("groupId") Long groupId + ) { + + DeleteGroupCommand cmd = new DeleteGroupCommand(userId, groupId); + + d + + return ResponseEntity.noContent().build(); + } + } diff --git a/src/main/java/flipnote/group/adapter/in/web/MemberController.java b/src/main/java/flipnote/group/adapter/in/web/MemberController.java new file mode 100644 index 0000000..8023df8 --- /dev/null +++ b/src/main/java/flipnote/group/adapter/in/web/MemberController.java @@ -0,0 +1,18 @@ +package flipnote.group.adapter.in.web; + +public class MemberController { + //todo 가인 신청 요청 + + //todo 그룹 내 가입 신청한 리스트 조회 + + //todo 가입신청 응답 + + //todo 가입신청 삭제 + + //todo 내가 신청한 가입신청 리스트 조회 + + //todo 초대 + + //todo 그룹 멤버 추방 + +} diff --git a/src/main/java/flipnote/group/adapter/out/persistence/GroupRepositoryAdapter.java b/src/main/java/flipnote/group/adapter/out/persistence/GroupRepositoryAdapter.java index dcba394..e464c3f 100644 --- a/src/main/java/flipnote/group/adapter/out/persistence/GroupRepositoryAdapter.java +++ b/src/main/java/flipnote/group/adapter/out/persistence/GroupRepositoryAdapter.java @@ -35,4 +35,9 @@ public Group findById(Long id) { ); return GroupMapper.toDomain(groupEntity); } + + @Override + public void delete(Long groupId) { + groupRepository.deleteById(groupId); + } } diff --git a/src/main/java/flipnote/group/application/port/in/DeleteGroupUseCase.java b/src/main/java/flipnote/group/application/port/in/DeleteGroupUseCase.java new file mode 100644 index 0000000..1cc63a6 --- /dev/null +++ b/src/main/java/flipnote/group/application/port/in/DeleteGroupUseCase.java @@ -0,0 +1,7 @@ +package flipnote.group.application.port.in; + +import flipnote.group.application.port.in.command.DeleteGroupCommand; + +public interface DeleteGroupUseCase { + void deleteGroup(DeleteGroupCommand cmd); +} diff --git a/src/main/java/flipnote/group/application/port/in/command/DeleteGroupCommand.java b/src/main/java/flipnote/group/application/port/in/command/DeleteGroupCommand.java new file mode 100644 index 0000000..4be2351 --- /dev/null +++ b/src/main/java/flipnote/group/application/port/in/command/DeleteGroupCommand.java @@ -0,0 +1,7 @@ +package flipnote.group.application.port.in.command; + +public record DeleteGroupCommand( + Long userId, + Long groupId +) { +} diff --git a/src/main/java/flipnote/group/application/port/out/GroupRepositoryPort.java b/src/main/java/flipnote/group/application/port/out/GroupRepositoryPort.java index cc7ad54..432b6c0 100644 --- a/src/main/java/flipnote/group/application/port/out/GroupRepositoryPort.java +++ b/src/main/java/flipnote/group/application/port/out/GroupRepositoryPort.java @@ -6,4 +6,6 @@ public interface GroupRepositoryPort { Long saveNewGroup(Group group); Group findById(Long id); + + void delete(Long id); } diff --git a/src/main/java/flipnote/group/application/service/DeleteGroupService.java b/src/main/java/flipnote/group/application/service/DeleteGroupService.java new file mode 100644 index 0000000..dbf6b86 --- /dev/null +++ b/src/main/java/flipnote/group/application/service/DeleteGroupService.java @@ -0,0 +1,21 @@ +package flipnote.group.application.service; + +import org.springframework.stereotype.Service; + +import flipnote.group.application.port.in.DeleteGroupUseCase; +import flipnote.group.application.port.in.command.DeleteGroupCommand; +import flipnote.group.application.port.out.GroupRepositoryPort; +import lombok.RequiredArgsConstructor; + +@Service +@RequiredArgsConstructor +public class DeleteGroupService implements DeleteGroupUseCase { + + private final GroupRepositoryPort groupRepository; + + @Override + public void deleteGroup(DeleteGroupCommand cmd) { + groupRepository.delete(cmd.groupId()); + } + +} From 7bae1999b5e1c7aa9dde5385654f56b6a11d2600 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=84=9D=EB=B2=94?= Date: Wed, 11 Feb 2026 23:26:13 +0900 Subject: [PATCH 2/3] =?UTF-8?q?Feat:=20=EA=B7=B8=EB=A3=B9=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=20API=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../group/adapter/in/web/GroupController.java | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main/java/flipnote/group/adapter/in/web/GroupController.java b/src/main/java/flipnote/group/adapter/in/web/GroupController.java index d6e33cc..b1fe852 100644 --- a/src/main/java/flipnote/group/adapter/in/web/GroupController.java +++ b/src/main/java/flipnote/group/adapter/in/web/GroupController.java @@ -18,6 +18,7 @@ import flipnote.group.api.dto.response.FindGroupResponseDto; import flipnote.group.application.port.in.ChangeGroupUseCase; import flipnote.group.application.port.in.CreateGroupUseCase; +import flipnote.group.application.port.in.DeleteGroupUseCase; import flipnote.group.application.port.in.FindGroupUseCase; import flipnote.group.application.port.in.command.ChangeGroupCommand; import flipnote.group.application.port.in.command.CreateGroupCommand; @@ -34,6 +35,7 @@ public class GroupController { private final CreateGroupUseCase createGroupUseCase; private final ChangeGroupUseCase changeGroupUseCase; private final FindGroupUseCase findGroupUseCase; + private final DeleteGroupUseCase deleteGroupUseCase; /** * 그룹 생성 API @@ -113,6 +115,13 @@ public ResponseEntity findGroup( return ResponseEntity.ok(res); } + /** + * 그룹 삭제 + * todo 추후 권환 체크 후 권환 확인 후 삭제 + * @param userId + * @param groupId + * @return + */ @DeleteMapping("/{groupId}") public ResponseEntity deleteGroup( @RequestHeader("X-USER-ID") Long userId, @@ -121,7 +130,7 @@ public ResponseEntity deleteGroup( DeleteGroupCommand cmd = new DeleteGroupCommand(userId, groupId); - d + deleteGroupUseCase.deleteGroup(cmd); return ResponseEntity.noContent().build(); } From 97fa07cefad2f00599d844c2cac01063244ba41f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=9D=B4=EC=84=9D=EB=B2=94?= Date: Wed, 11 Feb 2026 23:30:24 +0900 Subject: [PATCH 3/3] =?UTF-8?q?Chore:=20=ED=95=84=EC=9A=94=ED=95=9C=20API?= =?UTF-8?q?=20todo=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flipnote/group/adapter/in/web/GroupController.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/flipnote/group/adapter/in/web/GroupController.java b/src/main/java/flipnote/group/adapter/in/web/GroupController.java index b1fe852..a76b0bd 100644 --- a/src/main/java/flipnote/group/adapter/in/web/GroupController.java +++ b/src/main/java/flipnote/group/adapter/in/web/GroupController.java @@ -134,5 +134,13 @@ public ResponseEntity deleteGroup( return ResponseEntity.noContent().build(); } + + //todo 그룹 내 멤버 조회 + + //todo 그룹 전체 조회 + + //todo 내 그룹 전체 조회 + + //todo 내가 생성한 그룹 전체 조회 }