package Ġcom . ong dev . request . services . impl s Ċ Ċ import Ġcom . ong dev . request . exceptions . ude my . U de my Request Creation Exception Ċ import Ġcom . ong dev . request . exceptions . ude my . U de my Request Delete FailedException Ċ import Ġcom . ong dev . request . exceptions . ude my . U de my Request NotFoundException Ċ import Ġcom . ong dev . request . exceptions . ude my . U de my Request Update FailedException Ċ import Ġcom . ong dev . request . models . U de my Request Ċ import Ġcom . ong dev . request . models . Vote Ċ import Ġcom . ong dev . request . models . d tos . ude my . U de my Request Creation TO Ċ import Ġcom . ong dev . request . models . d tos . ude my . U de my Request TO Ċ import Ġcom . ong dev . request . models . d tos . ude my . U de my Request Updating TO Ċ import Ġcom . ong dev . request . models . map pers . to U de my Request Ċ import Ġcom . ong dev . request . models . map pers . to U de my Request TO Ċ import Ġcom . ong dev . request . models . map pers . to U de my Request TO Page Ċ import Ġcom . ong dev . request . repositories . U de my Request Repository Ċ import Ġcom . ong dev . request . services . U de my Request Service Ċ import Ġorg . springframework . cache . annotation . Cache Ev ict Ċ import Ġorg . springframework . cache . annotation . Cache able Ċ import Ġorg . springframework . cache . annotation . Caching Ċ import Ġorg . springframework . data . domain . Page Ċ import Ġorg . springframework . data . domain . Page able Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġjava . util .* Ċ Ċ @ Service Ċ class ĠU de my Request ServiceImpl ( private Ġval Ġ ude my Request Repository : ĠU de my Request Repository ) Ġ: ĠU de my Request Service Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġfind ById Editable Request ByUser ( requestId : ĠString , Ġemail : ĠString ): ĠU de my Request Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġfind ById ( requestId ) ĊĠĠĠĠĠĠĠ Ġif ( request . email Ġ!= Ġemail ){ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠU de my Request Update FailedException (" This Ġis Ġnot Ġyour Ġrequest , Ġdont Ġtry Ġto Ġtrick Ġme Ġ: D ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġrequest ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġfind ById ( requestId : ĠString ): ĠU de my Request Ġ= Ġ ude my Request Repository ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. findById ( UUID . fromString ( requestId )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. orElse Throw Ġ{ ĠU de my Request NotFoundException () Ġ} ĊĊĠĠĠ Ġ@ Cache able (" ude my ") ĊĠĠĠ Ġoverride Ġfun Ġget Requests ( page able : ĠPage able ): ĠPage < U de my Request TO > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Page : ĠPage < U de my Request > Ġ= Ġ ude my Request Repository . findAll ( page able ) ĊĠĠĠĠĠĠĠ Ġreturn Ġrequest Page . to U de my Request TO Page () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Cache able (" my - ude my ") ĊĠĠĠ Ġoverride Ġfun Ġget My Requests ( page able : ĠPage able , Ġemail : ĠString ): ĠPage < U de my Request TO > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Page : ĠPage < U de my Request > Ġ= Ġ ude my Request Repository . findAll By Email ( email , Ġpage able ) ĊĠĠĠĠĠĠĠ Ġreturn Ġrequest Page . to U de my Request TO Page () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Caching ( ev ict = Ġ[ ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" ude my ", Ġall Entries Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" my - ude my ", Ġall Entries Ġ= Ġtrue ) ĊĠĠĠ Ġ]) ĊĠĠĠ Ġoverride Ġfun Ġcreate Request ( request TO : ĠU de my Request Creation TO , Ġemail : ĠString ): ĠU de my Request TO Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġ ude my Request Ġ= Ġrequest TO . to U de my Request () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ ude my Request . email Ġ= Ġemail ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ ude my Request Repository . save ( ude my Request ). to U de my Request TO () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠU de my Request Creation Exception ( ex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Caching ( ev ict = Ġ[ ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" ude my ", Ġall Entries Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" my - ude my ", Ġall Entries Ġ= Ġtrue ) ĊĠĠĠ Ġ]) ĊĠĠĠ Ġoverride Ġfun Ġedit Request ( request TO : ĠU de my Request Updating TO , ĠrequestId : ĠString , Ġemail : ĠString ): ĠU de my Request TO Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġrequest Ġ= Ġfind ById Editable Request ByUser ( requestId , Ġemail ) ĊĠĠĠĠĠĠĠ Ġrequest Ġ= Ġrequest TO . to U de my Request ( request ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ ude my Request Repository . save ( request ). to U de my Request TO () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠU de my Request Update FailedException ( ex Ġ= Ġex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Caching ( ev ict = Ġ[ ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" ude my ", Ġall Entries Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" my - ude my ", Ġall Entries Ġ= Ġtrue ) ĊĠĠĠ Ġ]) ĊĠĠĠ Ġoverride Ġfun Ġdelete Request ( requestId : ĠString , Ġemail : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġfind ById Editable Request ByUser ( requestId , Ġemail ) ĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ ude my Request Repository . delete ( request ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex Ġ: ĠIllegalArgumentException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠU de my Request Delete FailedException ( ex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Caching ( ev ict = Ġ[ ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" ude my ", Ġall Entries Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" my - ude my ", Ġall Entries Ġ= Ġtrue ) ĊĠĠĠ Ġ]) ĊĠĠĠ Ġoverride Ġfun Ġchange Activation ( requestId : ĠString , Ġemail : ĠString ): ĠU de my Request TO Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġfind ById Editable Request ByUser ( requestId , Ġemail ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . isActive Ġ= Ġ! request . isActive ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ ude my Request Repository . save ( request ). to U de my Request TO () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠU de my Request Update FailedException ( ex Ġ= Ġex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Caching ( ev ict = Ġ[ ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" ude my ", Ġall Entries Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" my - ude my ", Ġall Entries Ġ= Ġtrue ) ĊĠĠĠ Ġ]) ĊĠĠĠ Ġoverride Ġfun Ġarchive ( requestId : ĠString , Ġemail : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= Ġfind ById ( requestId ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrequest . is Arch ived Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ ude my Request Repository . save ( request ). to U de my Request TO () ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠU de my Request Update FailedException ( ex Ġ= Ġex ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Caching ( ev ict = Ġ[ ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" ude my ", Ġall Entries Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" my - ude my ", Ġall Entries Ġ= Ġtrue ) ĊĠĠĠ Ġ]) ĊĠĠĠ Ġoverride Ġfun Ġup Vote ( requestId : ĠString , Ġemail : ĠString ) Ġ: ĠU de my Request TO Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġ ude my Request Ġ= Ġfind ById ( requestId ) ĊĠĠĠĠĠĠĠ Ġval Ġexisted Vote Ġ= Ġ ude my Request . votes . find Ġ{ Ġvote Ġ-> Ġvote . email Ġ== Ġemail Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( exist ed Vote Ġ!= Ġnull Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! exist ed Vote . is Up ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexisted Vote . is Up Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ ude my Request Repository . save ( ude my Request ). to U de my Request TO () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvote Ġ= ĠV ote ( null , Ġemail , Ġtrue ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ ude my Request . votes . add ( vote ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ ude my Request Repository . save ( ude my Request ). to U de my Request TO () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ ude my Request . to U de my Request TO () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Caching ( ev ict = Ġ[ ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" ude my ", Ġall Entries Ġ= Ġtrue ), ĊĠĠĠĠĠĠĠ ĠCache Ev ict (" my - ude my ", Ġall Entries Ġ= Ġtrue ) ĊĠĠĠ Ġ]) ĊĠĠĠ Ġoverride Ġfun Ġdown Vote ( requestId : ĠString , Ġemail : ĠString ) Ġ: ĠU de my Request TO { ĊĠĠĠĠĠĠĠ Ġval Ġ ude my Request Ġ= Ġfind ById ( requestId ) ĊĠĠĠĠĠĠĠ Ġval Ġexisted Vote Ġ= Ġ ude my Request . votes . find Ġ{ Ġvote Ġ-> Ġvote . email Ġ== Ġemail Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( exist ed Vote Ġ!= Ġnull Ġ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( exist ed Vote . is Up ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexisted Vote . is Up Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ ude my Request Repository . save ( ude my Request ). to U de my Request TO () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvote Ġ= ĠV ote ( null , Ġemail , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ ude my Request . votes . add ( vote ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġ ude my Request Repository . save ( ude my Request ). to U de my Request TO () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ ude my Request . to U de my Request TO () ĊĠĠĠ Ġ} Ċ }