Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
package com.deterior.domain.member.dto

data class ScrapCheckResponse(
val check: Boolean,
val username: String,
)
Original file line number Diff line number Diff line change
@@ -1,14 +1,18 @@
package com.deterior.domain.scrap.controller

import com.deterior.domain.member.dto.ScrapCheckResponse
import com.deterior.domain.scrap.dto.ScrapHandleDto
import com.deterior.domain.scrap.dto.ScrapRequest
import com.deterior.domain.scrap.dto.ScrapResponse
import com.deterior.domain.scrap.service.ScrapService
import org.springframework.beans.factory.annotation.Autowired
import org.springframework.http.ResponseEntity
import org.springframework.stereotype.Controller
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.RequestParam

@RequestMapping("/api")
@Controller
Expand All @@ -21,4 +25,13 @@ class ScrapController @Autowired constructor(
val dto = scrapService.doLike(scrapRequest.toHandleDto())
return ResponseEntity.ok(dto.toResponse())
}

@GetMapping("/scrap/check")
override fun checkScrap(
@RequestParam boardId: Long,
@RequestParam username: String
): ResponseEntity<ScrapCheckResponse> {
val result = scrapService.isLike(ScrapHandleDto(boardId, username))
return ResponseEntity.ok(ScrapCheckResponse(result, username))
}
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,14 @@
package com.deterior.domain.scrap.controller

import com.deterior.domain.member.dto.ScrapCheckResponse
import com.deterior.domain.scrap.dto.ScrapRequest
import com.deterior.domain.scrap.dto.ScrapResponse
import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.Parameter
import io.swagger.v3.oas.annotations.tags.Tag
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.RequestBody
import org.springframework.web.bind.annotation.RequestParam

@Tag(name = "스크랩 API")
interface ScrapControllerSwagger {
Expand All @@ -14,4 +17,15 @@ interface ScrapControllerSwagger {
fun pushScrap(
@RequestBody scrapRequest: ScrapRequest
): ResponseEntity<ScrapResponse>

@Operation(summary = "스크랩 여부 확인 \uD83D\uDD12",
parameters = [
Parameter(name = "boardId", description = "게시글 아이디", required = true),
Parameter(name = "username", description = "사용자 아이디", required = true),
]
)
fun checkScrap(
@RequestParam boardId: Long,
@RequestParam username: String
): ResponseEntity<ScrapCheckResponse>
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,5 @@ interface ScrapService {
// fun pushLike(scrapHandleDto: ScrapHandleDto): ScrapDto
// fun undoLike(scrapHandleDto: ScrapHandleDto): ScrapDto
fun doLike(scrapHandleDto: ScrapHandleDto): ScrapDto
fun isLike(scrapHandleDto: ScrapHandleDto): Boolean
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,11 @@ class ScrapServiceImpl @Autowired constructor(
scrapRepository.isScrapExists(scrapHandleDto)
.let { if (it) return undoLike(scrapHandleDto) else return pushLike(scrapHandleDto) }

@Transactional
override fun isLike(scrapHandleDto: ScrapHandleDto): Boolean {
return scrapRepository.isScrapExists(scrapHandleDto)
}

private fun pushLike(scrapHandleDto: ScrapHandleDto): ScrapDto {
val board = boardRepository.findById(scrapHandleDto.boardId).get()
val member = memberRepository.findByUsername(scrapHandleDto.username)
Expand Down
Loading