package Ġcom . ins urance Claim . api Ċ Ċ import Ġcom . ins urance Claim . flow . Apply Claim Flow Ċ import Ġcom . ins urance Claim . flow . Under writing Creation Flow Ċ import Ġcom . ins urance Claim . flow . Claim Response Flow Ċ import Ġcom . ins urance Claim . flow . Under writing Response Flow Ċ import Ġcom . ins urance Claim . state . Claim State Ċ import Ġcom . ins urance Claim . state . Under writing State Ċ import Ġnet . cord a . core . identity . C ord a X 5 0 0 Name Ċ import Ġnet . cord a . core . messaging . C ord a RP CO ps Ċ import Ġnet . cord a . core . messaging . vault Query By Ċ import Ġnet . cord a . core . node . services . Identity Service Ċ import Ġnet . cord a . core . utilities . get OrThrow Ċ import Ġnet . cord a . core . utilities . logger For Ċ import Ġorg . slf 4 j . Logger Ċ import Ġjavax . ws . rs .* Ċ import Ġjavax . ws . rs . core . MediaType Ċ import Ġjavax . ws . rs . core . Response Ċ import Ġjavax . ws . rs . core . Response . Status .* Ċ val ĠSERVICE _ NAMES Ġ= ĠlistOf (" Not ary ", Ġ" Network ĠMap ĠService ") Ċ Ċ // ĠThis ĠAPI Ġis Ġaccessible Ġfrom Ġ/ api / ins urance . ĠAll Ġpaths Ġspecified Ġbelow Ġare Ġrelative Ġto Ġit . Ċ @ Path (" claim ") Ċ class ĠClaim Api ( private Ġval Ġrpc Ops : ĠC ord a RP CO ps ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġmy Legal Name : ĠC ord a X 5 0 0 Name Ġ= Ġrpc Ops . node Info (). legal Id entities . first (). name ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlogger : ĠLogger Ġ= Ġlogger For < Claim Api >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠReturns Ġthe Ġnode 's Ġname . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġ@ Path (" me ") ĊĠĠĠ Ġ@ Produces ( MediaType . APPLICATION _ JSON ) ĊĠĠĠ Ġ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 ]. ĊĠĠĠĠ Ġ*/ ĊĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġ@ Path (" peers ") ĊĠĠĠ Ġ@ Produces ( MediaType . APPLICATION _ JSON ) ĊĠĠĠ Ġfun Ġget Peers (): ĠMap < String , ĠList < C ord a X 5 0 0 Name >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġnode Info Ġ= Ġrpc Ops . 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 ) Ġ}) ĊĠĠĠ Ġ} ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠDisplays Ġall ĠIn sur ance ĠClaim Application Ġstates Ġthat Ġexist Ġin Ġthe Ġnode 's Ġvault . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġ@ Path (" Application States ") ĊĠĠĠ Ġ@ Produces ( MediaType . APPLICATION _ JSON ) ĊĠĠĠ Ġfun Ġget Application States () Ġ= Ġrpc Ops . vault Query By < Claim State >(). states ĊĊĊĠĠĠ Ġ@ GET ĊĠĠĠ Ġ@ Path (" Under writing States ") ĊĠĠĠ Ġ@ Produces ( MediaType . APPLICATION _ JSON ) ĊĠĠĠ Ġfun Ġget Under writing States () Ġ= Ġrpc Ops . vault Query By < Under writing State >(). states ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠInit i ates ĠIn sur ance ĠClaim Application Ġflow . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ@ PUT ĊĠĠĠ Ġ@ Path (" create - ins urance ") ĊĠĠĠ Ġfun Ġcreate Ins urance (@ QueryParam (" value ") Ġvalue : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" reason ") Ġreason : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" ins urance ID ") Ġins urance ID : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" type ") Ġtype : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam Ġ(" fname ") Ġfname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam Ġ(" lname ") Ġl name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam Ġ(" address ") Ġaddress : ĠString ): ĠResponse ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġins urance Status : ĠString Ġ= Ġ" RECE IVED " ĊĠĠĠĠĠĠĠ Ġval Ġcompany Name = C ord a X 5 0 0 Name . parse (" O = Party B , ĠL = New ĠYork , ĠC = US ") ĊĠĠĠĠĠĠĠ Ġval Ġins urer Node Ġ= Ġrpc Ops . well Known Party From X 5 0 0 Name ( company Name ) Ġ?: ĊĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" Company Ġnamed Ġ$ company Name Ġcannot Ġbe Ġfound .\ n "). build () ĊĊĠĠĠĠĠĠĠ Ġif Ġ( value Ġ<= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" Ġparameter Ġ' value ' Ġmust Ġbe Ġnon - negative .\ n "). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( ins urance ID Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" ĠIn sur ance ĠID Ġis Ġmissing .\ n "). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( fname Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" First Ġname Ġis Ġmissing . Ġ\ n "). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( lname Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" Last Ġname Ġis Ġmissing . Ġ\ n "). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsigned Tx Ġ= Ġrpc Ops ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start Flow Dynamic ( Apply Claim Flow . Claim Init iator :: class . java , ins urer Node , value , reason , fname , lname , address , ins urance ID , type , ins urance Status ). returnValue . get OrThrow () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . status ( CREATED ). entity (" Transaction Ġid Ġ${ signed Tx . id } Ġcommitted Ġto Ġledger .\ n "). build () ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error ( ex . message , Ġex ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . status ( BAD _ REQUEST ). entity ( ex . message !! ). build () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠInit i ates ĠCompany Ġforwarding ĠClaim Application Ġto ĠUnder writing . ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ PUT ĊĠĠĠĠĠĠĠ Ġ@ Path (" ins urance - under writing ") ĊĠĠĠĠĠĠĠ Ġ@ Cons umes ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠ Ġfun Ġins urance Under writing (@ QueryParam Ġ(" fname ") Ġfname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam Ġ(" lname ") Ġl name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" ins urance ID ") Ġins urance ID : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" type ") Ġtype : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" value ") Ġvalue : Int , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" reason ") Ġreason : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" ins urance Status ") Ġins urance Status : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" claim ID ") Ġclaim ID : ĠString ): ĠResponse ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunder writer Ġ= C ord a X 5 0 0 Name . parse (" O = Party C , ĠL = Par is , ĠC = FR ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunder writer Node Ġ= Ġrpc Ops . well Known Party From X 5 0 0 Name ( under writer ) Ġ?: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" Under writer Ġnamed Ġ$ under writer Ġcannot Ġbe Ġfound .\ n "). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( fname == null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" parameter Ġ' First ĠName ' Ġmissing Ġor Ġhas Ġwrong Ġformat .\ n "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( lname == null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" parameter Ġ' Last ĠName ' Ġmissing Ġor Ġhas Ġwrong Ġformat .\ n "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( ins urance Status == null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" parameter Ġ' Ins urance ĠStatus ' Ġmissing Ġor Ġhas Ġwrong Ġformat .\ n "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( ins urance ID == null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" parameter Ġ' Ins urance Ġid ' Ġmissing Ġor Ġhas Ġwrong Ġformat .\ n "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsigned Tx Ġ= Ġrpc Ops ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start Flow Dynamic ( Under writing Creation Flow . Under writing Init iator :: class . java , under writer Node , fname , lname , ins urance ID , type , value , reason , ins urance Status , claim ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. returnValue . get OrThrow () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . status ( CREATED ). entity (" Transaction Ġid Ġ${ signed Tx . id } Ġcommitted Ġto Ġledger .\ n "). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error ( ex . message , Ġex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . status ( BAD _ REQUEST ). entity ( ex . message !! ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠInit i ates ĠUnder writing ĠEvaluation Ġand Ġresponse Ġto Ġthe ĠIn sur ance ĠCompany Ġflow ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ PUT ĊĠĠĠĠĠĠĠ Ġ@ Path (" under writing - evaluation ") ĊĠĠĠĠĠĠĠ Ġ@ Cons umes ( MediaType . APPLICATION _ JSON ) ĊĠĠĠĠĠĠĠ Ġfun Ġunder writing Evaluation (@ QueryParam (" reference ID ") Ġreference ID : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" ins urance Status ") Ġins urance Status : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" fname ") Ġfname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" lname ") Ġl name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" value ") Ġvalue : ĠInt , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" approved Amount ") Ġapproved Amount : ĠInt ): ĠResponse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcompany Name = C ord a X 5 0 0 Name . parse (" O = Party B , ĠL = New ĠYork , ĠC = US ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġins urer Node Ġ= Ġrpc Ops . well Known Party From X 5 0 0 Name ( company Name ) Ġ?: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" Ins urance ĠCompany Ġnamed Ġ$ company Name Ġcannot Ġbe Ġfound .\ n "). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( approved Amount Ġ> Ġvalue ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" Approved ĠAmount Ġcannot Ġbe Ġgreater Ġthan ĠClaim ĠAmount \ n "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( approved Amount Ġ<= 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" Approved ĠAmount Ġcannot Ġbe ĠNegative Ġor ĠZero \ n "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( fname == null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" parameter Ġ' First ĠName ' Ġmissing Ġor Ġhas Ġwrong Ġformat .\ n "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( lname == null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" parameter Ġ' Last ĠName ' Ġmissing Ġor Ġhas Ġwrong Ġformat .\ n "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( ins urance Status == null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" parameter Ġ' Ins urance ĠStatus ' Ġmissing Ġor Ġhas Ġwrong Ġformat .\ n "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( reference ID == null ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" parameter Ġ' Under writing Ġlinear Ġid ' Ġmissing Ġor Ġhas Ġwrong Ġformat .\ n "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsigned Tx Ġ= Ġrpc Ops ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start Tracked Flow Dynamic ( Under writing Response Flow . Under writing Evaluation Init iator :: class . java , Ġins urer Node , reference ID , ins urance Status , fname , lname , value , approved Amount ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. returnValue . get OrThrow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . status ( CREATED ). entity (" Transaction Ġid Ġ${ signed Tx . id } Ġcommitted Ġto Ġledger .\ n "). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error ( ex . message , Ġex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity ( ex . message ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠInit i ates ĠIn sur ance ĠCompany Ġresponse Ġto ĠApplic ant Ġflow ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġ@ PUT ĊĠĠĠĠĠĠĠ Ġ@ Path (" company - response ") ĊĠĠĠĠĠĠĠ Ġfun ĠCompany Response (@ QueryParam (" ins urance Status ") Ġins urance Status : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" ins urance ID ") Ġins urance ID : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" fname ") Ġfname : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" lname ") Ġl name : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ QueryParam (" approved Amount ") Ġapproved Amount : ĠInt ): ĠResponse Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapplic ant = C ord a X 5 0 0 Name . parse (" O = Party A , ĠL = L ondon , ĠC = GB ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġapplic ant Node Ġ= Ġrpc Ops . well Known Party From X 5 0 0 Name ( applicant ) Ġ?: ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" Company Ġnamed Ġ$ applicant Ġcannot Ġbe Ġfound .\ n "). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( ins urance ID Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity (" Ins urance ĠID Ġis Ġmissing Ġ. Ġ\ n "). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsigned Tx Ġ= Ġrpc Ops ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. start Tracked Flow Dynamic ( Claim Response Flow . Claim Response Init iator :: class . java , applicant Node , fname , lname , approved Amount , ins urance Status , ins urance ID ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. returnValue . get OrThrow () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResponse . status ( CREATED ). entity (" Transaction Ġid Ġ${ signed Tx . id } Ġcommitted Ġto Ġledger .\ n "). build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error ( ex . message , Ġex ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠResponse . status ( BAD _ REQUEST ). entity ( ex . message ). build () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ