From 827176595a93e587d48ed0fa9b17797c9b731d93 Mon Sep 17 00:00:00 2001 From: "GM. Kim" Date: Sun, 16 Jun 2024 00:04:01 +0900 Subject: [PATCH] feat: create interface of photo apis (#3) --- .../java/kr/mafoo/photo/api/PhotoApi.java | 49 +++++++++++++++++++ .../dto/request/PhotoAlbumUpdateRequest.java | 10 ++++ .../dto/request/PhotoCreateRequest.java | 10 ++++ .../dto/response/PhotoResponse.java | 16 ++++++ 4 files changed, 85 insertions(+) create mode 100644 photo-service/src/main/java/kr/mafoo/photo/api/PhotoApi.java create mode 100644 photo-service/src/main/java/kr/mafoo/photo/controller/dto/request/PhotoAlbumUpdateRequest.java create mode 100644 photo-service/src/main/java/kr/mafoo/photo/controller/dto/request/PhotoCreateRequest.java create mode 100644 photo-service/src/main/java/kr/mafoo/photo/controller/dto/response/PhotoResponse.java diff --git a/photo-service/src/main/java/kr/mafoo/photo/api/PhotoApi.java b/photo-service/src/main/java/kr/mafoo/photo/api/PhotoApi.java new file mode 100644 index 00000000..a052f50a --- /dev/null +++ b/photo-service/src/main/java/kr/mafoo/photo/api/PhotoApi.java @@ -0,0 +1,49 @@ +package kr.mafoo.photo.api; + +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import kr.mafoo.photo.controller.dto.request.PhotoCreateRequest; +import kr.mafoo.photo.controller.dto.request.PhotoAlbumUpdateRequest; +import kr.mafoo.photo.controller.dto.response.PhotoResponse; +import org.springframework.web.bind.annotation.*; +import reactor.core.publisher.Flux; +import reactor.core.publisher.Mono; + +@Tag(name = "사진 관련 API", description = "사진 조회, 생성, 수정, 삭제 등 API") +@RequestMapping("/v1/photos") +public interface PhotoApi { + @Operation(summary = "사진 조회", description = "사진 목록을 조회합니다.") + @GetMapping + Flux getAlbumPhotos( + @Parameter(description = "앨범 ID", example = "test_album_id") + @RequestParam(required = false) + String albumId + ); + + @Operation(summary = "사진 생성", description = "사진을 생성합니다.") + @PostMapping("") + Mono createPhoto( + @RequestBody + PhotoCreateRequest request + ); + + @Operation(summary = "사진 앨범 수정", description = "사진을 다른 앨범으로 이동시킵니다.") + @PatchMapping("/{photoId}/album") + Mono updatePhotoAlbum( + @Parameter(description = "사진 ID", example = "test_photo_id") + @PathVariable + String photoId, + + @RequestBody + PhotoAlbumUpdateRequest request + ); + + @Operation(summary = "사진 삭제", description = "사진을 삭제합니다.") + @DeleteMapping("{photoId}") + Mono deletePhoto( + @Parameter(description = "사진 ID", example = "test_photo_id") + @PathVariable + String photoId + ); +} diff --git a/photo-service/src/main/java/kr/mafoo/photo/controller/dto/request/PhotoAlbumUpdateRequest.java b/photo-service/src/main/java/kr/mafoo/photo/controller/dto/request/PhotoAlbumUpdateRequest.java new file mode 100644 index 00000000..c35cc71b --- /dev/null +++ b/photo-service/src/main/java/kr/mafoo/photo/controller/dto/request/PhotoAlbumUpdateRequest.java @@ -0,0 +1,10 @@ +package kr.mafoo.photo.controller.dto.request; + +import io.swagger.v3.oas.annotations.media.Schema; + +@Schema(description = "사진 앨범 수정 요청") +public record PhotoAlbumUpdateRequest( + @Schema(description = "앨범 ID", example = "test_album_id") + String albumId +) { +} diff --git a/photo-service/src/main/java/kr/mafoo/photo/controller/dto/request/PhotoCreateRequest.java b/photo-service/src/main/java/kr/mafoo/photo/controller/dto/request/PhotoCreateRequest.java new file mode 100644 index 00000000..6b0fa51b --- /dev/null +++ b/photo-service/src/main/java/kr/mafoo/photo/controller/dto/request/PhotoCreateRequest.java @@ -0,0 +1,10 @@ +package kr.mafoo.photo.controller.dto.request; + +import io.swagger.v3.oas.annotations.media.Schema; + +@Schema(description = "사진 생성 요청") +public record PhotoCreateRequest( + @Schema(description = "QR URL", example = "qr_url") + String qrUrl +) { +} diff --git a/photo-service/src/main/java/kr/mafoo/photo/controller/dto/response/PhotoResponse.java b/photo-service/src/main/java/kr/mafoo/photo/controller/dto/response/PhotoResponse.java new file mode 100644 index 00000000..298bedf7 --- /dev/null +++ b/photo-service/src/main/java/kr/mafoo/photo/controller/dto/response/PhotoResponse.java @@ -0,0 +1,16 @@ +package kr.mafoo.photo.controller.dto.response; + +import io.swagger.v3.oas.annotations.media.Schema; + +@Schema(description = "사진 응답") +public record PhotoResponse( + @Schema(description = "사진 ID", example = "test_photo_id") + String photoId, + + @Schema(description = "사진 URL", example = "photo_url") + String photoUrl, + + @Schema(description = "앨범 ID", example = "test_album_id") + String albumId +) { +}