сделал REST api

This commit is contained in:
skettiks
2026-03-08 22:49:28 +03:00
parent 1673f2921e
commit b3dbaa0f9a
4 changed files with 188 additions and 38 deletions
@@ -0,0 +1,58 @@
package com.project.movienight.adapters.web
import com.project.movienight.application.ports.input.CreateFilmCommand
import com.project.movienight.application.ports.input.CreateFilmUseCase
import com.project.movienight.application.ports.input.DeleteFilmUseCase
import com.project.movienight.application.ports.input.EditFilmCommand
import com.project.movienight.application.ports.input.EditFilmUseCase
import com.project.movienight.domain.model.Film
import org.springframework.http.HttpStatus
import org.springframework.web.bind.annotation.*
import java.util.UUID
@RestController
@RequestMapping("/api/films")
class FilmController(
private val createFilmUseCase: CreateFilmUseCase,
private val editFilmUseCase: EditFilmUseCase,
private val deleteFilmUseCase: DeleteFilmUseCase,
) {
@PostMapping
@ResponseStatus(HttpStatus.CREATED)
fun create(@RequestBody request: CreateFilmRequest): Film =
createFilmUseCase.create(
CreateFilmCommand(
title = request.title,
description = request.description,
)
)
@PatchMapping("/{id}")
fun edit(
@PathVariable id: UUID,
@RequestBody request: EditFilmRequest,
): Film =
editFilmUseCase.edit(
id = id,
command = EditFilmCommand(
title = request.title,
description = request.description,
)
)
@DeleteMapping("/{id}")
@ResponseStatus(HttpStatus.NO_CONTENT)
fun delete(@PathVariable id: UUID) =
deleteFilmUseCase.delete(id)
}
data class CreateFilmRequest(
val title: String,
val description: String,
)
data class EditFilmRequest(
val title: String,
val description: String,
)