/* Ċ Ġ* ĠĠ ĠCopyright Ġ( c ) Ġ 2 0 2 0 Ġ ĠTh i ago ĠL op es Ġda ĠSil va Ċ Ġ* Ċ Ġ* ĠĠ ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* ĠĠ Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠĠ ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠĠ ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* ĠĠ Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠĠ ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠĠ ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* ĠĠ Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġbr . lo pes . goal api . goal . api . domain . service . goal . use case Ċ Ċ import Ġbr . lo pes . goal api . goal . api . data . entity . Goal Ċ import Ġbr . lo pes . goal api . goal . api . data . repository . Goal Repository Contract Ċ import Ġbr . lo pes . goal api . goal . api . data . repository . UserRepository Contract Ċ import Ġbr . lo pes . goal api . goal . api . domain . service . UseCase Contract Ċ import Ġbr . lo pes . goal api . goal . api . domain . service . goal . mapper . to Goal Db Ċ import Ġbr . lo pes . goal api . goal . api . domain . service . goal . model . Goal Entity Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġjava . lang . IllegalArgumentException Ċ Ċ class ĠSave Goal UC Ġ@ Autowired Ġconstructor ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġgoal Repository Contract : ĠGoal Repository Contract , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġuser Repository Contract : ĠUser Repository Contract Ċ ): ĠUse Case Contract < Goal Entity , ĠGoal > Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġexecute ( input : ĠGoal Entity ): ĠGoal Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġgoal Db : Goal ĊĠĠĠĠĠĠĠ Ġif ( input . id Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Db Ġ= Ġuser Repository Contract . getOne ( input . userId ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoal Db Ġ= Ġinput . to Goal Db () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġgoal Db . customer Ġ= Ġuser Db ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġgoal Repository Contract . save ( goal Db ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠIllegalArgumentException (" This Ġoperation Ġupdate Ġis Ġnot Ġsupported Ġon ĠSave Goal UC ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }