package Ġcom . seed company . cord tables . components . tables . admin . peers Ċ Ċ import Ġcom . seed company . cord tables . common . ErrorType Ċ import Ġcom . seed company . cord tables . common . Utility Ċ import Ġorg . springframework . beans . factory . annotation . Autowired Ċ import Ġorg . springframework . jdbc . core . Jdbc Template Ċ import Ġorg . springframework . stereotype . Controller Ċ import Ġorg . springframework . web . bind . annotation . Cross Origin Ċ import Ġorg . springframework . web . bind . annotation . PostMapping Ċ import Ġorg . springframework . web . bind . annotation . RequestBody Ċ import Ġorg . springframework . web . bind . annotation . ResponseBody Ċ import Ġorg . springframework . web . client . Rest Template Ċ import Ġjavax . sql . DataSource Ċ Ċ data Ġclass ĠPeer Confirm Request ( ĊĠĠĠ Ġval Ġurl : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġsource Token : ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġval Ġtarget Token : ĠString ? Ġ= Ġnull , Ċ ) Ċ Ċ data Ġclass ĠPeer Confirm Return ( ĊĠĠĠ Ġval Ġerror : ĠError Type , Ċ ) Ċ Ċ @ Cross Origin ( orig ins Ġ= Ġ[" http :// localhost : 3 3 3 3 ", Ġ" https :// dev . cord tables . com ", Ġ" https :// cord tables . com ", Ġ"* "]) Ċ @ Controller (" Admin Peers Confirm ") Ċ class ĠConfirm ( ĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġval Ġutil : ĠUtility , ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġval Ġds : ĠDataSource , ĊĊĠĠĠ Ġ@ Autowired ĊĠĠĠ Ġval Ġrest : ĠRest Template , Ċ ) Ġ{ ĊĠĠĠ Ġval Ġjdbc Template : ĠJdbc Template Ġ= ĠJdbc Template ( ds ) ĊĊĠĠĠ Ġ@ PostMapping (" admin / peers / confirm ") ĊĠĠĠ Ġ@ ResponseBody ĊĠĠĠ Ġfun Ġconfirm Handler (@ RequestBody Ġreq : ĠPeer Confirm Request ): ĠPeer Confirm Return Ġ{ ĊĊĠĠĠĠĠĠĠ Ġprintln ( req ) ĊĊĠĠĠĠĠĠĠ Ġvar Ġerror Type : ĠError Type ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġthis . ds . connection . use Ġ{ Ġconn Ġ-> ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// language = SQL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcheck Name Statement Ġ= Ġconn . prepareStatement ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselect Ġexists ( select Ġid Ġfrom Ġadmin . peers Ġwhere Ġurl Ġ= Ġ? Ġand Ġsource _ token Ġ= Ġ? ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Name Statement . setString ( 1 , Ġreq . url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcheck Name Statement . setString ( 2 , Ġreq . source Token ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġcheck Name Statement . executeQuery (); ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result . next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Found Ġ= Ġresult . getBoolean ( 1 ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( url Found ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjdbc Template . update (""" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate Ġadmin . peers ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Ġtarget _ token Ġ= Ġ?, ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl _ confirmed Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhere Ġurl Ġ= Ġ? ; ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ""" . trim Indent (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreq . target Token , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreq . url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPeer Confirm Return ( ErrorType . NoError ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" peer Ġnot Ġfound ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠPeer Confirm Return ( ErrorType . Peer Not Present ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠPeer Confirm Return ( ErrorType . Unknown Error ) ĊĠĠĠ Ġ} Ċ Ċ }