/** Ċ The ĠMIT ĠLicense Ċ Ċ Copyright Ġ( c ) Ġ 2 0 2 1 Ġk ong Ġ< con g co i 1 2 3 @ gmail . com > Ċ Ċ Permission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ of Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ in Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ to Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ copies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ furnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ċ The Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ all Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ċ THE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ IMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ FITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ AUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ LIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ OUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN Ċ THE ĠSOFTWARE . Ċ Ġ*/ Ċ package Ġcom . con g co i 1 2 3 . example . backend . controller Ċ Ċ import Ġcom . con g co i 1 2 3 . example . backend . dao . Skill Ċ import Ġcom . con g co i 1 2 3 . example . backend . dto . Skill Dto Ċ import Ġcom . con g co i 1 2 3 . example . backend . enum . Skill Type Ċ import Ġcom . con g co i 1 2 3 . example . backend . model . Skill Model Ċ import Ġcom . con g co i 1 2 3 . example . backend . service . Skill Service Ċ import Ġio . swagger . v 3 . o as . annotations . Operation Ċ import Ġio . swagger . v 3 . o as . annotations . tags . Tag Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . web . bind . annotation . PostMapping Ċ import Ġorg . springframework . web . bind . annotation . RequestBody Ċ import Ġorg . springframework . web . bind . annotation . RequestMapping Ċ import Ġorg . springframework . web . bind . annotation . RestController Ċ import Ġreactor . core . publisher . Mono Ċ import Ġjavax . validation . Valid Ċ Ċ @ RestController Ċ @ RequestMapping ("/ api ") Ċ @ Tag ( ĊĠĠĠ Ġname Ġ= Ġ" Cast ed ĠSk ills ĠAPIs ", ĊĠĠĠ Ġdescription Ġ= Ġ" All ĠAPIs Ġrelated Ġto Ġthe Ġcast ed Ġskills Ġfrom Ġplayers " Ċ ) Ċ class ĠSkill Controller ( ĊĠĠĠ Ġ@ Autowired Ġprivate Ġval Ġskill Service : ĠSkill Service Ċ ) Ġ{ ĊĊĠĠĠ Ġ@ PostMapping ( ĊĠĠĠĠĠĠĠ Ġvalue Ġ= Ġ["/ cast skill "] ĊĠĠĠ Ġ) ĊĠĠĠ Ġ@ Operation ( ĊĠĠĠĠĠĠĠ Ġdescription Ġ= Ġ" Player Ġcast Ġa Ġskill ", ĊĠĠĠĠĠĠĠ Ġrequest Body Ġ= Ġio . swagger . v 3 . o as . annotations . parameters . RequestBody () ĊĠĠĠ Ġ) ĊĠĠĠ Ġfun Ġcast Skill ( ĊĠĠĠĠĠĠĠ Ġ@ Valid Ġ@ RequestBody Ġskill Model : ĠSkill Model ĊĠĠĠ Ġ): ĠMono < Skill > Ġ= Ġskill Service . cast Skill ( ĊĠĠĠĠĠĠĠ ĠSkill Dto ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġskill Model . name , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtype Ġ= ĠSkill Type . from Int ( skill Model . type ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdamage Ġ= Ġskill Model . damage ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ). map Ġ{ Ġskill Dto Ġ-> ĊĠĠĠĠĠĠĠ ĠSkill ( skill Dto . skill Id , Ġskill Dto . type . value , Ġskill Dto . name , Ġskill Dto . damage , Ġskill Dto . effective ) ĊĠĠĠ Ġ} Ċ } Ċ