package Ġcom . example . cms . domains . site contents . controllers . web Ċ Ċ import Ġcom . example . cms . domains . site contents . models . d tos . Site Content Dto Ċ import Ġcom . example . cms . domains . site contents . models . map pers . Site Content Mapper Ċ import Ġcom . example . cms . domains . site contents . services . Site Content Service Ċ import Ġcom . example . cms . domains . sites . models . entities . Site Ċ import Ġcom . example . cms . domains . sites . models . map pers . Site Mapper Ċ import Ġcom . example . cms . domains . sites . services . Site Service Ċ import Ġcom . example . cms . routing . Route Ċ import Ġcom . example . common . utils . Exception Util Ċ import Ġcom . example . core web . domains . base . controllers . Crud Web Controller V 3 Ċ import Ġcom . example . core web . domains . base . models . enums . Sort By Fields Ċ import Ġcom . example . core web . utils . Page able Params Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . data . domain . Sort Ċ import Ġorg . springframework . stereotype . Controller Ċ import Ġorg . springframework . ui . Model Ċ import Ġorg . springframework . web . bind . annotation .* Ċ import Ġorg . springframework . web . servlet . mvc . support . Redirect Attributes Ċ import Ġjavax . validation . Valid Ċ Ċ @ Controller Ċ class ĠSite Content Web Controller Ġ@ Autowired Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġsite Content Service : ĠSite Content Service , ĊĠĠĠ Ġprivate Ġval Ġsite Content Mapper : ĠSite Content Mapper , ĊĠĠĠ Ġprivate Ġval Ġsite Service : ĠSite Service , ĊĠĠĠ Ġprivate Ġval Ġsite Mapper : ĠSite Mapper Ċ ) Ġ: ĠCr ud Web Controller V 3 < Site Content Dto > Ġ{ ĊĊĠĠĠ Ġ@ GetMapping ( Route . V 1 . WEB _ SEARCH _ SITE CONTENTS ) ĊĠĠĠ Ġoverride Ġfun Ġsearch ( ĊĠĠĠĠĠĠĠ Ġ@ RequestParam (" q ", Ġrequired Ġ= Ġfalse ) Ġquery : ĠString ?, ĊĠĠĠĠĠĠĠ Ġ@ RequestParam (" page ", ĠdefaultValue Ġ= Ġ" 0 ") Ġpage : ĠInt , ĊĠĠĠĠĠĠĠ Ġ@ RequestParam (" size ", ĠdefaultValue Ġ= Ġ" 1 0 ") Ġsize : ĠInt , ĊĠĠĠĠĠĠĠ Ġ@ RequestParam (" sort _ by ", ĠdefaultValue Ġ= Ġ" ID ") ĠsortBy : ĠSort By Fields , ĊĠĠĠĠĠĠĠ Ġ@ RequestParam (" sort _ direction ", ĠdefaultValue Ġ= Ġ" DESC ") Ġdirection : ĠSort . Direction , ĊĠĠĠĠĠĠĠ Ġmodel : ĠModel ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentities Ġ= Ġthis . site Content Service . search ( Page able Params . of ( query , Ġpage , Ġsize , ĠsortBy , Ġdirection )) ĊĠĠĠĠĠĠĠ Ġmodel . addAttribute (" site contents ", Ġentities . map Ġ{ Ġthis . site Content Mapper . map ( it ) Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġ" site contents / fragments / all " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GetMapping ( Route . V 1 . WEB _ FIND _ SITE CONTENT ) ĊĠĠĠ Ġoverride Ġfun Ġfind ( ĊĠĠĠĠĠĠĠ Ġ@ PathVariable (" id ") Ġid : ĠLong , ĊĠĠĠĠĠĠĠ Ġmodel : ĠModel ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentity Ġ= Ġthis . site Content Service . find ( id ). orElse Throw Ġ{ ĠException Util . not Found (" Site Content ", Ġid ) Ġ} ĊĠĠĠĠĠĠĠ Ġmodel . addAttribute (" site content ", Ġthis . site Content Mapper . map ( entity )) ĊĠĠĠĠĠĠĠ Ġreturn Ġ" site contents / fragments / details " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GetMapping ( Route . V 1 . WEB _ PRE VIEW _ SITE CONTENT ) ĊĠĠĠ Ġfun Ġpreview ( ĊĠĠĠĠĠĠĠ Ġ@ PathVariable (" id ") Ġid : ĠLong , ĊĠĠĠĠĠĠĠ Ġmodel : ĠModel ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentity Ġ= Ġthis . site Content Service . find ( id ). orElse Throw Ġ{ ĠException Util . not Found (" Site Content ", Ġid ) Ġ} ĊĠĠĠĠĠĠĠ Ġmodel . addAttribute (" content ", Ġentity . content ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ" site contents / fragments / preview " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠĠĠ Ġ@ GetMapping ( Route . V 1 . WEB _ CREATE _ SITE CONTENT _ PAGE ) ĊĠĠĠ Ġoverride Ġfun Ġcreate Page ( model : ĠModel ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ" site contents / fragments / create " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GetMapping ( Route . V 1 . WEB _ CREATE _ SITE CONTENT _ PAGE ) ĊĠĠĠ Ġfun Ġcreate Site Content Page ( ĊĠĠĠĠĠĠĠ Ġ@ RequestParam (" site _ id ") Ġsite Id : ĠLong , ĊĠĠĠĠĠĠĠ Ġmodel : ĠModel ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsite Ġ= Ġthis . site Service . find ( site Id ). orElse Throw Ġ{ ĠException Util . not Found ( Site :: class . java , Ġsite Id ) Ġ} ĊĠĠĠĠĠĠĠ Ġmodel . addAttribute (" site ", Ġthis . site Mapper . map ( site )) ĊĠĠĠĠĠĠĠ Ġreturn Ġ" site contents / fragments / create " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ PostMapping ( Route . V 1 . WEB _ CREATE _ SITE CONTENT ) ĊĠĠĠ Ġoverride Ġfun Ġcreate ( ĊĠĠĠĠĠĠĠ Ġ@ Valid Ġ@ Model Attribute Ġdto : ĠSite Content Dto , ĊĠĠĠĠĠĠĠ Ġredirect Attributes : ĠRedirect Attributes ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentity Ġ= Ġthis . site Content Service . save ( this . site Content Mapper . map ( dto , Ġnull )) ĊĠĠĠĠĠĠĠ Ġredirect Attributes . add Flash Attribute (" message ", Ġ" Success !! ") ĊĠĠĠĠĠĠĠ Ġreturn Ġ" redirect :${ Route . V 1 . WEB _ FIND _ SITE CONTENT . replace ("{ id }", Ġentity . id . toString ()) }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ GetMapping ( Route . V 1 . WEB _ UPDATE _ SITE CONTENT _ PAGE ) ĊĠĠĠ Ġoverride Ġfun Ġupdate Page (@ PathVariable (" id ") Ġid : ĠLong , Ġmodel : ĠModel ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġentity Ġ= Ġthis . site Content Service . find ( id ). orElse Throw Ġ{ ĠException Util . not Found (" Site Content ", Ġid ) Ġ} ĊĠĠĠĠĠĠĠ Ġmodel . addAttribute (" site content ", Ġthis . site Content Mapper . map ( entity )) ĊĠĠĠĠĠĠĠ Ġmodel . addAttribute (" site ", Ġthis . site Mapper . map ( entity . site )) ĊĠĠĠĠĠĠĠ Ġreturn Ġ" site contents / fragments / create " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ PostMapping ( Route . V 1 . WEB _ UPDATE _ SITE CONTENT ) ĊĠĠĠ Ġoverride Ġfun Ġupdate ( ĊĠĠĠĠĠĠĠ Ġ@ PathVariable (" id ") Ġid : ĠLong , ĊĠĠĠĠĠĠĠ Ġ@ Valid Ġ@ Model Attribute Ġdto : ĠSite Content Dto , ĊĠĠĠĠĠĠĠ Ġredirect Attributes : ĠRedirect Attributes ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġentity Ġ= Ġthis . site Content Service . find ( id ). orElse Throw Ġ{ ĠException Util . not Found (" Site Content ", Ġid ) Ġ} ĊĠĠĠĠĠĠĠ Ġentity Ġ= Ġthis . site Content Service . save ( this . site Content Mapper . map ( dto , Ġentity )) ĊĠĠĠĠĠĠĠ Ġredirect Attributes . add Flash Attribute (" message ", Ġ" Success !! ") ĊĠĠĠĠĠĠĠ Ġreturn Ġ" redirect :${ Route . V 1 . WEB _ FIND _ SITE CONTENT . replace ("{ id }", Ġentity . id . toString ()) }" ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ PostMapping ( Route . V 1 . WEB _ DELETE _ SITE CONTENT ) ĊĠĠĠ Ġoverride Ġfun Ġdelete ( ĊĠĠĠĠĠĠĠ Ġ@ PathVariable (" id ") Ġid : ĠLong , ĊĠĠĠĠĠĠĠ Ġredirect Attributes : ĠRedirect Attributes ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . site Content Service . delete ( id , Ġtrue ) ĊĠĠĠĠĠĠĠ Ġredirect Attributes . add Flash Attribute (" message ", Ġ" Deleted !! ") ĊĠĠĠĠĠĠĠ Ġreturn Ġ" redirect :${ Route . V 1 . WEB _ SEARCH _ SITE CONTENTS }"; ĊĠĠĠ Ġ} Ċ Ċ } Ċ