package Ġcom . example . todo . services Ċ Ċ import Ġcom . example . todo . converters . Post Todo Item Dto To Todo Item Ċ import Ġcom . example . todo . converters . Todo Item To Get Todo Item Dto Ċ import Ġcom . example . todo . d tos . todo . Get Todo Item Dto Ċ import Ġcom . example . todo . d tos . todo . Post Todo Item Dto Ċ import Ġcom . example . todo . d tos . todo . Put Todo Item Dto Ċ import Ġcom . example . todo . model . Todo Item Ċ import Ġcom . example . todo . repositories . Todo Item Repository Ċ import Ġorg . springframework . dao . Empty Result Data AccessException Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . lang . IllegalArgumentException Ċ Ċ @ Service Ċ class ĠTodo ServiceImpl ( private Ġval Ġtodo Item Repository : ĠTodo Item Repository , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġtodo Item To Get Todo Item Dto : ĠTodo Item To Get Todo Item Dto , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprivate Ġval Ġpost Todo Item Dto To Todo Item : ĠPost Todo Item Dto To Todo Item ) Ġ: ĠTodo Service Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcreate New Todo ( post Todo Item Dto : ĠPost Todo Item Dto ): ĠGet Todo Item Dto Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġtodo Item Ġ= Ġpost Todo Item Dto To Todo Item . convert ( post Todo Item Dto ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnew Todo Item Ġ= Ġtodo Item Repository . save ( todo Item ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtodo Item To Get Todo Item Dto . convert ( new Todo Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete ById ( id : ĠLong ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtodo Item Repository . delete ById ( id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcatch Ġ( e : ĠEmpty Result Data AccessException ){ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( id : ĠLong , Ġput Todo Item Dto : ĠPut Todo Item Dto ) Ġ: ĠGet Todo Item Dto Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtodo Item For Update Ġ= Ġget Todo Item ById ( id ) Ġ?: Ġthrow ĠIllegalArgumentException (" Todo Item Ġwith Ġid : Ġ$ id Ġnot Ġfound .") ĊĊĠĠĠĠĠĠĠ Ġif (! put Todo Item Dto . name . isNull Or Blank ()){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtodo Item For Update . name Ġ= Ġput Todo Item Dto . name . toString () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif ( put Todo Item Dto . is Complete Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtodo Item For Update . is Complete Ġ= Ġput Todo Item Dto . is Complete ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġupdated Todo Item Ġ= Ġtodo Item Repository . save ( todo Item For Update ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtodo Item To Get Todo Item Dto . convert ( updated Todo Item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget ById ( id : ĠLong ) Ġ: ĠGet Todo Item Dto ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġtodo Ġ= Ġget Todo Item ById ( id ) ĊĊĠĠĠĠĠĠĠ Ġif ( todo Ġ!= Ġnull ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtodo Item To Get Todo Item Dto . convert ( todo ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Todo Item ById ( id : ĠLong ) Ġ= Ġtodo Item Repository . findById ( id ). orElse ( null ) ĊĊĠĠĠ Ġoverride Ġfun ĠgetAll (): ĠSet < Get Todo Item Dto > Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġtodos Ġ= Ġtodo Item Repository . findAll () ĊĊĠĠĠĠĠĠĠ Ġval Ġget Todo Item Dto s Ġ: ĠList < Get Todo Item Dto > Ġ= Ġtodos . map Ġ{ Ġtodo Item : ĠTodo Item Ġ-> Ġtodo Item To Get Todo Item Dto . convert ( todo Item ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġget Todo Item Dto s . toSet () ĊĠĠĠ Ġ} Ċ Ċ }