package Ġcom . example . server Ċ Ċ import Ġnet . cord a . core . contracts . State And Ref Ċ import Ġnet . cord a . core . identity . C ord a X 5 0 0 Name Ċ import Ġnet . cord a . core . messaging . start Tracked Flow Ċ import Ġnet . cord a . core . messaging . vault Query By Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . http . HttpStatus Ċ import Ġorg . springframework . http . MediaType . APPLICATION _ JSON _ VALUE Ċ import Ġorg . springframework . http . MediaType . TEXT _ PLAIN _ VALUE Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . web . bind . annotation . GetMapping Ċ import Ġorg . springframework . web . bind . annotation . PostMapping Ċ import Ġorg . springframework . web . bind . annotation . RequestMapping Ċ import Ġorg . springframework . web . bind . annotation . RestController Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . format . DateTime Formatter Ċ import Ġjava . util .* Ċ import Ġjavax . servlet . http . HttpServletRequest Ċ Ċ val ĠSERVICE _ NAMES Ġ= ĠlistOf (" Not ary ", Ġ" Network ĠMap ĠService ", Ġ" Oracle ") Ċ Ċ /** Ċ Ġ* Ġ ĠA ĠSpring ĠBoot ĠServer ĠAPI Ġcontroller Ġfor Ġinteracting Ġwith Ġthe Ġnode Ġvia ĠRPC . Ċ Ġ*/ Ċ Ċ @ RestController Ċ @ RequestMapping ("/ api / example /") Ġ// ĠThe Ġpaths Ġfor ĠGET Ġand ĠPOST Ġrequests Ġare Ġrelative Ġto Ġthis Ġbase Ġpath . Ċ class ĠMain Controller ( rpc : ĠNode RPC Connection ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠLoggerFactory . getLogger ( RestController :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġmy Legal Name Ġ= Ġrpc . proxy . node Info (). legal Id entities . first (). name ĊĠĠĠ Ġprivate Ġval Ġproxy Ġ= Ġrpc . proxy ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġnode 's Ġname . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ GetMapping ( value Ġ= Ġ[ Ġ" me " Ġ], Ġproduces Ġ= Ġ[ ĠAP PLICATION _ JSON _ VALUE Ġ]) ĊĠĠĠ Ġfun Ġwho ami () Ġ= Ġmap Of (" me " Ġto Ġmy Legal Name ) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġall Ġparties Ġregistered Ġwith Ġthe Ġnetwork Ġmap Ġservice . ĠThese Ġnames Ġcan Ġbe Ġused Ġto Ġlook Ġup Ġident ities Ġusing ĊĠĠĠĠ Ġ* Ġthe Ġidentity Ġservice . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ GetMapping ( value Ġ= Ġ[ Ġ" peers " Ġ], Ġproduces Ġ= Ġ[ ĠAP PLICATION _ JSON _ VALUE Ġ]) ĊĠĠĠ Ġfun Ġget Peers (): ĠMap < String , ĠList < C ord a X 5 0 0 Name >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnode Info Ġ= Ġproxy . network Map Snapshot () ĊĠĠĠĠĠĠĠ Ġreturn Ġmap Of (" peers " Ġto Ġnode Info ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . legal Id entities . first (). name Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// filter Ġout Ġmyself , Ġnot ary Ġand Ġevent ual Ġnetwork Ġmap Ġstarted Ġby Ġdriver ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . organisation Ġ! in Ġ( SERVICE _ NAMES Ġ+ Ġmy Legal Name . organisation ) Ġ}) ĊĠĠĠ Ġ} ĊĊĊĊ Ċ } Ċ