26 lines
1.2 KiB
Kotlin
26 lines
1.2 KiB
Kotlin
package net.halfbinary.scavengerhuntapi.controller
|
|
|
|
import io.swagger.v3.oas.annotations.Operation
|
|
import io.swagger.v3.oas.annotations.tags.Tag
|
|
import jakarta.validation.Valid
|
|
import net.halfbinary.scavengerhuntapi.model.PhotoId
|
|
import net.halfbinary.scavengerhuntapi.model.request.ReviewPhotoRequest
|
|
import net.halfbinary.scavengerhuntapi.service.PhotoService
|
|
import org.springframework.security.access.prepost.PreAuthorize
|
|
import org.springframework.web.bind.annotation.PatchMapping
|
|
import org.springframework.web.bind.annotation.PathVariable
|
|
import org.springframework.web.bind.annotation.RequestBody
|
|
import org.springframework.web.bind.annotation.RequestMapping
|
|
import org.springframework.web.bind.annotation.RestController
|
|
|
|
@RestController
|
|
@RequestMapping("admin")
|
|
class AdminController(private val photoService: PhotoService) {
|
|
@PreAuthorize("hasRole('ADMIN')")
|
|
@Tag(name = "Admin")
|
|
@PatchMapping("/photo/{photoId}")
|
|
@Operation(summary = "Sets a review status for the specified photo")
|
|
fun reviewPhoto(@PathVariable photoId: PhotoId, @Valid @RequestBody request: ReviewPhotoRequest) {
|
|
photoService.updatePhotoStatus(photoId, request.status)
|
|
}
|
|
} |