From 314dfc1c69d6a0c80f3052903aab605573bba9d2 Mon Sep 17 00:00:00 2001 From: Coldot <41678750+Coldot@users.noreply.github.com> Date: Sun, 3 Aug 2025 02:20:47 +0900 Subject: [PATCH 1/5] feat: Implement SharedSpaceService to retrieve shared space information --- .../space/service/SharedSpaceService.java | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 src/main/java/com/example/gp_backend_data/space/service/SharedSpaceService.java diff --git a/src/main/java/com/example/gp_backend_data/space/service/SharedSpaceService.java b/src/main/java/com/example/gp_backend_data/space/service/SharedSpaceService.java new file mode 100644 index 0000000..0644047 --- /dev/null +++ b/src/main/java/com/example/gp_backend_data/space/service/SharedSpaceService.java @@ -0,0 +1,32 @@ +package com.example.gp_backend_data.space.service; + +import com.example.gp_backend_data.space.domain.dto.response.SharedSpaceResponse; +import com.example.gp_backend_data.space.domain.entity.Space; +import com.example.gp_backend_data.space.repository.SpaceRepository; +import com.example.gp_backend_data.utils.UUIDHelper; +import jakarta.persistence.EntityNotFoundException; +import lombok.RequiredArgsConstructor; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.UUID; + +@Service +@RequiredArgsConstructor +@Transactional +public class SharedSpaceService { + + private final SpaceRepository spaceRepository; + private final UUIDHelper uuidHelper; + + @Transactional(readOnly = true) + public SharedSpaceResponse getSharedSpaceInfo(UUID sharingId) { + Space space = spaceRepository.findBySharingIdAndIsShared( + uuidHelper.convertUUIDToByteArray(sharingId), true) + .orElseThrow(() -> new EntityNotFoundException("Shared space not found.")); + + return SharedSpaceResponse.builder() + .title(space.getTitle()) + .build(); + } +} From 7e71e37e90186438fe5a2b8c752a9f0d5ed2ab2b Mon Sep 17 00:00:00 2001 From: Coldot <41678750+Coldot@users.noreply.github.com> Date: Sun, 3 Aug 2025 02:20:51 +0900 Subject: [PATCH 2/5] feat: Add SharedSpaceResponse DTO for shared space information --- .../domain/dto/response/SharedSpaceResponse.java | 12 ++++++++++++ 1 file changed, 12 insertions(+) create mode 100644 src/main/java/com/example/gp_backend_data/space/domain/dto/response/SharedSpaceResponse.java diff --git a/src/main/java/com/example/gp_backend_data/space/domain/dto/response/SharedSpaceResponse.java b/src/main/java/com/example/gp_backend_data/space/domain/dto/response/SharedSpaceResponse.java new file mode 100644 index 0000000..2c02cfa --- /dev/null +++ b/src/main/java/com/example/gp_backend_data/space/domain/dto/response/SharedSpaceResponse.java @@ -0,0 +1,12 @@ +package com.example.gp_backend_data.space.domain.dto.response; + +import lombok.*; + +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +@Builder +public class SharedSpaceResponse { + private String title; +} From 4b1b775d77763780a38671d183be9b5291b17dd6 Mon Sep 17 00:00:00 2001 From: Coldot <41678750+Coldot@users.noreply.github.com> Date: Sun, 3 Aug 2025 02:20:58 +0900 Subject: [PATCH 3/5] feat: Implement SharedSpaceController to handle shared space information retrieval --- .../controller/SharedSpaceController.java | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/main/java/com/example/gp_backend_data/space/controller/SharedSpaceController.java diff --git a/src/main/java/com/example/gp_backend_data/space/controller/SharedSpaceController.java b/src/main/java/com/example/gp_backend_data/space/controller/SharedSpaceController.java new file mode 100644 index 0000000..d8adda0 --- /dev/null +++ b/src/main/java/com/example/gp_backend_data/space/controller/SharedSpaceController.java @@ -0,0 +1,28 @@ +package com.example.gp_backend_data.space.controller; + +import com.example.gp_backend_data.space.domain.dto.response.SharedSpaceResponse; +import com.example.gp_backend_data.space.service.SharedSpaceService; +import jakarta.persistence.EntityNotFoundException; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.UUID; + +@RestController +@RequestMapping("/share") +@RequiredArgsConstructor +public class SharedSpaceController { + + private final SharedSpaceService sharedSpaceService; + + @GetMapping("/{sharingId}/space") + public ResponseEntity getSharedSpaceInfo(@PathVariable UUID sharingId) { + try { + SharedSpaceResponse response = sharedSpaceService.getSharedSpaceInfo(sharingId); + return ResponseEntity.ok(response); + } catch (EntityNotFoundException e) { + throw new EntityNotFoundException("404 Not Found: " + e.getMessage()); + } + } +} From 05017d915ee06fac49f38d718b74852e1c5c3fd9 Mon Sep 17 00:00:00 2001 From: Coldot <41678750+Coldot@users.noreply.github.com> Date: Sun, 3 Aug 2025 02:26:00 +0900 Subject: [PATCH 4/5] feat: Add method to find Space by sharing ID in SpaceRepository --- .../gp_backend_data/space/repository/SpaceRepository.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/com/example/gp_backend_data/space/repository/SpaceRepository.java b/src/main/java/com/example/gp_backend_data/space/repository/SpaceRepository.java index f493346..0861118 100644 --- a/src/main/java/com/example/gp_backend_data/space/repository/SpaceRepository.java +++ b/src/main/java/com/example/gp_backend_data/space/repository/SpaceRepository.java @@ -14,4 +14,5 @@ public interface SpaceRepository extends JpaRepository { Optional findBySpaceIdAndUserId(byte[] spaceId, byte[] userId); List findByUserId(byte[] userId); Optional findBySharingIdAndIsShared(byte[] sharingId, boolean isShared); + Optional findBySharingId(byte[] sharingId); } From afa80777c73c03603f1ba5f791a70463624a0f30 Mon Sep 17 00:00:00 2001 From: Coldot <41678750+Coldot@users.noreply.github.com> Date: Sun, 3 Aug 2025 02:26:22 +0900 Subject: [PATCH 5/5] fix: Update getSharedSpaceInfo method to remove isShared filter in SpaceRepository query --- .../gp_backend_data/space/service/SharedSpaceService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/example/gp_backend_data/space/service/SharedSpaceService.java b/src/main/java/com/example/gp_backend_data/space/service/SharedSpaceService.java index 0644047..e80c705 100644 --- a/src/main/java/com/example/gp_backend_data/space/service/SharedSpaceService.java +++ b/src/main/java/com/example/gp_backend_data/space/service/SharedSpaceService.java @@ -21,8 +21,8 @@ public class SharedSpaceService { @Transactional(readOnly = true) public SharedSpaceResponse getSharedSpaceInfo(UUID sharingId) { - Space space = spaceRepository.findBySharingIdAndIsShared( - uuidHelper.convertUUIDToByteArray(sharingId), true) + Space space = spaceRepository.findBySharingId( + uuidHelper.convertUUIDToByteArray(sharingId)) .orElseThrow(() -> new EntityNotFoundException("Shared space not found.")); return SharedSpaceResponse.builder()