package Ġbr . com . strn . erp . api . service . ident ific acao Ċ Ċ import Ġbr . com . strn . erp . api . database . dao . ident ific acao . Email Repository Ċ import Ġbr . com . strn . erp . api . database . entities . ident ific acao . Email Ċ import Ġbr . com . strn . erp . api . errors . Record NotFoundException Ċ import Ġorg . springframework . data . domain . Page Ċ import Ġorg . springframework . data . domain . Page able Ċ import Ġorg . springframework . stereotype . Service Ċ Ċ @ Service Ċ class ĠEmail Service ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrepository : ĠEmail Repository Ċ ) Ġ{ ĊĠĠĠ Ġfun ĠfindAll ( page able : ĠPage able ): ĠPage < Email > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . findAll ( page able ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġfind ById ( id : ĠLong ): ĠEmail Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . findById ( id ). orElse Throw Ġ{ ĠRecord NotFoundException ( Email :: class , Ġid ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠfindBy Handle ( handle : ĠString ): ĠEmail Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . findBy Handle ( handle ) Ġ?: Ġthrow ĠRecord NotFoundException ( Email :: class , Ġhandle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd ( email : ĠEmail ): ĠEmail Ġ{ ĊĠĠĠĠĠĠĠ Ġemail . id Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġemail . valid ado Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . save ( email ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ( email : ĠEmail , Ġid : ĠLong ): ĠEmail Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġemail Db Ġ= Ġfind ById ( id ) ĊĠĠĠĠĠĠĠ Ġreturn Ġupdate ( email , Ġemail Db ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ( email : ĠEmail , Ġhandle : ĠString ): ĠEmail Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġemail Db Ġ= ĠfindBy Handle ( handle ) ĊĠĠĠĠĠĠĠ Ġreturn Ġupdate ( email , Ġemail Db ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( id : ĠLong ): ĠEmail Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . soft Delete ( id ) Ġ?: Ġthrow ĠRecord NotFoundException ( Email :: class , Ġid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġdelete ( handle : ĠString ): ĠEmail Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . soft Delete ( handle ) Ġ?: Ġthrow ĠRecord NotFoundException ( Email :: class , Ġhandle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate ( old : ĠEmail , Ġnew : ĠEmail ): ĠEmail Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( new . email Ġ!= Ġold . email ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew . email Ġ= Ġold . email ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew . valid ado Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnew . valid ado Ġ= Ġold . valid ado ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġrepository . save ( new ) ĊĠĠĠ Ġ} Ċ }