package Ġme . hor o . mil ky way . service Ċ Ċ import Ġme . hor o . mil ky way . domain . User Ċ import Ġme . hor o . mil ky way . repository . UserRepository Ċ import Ġorg . springframework . security . crypto . password . Password Encoder Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġorg . springframework . transaction . annotation . Transactional Ċ import Ġjava . util .* Ċ Ċ @ Service Ċ class ĠUser ServiceImpl ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġrepo : ĠUser Repository , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġencoder : ĠPassword Encoder Ċ ) Ġ: ĠUserService Ġ{ ĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġoverride Ġfun Ġtry Create ( user : ĠUser ): ĠOptional < User > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( repo . findBy Username ( user . username ). isPresent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠOptional . empty () ĊĠĠĠĠĠĠĠ Ġreturn ĠOptional . of ( repo . save ( user . copy ( password Ġ= Ġencoder . encode ( user . password )))) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Transactional ĊĠĠĠ Ġoverride Ġfun ĠfindBy Username ( username : ĠString ) Ġ= Ġrepo . findBy Username ( username ) Ċ }