SimplerController

abstract class SimplerController<I : Serializable, E : SimplerEntity<I>, M : SimplerModel<I>, out Mapper : SimplerMapper<I, E, M>, out R : SimplerRepository<I, E>, out S : SimplerService<I, E, M, R, Mapper>>(typeName: String, service: S, mapper: Mapper) : CRUDController<I, E, M, M, M, M, M, M, Mapper, Mapper, R, S> (source)

Simpler variant of CRUDController where create/update models and DTOs are just models

This is meant to be extended from a @RestController class, ideally also with a @RequestMapping with some path prefix for the endpoints.

Parameters

I

Id type of the data

E

Entity type of the data which is a SimplerEntity

M

Model type of the data which is a SimplerModel

Mapper

Mapper type of the data which is a SimplerMapper

R

Repository type of the data which is a SimplerRepository

S

Service type of the data which is a SimplerService

Constructors

Link copied to clipboard
constructor(typeName: String, service: S, mapper: Mapper)

Inherited functions

Link copied to clipboard
@PostMapping(consumes = ["application/json"], produces = ["application/json"])
@ResponseStatus(code = HttpStatus.CREATED)
open fun create(@RequestBody createDTO: M, @PathVariable pathVariables: Map<String, String>, request: HttpServletRequest): M

Default implementation for creating a new entity from given create DTO

Link copied to clipboard
@DeleteMapping(value = ["/{id}"])
@ResponseStatus(value = HttpStatus.NO_CONTENT)
open fun delete(@PathVariable(value = "id") id: I, @PathVariable pathVariables: Map<String, String>, request: HttpServletRequest)

Default implementation for deleting an entity with given id

Link copied to clipboard
@GetMapping(path = ["/{id}"], produces = ["application/json"])
open fun get(@PathVariable(value = "id") id: I, @PathVariable pathVariables: Map<String, String>, request: HttpServletRequest): M

Default implementation for getting an entity with given id

Link copied to clipboard
@GetMapping(produces = ["application/json"])
open fun list(@RequestParam(name = "page", required = false, defaultValue = "0") page: Int, @RequestParam(name = "perPage", required = false, defaultValue = "20") perPage: Int, @PathVariable pathVariables: Map<String, String>, request: HttpServletRequest): Paged<M>

Default implementation for listing entities with given pagination

Link copied to clipboard
@PutMapping(path = ["/{id}"], consumes = ["application/json"], produces = ["application/json"])
open fun update(@PathVariable(value = "id") id: I, @RequestBody updateDTO: M, @PathVariable pathVariables: Map<String, String>, request: HttpServletRequest): M

Default implementation for updating an entity with given id with given update DTO data