package Ġio . hot aka . form acion . sc um mb ist ro . api . controllers Ċ Ċ import Ġio . hot aka . form acion . sc um mb ist ro . api . domain . entities . D ish Ċ import Ġio . hot aka . form acion . sc um mb ist ro . api . domain . repositories . ID ish Repository Ċ import Ġorg . springframework . data . domain . Page Ċ import Ġorg . springframework . data . domain . Page Request Ċ import Ġorg . springframework . data . domain . Sort Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . web . bind . annotation .* ĊĊ Ċ @ RestController Ċ @ RequestMapping ("/ dishes ") Ċ class ĠDis hes Controller ( val Ġdis h Repository : ĠID ish Repository ) Ġ{ ĊĊĠĠĠ Ġ@ GetMapping ĊĠĠĠ Ġfun ĠfindAll (@ RequestParam ( defaultValue Ġ= Ġ" 0 ") Ġpage : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestParam ( defaultValue Ġ= Ġ" 1 0 ") Ġsize : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestParam ( defaultValue Ġ= Ġ" nombre ") Ġsort : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ RequestParam ( defaultValue Ġ= Ġ" asc ") Ġdirection : ĠString ) Ġ: ĠPage < D ish >? { ĊĠĠĠĠĠĠĠ Ġval Ġpaging Ġ= ĠPage Request . of ( page , Ġsize , ĠSort . by ( Sort . Direction . fromString ( direction ), Ġsort )) ĊĠĠĠĠĠĠĠ Ġreturn Ġ Ġdis h Repository . findAll ( paging ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ GetMapping ("/ { id }") ĊĠĠĠ Ġfun Ġfind ById (@ PathVariable ( value Ġ= Ġ" id ") Ġid : ĠLong ): ĠD ish ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġdis h Repository . findById ( id ). orElse ( null ); ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ PostMapping ĊĠĠĠ Ġfun Ġsave D ish (@ RequestBody Ġdis h : ĠD ish ) Ġ: ĠD ish ? { ĊĠĠĠĠĠĠ Ġreturn Ġdis h Repository . save ( dish ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Put Mapping ("/ { id }") ĊĠĠĠ Ġfun Ġupdate D ish (@ PathVariable ( value Ġ= Ġ" id ") Ġid : ĠLong , Ġ@ RequestBody Ġdis h Detail : ĠD ish ): ĠD ish ? { ĊĠĠĠĠĠĠĠ Ġval Ġdis h : ĠD ish Ġ= Ġdis h Repository . findById ( id ). orElse ( null ) ĊĊĠĠĠĠĠĠĠ Ġdis h . nombre = Ġdis h Detail . nombre ĊĠĠĠĠĠĠĠ Ġdis h . categoria = Ġdis h Detail . categoria ĊĠĠĠĠĠĠĠ Ġreturn Ġdis h Repository . save ( dish ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ@ Delete Mapping ("/ { id }") ĊĠĠĠ Ġfun Ġdelete D ish (@ PathVariable ( value Ġ= Ġ" id ") Ġid : ĠLong ): ĠResponseEntity < *> ? { ĊĠĠĠĠĠĠĠ Ġval Ġdis h : ĠD ish Ġ= Ġdis h Repository . findById ( id ). orElse ( null ) ĊĠĠĠĠĠĠĠ Ġdis h Repository . delete ( dish ) ĊĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . ok (). build < Any >(); ĊĠĠĠ Ġ} Ċ }