package Ġcom . h ml r . api . controllers Ċ Ċ import Ġcom . h ml r . api . common . Vault Query Helper Consumer Ċ import Ġcom . h ml r . api . common . models .* Ċ import Ġcom . h ml r . api . rpc Client . Node RPC Connection Ċ import Ġcom . h ml r . flows . Confirm Payment Received Flow Ċ import Ġcom . h ml r . states . Payment Confirmation State Ċ import Ġnet . cord a . core . node . services . Identity Service Ċ import Ġnet . cord a . core . utilities . logger For Ċ import Ġorg . springframework . http . MediaType Ċ import Ġorg . springframework . http . Response Entity Ċ import Ġorg . springframework . web . bind . annotation .* ĊĊ Ċ @ Suppress (" unused ") Ċ @ RestController Ċ @ RequestMapping ("/ api ") Ċ class ĠApi Controller (@ Suppress (" Can Be Parameter ") Ġprivate Ġval Ġrpc : ĠNode RPC Connection ) Ġ: ĠVault Query Helper Consumer () Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġrpc Ops Ġ= Ġrpc . proxy ĊĠĠĠ Ġoverride Ġval Ġmy Identity Ġ= Ġrpc Ops . node Info (). legal Id entities . first () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger Ġ= Ġlogger For < Api Controller >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturn Ġthe Ġnode 's Ġname ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ GetMapping ( value Ġ= Ġ"/ me ", Ġproduces Ġ= ĠarrayOf ( MediaType . APPLICATION _ JSON _ VALUE )) ĊĠĠĠ Ġfun Ġme () Ġ= Ġmap Of (" me " Ġto Ġmy Identity . to DTO WithName ()) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ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 Ġ= ĠarrayOf ( MediaType . APPLICATION _ JSON _ VALUE )) ĊĠĠĠ Ġfun Ġpeers () Ġ= Ġmap Of (" peers " Ġto Ġrpc Ops . network Map Snapshot () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġnode Info Ġ-> Ġnode Info . legal Id entities . first () Ġ!= Ġmy Identity Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . legal Id entities . first (). to DTO WithName () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. toList ()) ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠTell Ġthe Ġnetwork Ġthat Ġpayment Ġhas Ġbeen Ġreceived ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ Put Mapping ( value Ġ= Ġ"/ titles /{ title - number }/ confirm - payment ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconsume s Ġ= ĠarrayOf ( MediaType . APPLICATION _ JSON _ VALUE ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġproduces Ġ= ĠarrayOf ( MediaType . APPLICATION _ JSON _ VALUE )) ĊĠĠĠ Ġfun Ġconfirm Payment For Title (@ PathVariable (" title - number ") Ġtitle Number : ĠString ): ĠResponseEntity < Any ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" POST Ġ/ titles /$ title Number / confirm - payment ") ĊĊĠĠĠĠĠĠĠ Ġval Ġpayment State Ġ= Ġvault Query Helper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Get Ġdetails Ġof Ġpayment ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstate And Instant : ĠState And Instant < Payment Confirmation State >? Ġ= ĠgetState By Ġ{ Ġit . state . data . title ID Ġ== Ġtitle Number Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Return Ġ 4 0 4 Ġif Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate And Instant Ġ?: Ġreturn ĠResponseEntity . not Found (). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġstate And Instant . state ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresponse Entity From Flow Handle Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . start Flow Dynamic ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠConfirm Payment Received Flow :: class . java , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpayment State . linear Id . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġall Ġtitles ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ GetMapping ( value Ġ= Ġ"/ titles ", Ġproduces Ġ= ĠarrayOf ( MediaType . APPLICATION _ JSON _ VALUE )) ĊĠĠĠ Ġfun Ġget Titles (): ĠResponseEntity < Any ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" GET Ġ/ titles ") ĊĊĠĠĠĠĠĠĠ Ġvault Query Helper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Build ĠTitle ĠTransfer ĠD TO s ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Transfer DTO Ġ= Ġbuild Title Transfer DTO s () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Return ĠTitle ĠTransfer ĠD TO s ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . ok (). body ( title Transfer DTO ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġa Ġtitle ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ GetMapping ( value Ġ= Ġ"/ titles /{ title - number }", Ġproduces Ġ= ĠarrayOf ( MediaType . APPLICATION _ JSON _ VALUE )) ĊĠĠĠ Ġfun Ġget Title (@ PathVariable (" title - number ") Ġtitle Number : ĠString ): ĠResponseEntity < Any ?> Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info (" GET Ġ/ titles /$ title Number ") ĊĊĠĠĠĠĠĠĠ Ġvault Query Helper Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Build ĠTitle ĠTransfer ĠD TO ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Transfer DTO Ġ= Ġbuild Title Transfer DTO ( title Number ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Return Ġ 4 0 4 Ġif Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Transfer DTO Ġ?: Ġreturn ĠResponseEntity . not Found (). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Return ĠTitle ĠTransfer ĠD TO ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponseEntity . ok (). body ( title Transfer DTO ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ