Skip to content

Commit 63c6399

Browse files
authored
Merge pull request #29 from moodTRBL/main
scrap 여부 확인 API추가
2 parents d3b9dac + 1b3b62f commit 63c6399

5 files changed

Lines changed: 39 additions & 0 deletions

File tree

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
package com.deterior.domain.member.dto
2+
3+
data class ScrapCheckResponse(
4+
val check: Boolean,
5+
val username: String,
6+
)

src/main/kotlin/com/deterior/domain/scrap/controller/ScrapController.kt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,18 @@
11
package com.deterior.domain.scrap.controller
22

3+
import com.deterior.domain.member.dto.ScrapCheckResponse
4+
import com.deterior.domain.scrap.dto.ScrapHandleDto
35
import com.deterior.domain.scrap.dto.ScrapRequest
46
import com.deterior.domain.scrap.dto.ScrapResponse
57
import com.deterior.domain.scrap.service.ScrapService
68
import org.springframework.beans.factory.annotation.Autowired
79
import org.springframework.http.ResponseEntity
810
import org.springframework.stereotype.Controller
11+
import org.springframework.web.bind.annotation.GetMapping
912
import org.springframework.web.bind.annotation.PostMapping
1013
import org.springframework.web.bind.annotation.RequestBody
1114
import org.springframework.web.bind.annotation.RequestMapping
15+
import org.springframework.web.bind.annotation.RequestParam
1216

1317
@RequestMapping("/api")
1418
@Controller
@@ -21,4 +25,13 @@ class ScrapController @Autowired constructor(
2125
val dto = scrapService.doLike(scrapRequest.toHandleDto())
2226
return ResponseEntity.ok(dto.toResponse())
2327
}
28+
29+
@GetMapping("/scrap/check")
30+
override fun checkScrap(
31+
@RequestParam boardId: Long,
32+
@RequestParam username: String
33+
): ResponseEntity<ScrapCheckResponse> {
34+
val result = scrapService.isLike(ScrapHandleDto(boardId, username))
35+
return ResponseEntity.ok(ScrapCheckResponse(result, username))
36+
}
2437
}

src/main/kotlin/com/deterior/domain/scrap/controller/ScrapControllerSwagger.kt

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
package com.deterior.domain.scrap.controller
22

3+
import com.deterior.domain.member.dto.ScrapCheckResponse
34
import com.deterior.domain.scrap.dto.ScrapRequest
45
import com.deterior.domain.scrap.dto.ScrapResponse
56
import io.swagger.v3.oas.annotations.Operation
7+
import io.swagger.v3.oas.annotations.Parameter
68
import io.swagger.v3.oas.annotations.tags.Tag
79
import org.springframework.http.ResponseEntity
810
import org.springframework.web.bind.annotation.RequestBody
11+
import org.springframework.web.bind.annotation.RequestParam
912

1013
@Tag(name = "스크랩 API")
1114
interface ScrapControllerSwagger {
@@ -14,4 +17,15 @@ interface ScrapControllerSwagger {
1417
fun pushScrap(
1518
@RequestBody scrapRequest: ScrapRequest
1619
): ResponseEntity<ScrapResponse>
20+
21+
@Operation(summary = "스크랩 여부 확인 \uD83D\uDD12",
22+
parameters = [
23+
Parameter(name = "boardId", description = "게시글 아이디", required = true),
24+
Parameter(name = "username", description = "사용자 아이디", required = true),
25+
]
26+
)
27+
fun checkScrap(
28+
@RequestParam boardId: Long,
29+
@RequestParam username: String
30+
): ResponseEntity<ScrapCheckResponse>
1731
}

src/main/kotlin/com/deterior/domain/scrap/service/ScrapService.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ interface ScrapService {
77
// fun pushLike(scrapHandleDto: ScrapHandleDto): ScrapDto
88
// fun undoLike(scrapHandleDto: ScrapHandleDto): ScrapDto
99
fun doLike(scrapHandleDto: ScrapHandleDto): ScrapDto
10+
fun isLike(scrapHandleDto: ScrapHandleDto): Boolean
1011
}

src/main/kotlin/com/deterior/domain/scrap/service/ScrapServiceImpl.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ class ScrapServiceImpl @Autowired constructor(
2222
scrapRepository.isScrapExists(scrapHandleDto)
2323
.let { if (it) return undoLike(scrapHandleDto) else return pushLike(scrapHandleDto) }
2424

25+
@Transactional
26+
override fun isLike(scrapHandleDto: ScrapHandleDto): Boolean {
27+
return scrapRepository.isScrapExists(scrapHandleDto)
28+
}
29+
2530
private fun pushLike(scrapHandleDto: ScrapHandleDto): ScrapDto {
2631
val board = boardRepository.findById(scrapHandleDto.boardId).get()
2732
val member = memberRepository.findByUsername(scrapHandleDto.username)

0 commit comments

Comments
 (0)