Skip to content

Commit c700f38

Browse files
authored
[feat] 칵테일 공유 기능 구현
* {feat} : domain * {fix}:Cocktail-Wishlist relation * fix : enums * fix : bug * feat : 조회기능, 조init data * feat : cocktailSearch * feat : controller * feat : cocktail controller * CocktailShareController * fix : bug
1 parent 799dc0c commit c700f38

File tree

2 files changed

+39
-2
lines changed

2 files changed

+39
-2
lines changed

src/main/java/com/back/domain/cocktail/controller/CocktailController.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public RsData<CocktailDetailResponseDto> getCocktailDetailById(@PathVariable lon
2929
return RsData.successOf(cocktailDetailResponseDto);
3030
}
3131

32-
// @param lastId 마지막으로 가져온 칵테일 ID (첫 요청 null 가능)
32+
// @param lastId 마지막으로 가져온 칵테일 ID (첫 요청 null 가능)
3333
// @param size 가져올 데이터 개수 (기본값 DEFAULT_SIZE)
3434
// @return RsData 형태의 칵테일 요약 정보 리스트
3535
@GetMapping
@@ -43,7 +43,6 @@ public RsData<List<CocktailSummaryResponseDto>> getCocktails(
4343
return RsData.successOf(cocktails);
4444
}
4545

46-
4746
// 칵테일 검색 및 필터링
4847
// POST 방식으로 JSON body를 통해 검색 조건 전달
4948

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
package com.back.domain.cocktail.controller;
2+
3+
import com.back.domain.cocktail.repository.CocktailRepository;
4+
import com.back.global.rsData.RsData;
5+
import lombok.RequiredArgsConstructor;
6+
import org.springframework.http.HttpStatus;
7+
import org.springframework.http.ResponseEntity;
8+
import org.springframework.web.bind.annotation.GetMapping;
9+
import org.springframework.web.bind.annotation.PathVariable;
10+
import org.springframework.web.bind.annotation.RequestMapping;
11+
import org.springframework.web.bind.annotation.RestController;
12+
13+
import java.util.Map;
14+
15+
@RestController
16+
@RequestMapping("/api/cocktails")
17+
@RequiredArgsConstructor
18+
public class CocktailShareController {
19+
private final CocktailRepository cocktailRepository;
20+
21+
@GetMapping("/{id}/share")
22+
public ResponseEntity<RsData<Map<String, String>>> getShareLink(@PathVariable Long id) {
23+
return cocktailRepository.findById(id)
24+
.map(cocktail -> {
25+
Map<String, String> response = Map.of(
26+
// 공유 URL
27+
"url", "https://www.ssoul.or/cocktails/" + cocktail.getCocktailId(),
28+
// 공유 제목
29+
"title", cocktail.getCocktailName(),
30+
// 공유 이미지 (선택)
31+
"imageUrl", cocktail.getCocktailImgUrl()
32+
);
33+
return ResponseEntity.ok(RsData.successOf(response));
34+
})
35+
.orElseGet(() -> ResponseEntity.status(HttpStatus.NOT_FOUND)
36+
.body(RsData.failOf("칵테일을 찾을 수 없습니다.")));
37+
}
38+
}

0 commit comments

Comments
 (0)