package Ġno . nav . sy fo . client . journal post dist ri bus jon Ċ Ċ import Ġio . ktor . client . features .* Ċ import Ġio . ktor . client . request .* Ċ import Ġio . ktor . client . statement .* Ċ import Ġio . ktor . http .* Ċ import Ġnet . logstash . log back . argument . Structured Arguments Ċ import Ġno . nav . sy fo . client . azure ad . Azure Ad V 2 Client Ċ import Ġno . nav . sy fo . client . httpClient Default Ċ import Ġno . nav . sy fo . util . bearer Header Ċ import Ġorg . slf 4 j . LoggerFactory Ċ Ċ class ĠJournal post dist ri bus jon Client ( ĊĠĠĠ Ġprivate Ġval Ġazure Ad V 2 Client : ĠAzure Ad V 2 Client , ĊĠĠĠ Ġprivate Ġval Ġis proxy ClientId : ĠString , ĊĠĠĠ Ġis proxy Url : ĠString Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġdistribu er Journal post Url : ĠString Ġ= Ġ"$ is proxy Url $ DI STRI BU ER _ JO URN AL POST _ PATH " ĊĠĠĠ Ġprivate Ġval ĠhttpClient Ġ= ĠhttpClient Default () ĊĊĠĠĠ Ġsuspend Ġfun Ġdistribu er Journal post ( ĊĠĠĠĠĠĠĠ Ġjournal post Id : ĠString ĊĠĠĠ Ġ): ĠJournal post dist ri bus jon Response ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠaccessToken Ġ= Ġazure Ad V 2 Client . getSystem Token ( is proxy ClientId )?. accessToken ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠRuntimeException (" Failed Ġto Ġrequest ĠJournal post Ġdistribution : ĠNo ĠaccessToken Ġwas Ġfound ") ĊĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠJournal post dist ri bus jon Request ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġjournal post Id Ġ= Ġjournal post Id , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbest ill ende F ags ystem Ġ= ĠB EST IL LEN DE _ F AG SYSTEM , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdokument Prod App Ġ= ĠD OK UMENT PRO D USER EN DE _ APP ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= ĠhttpClient . post < Journal post dist ri bus jon Response >( dist ribu er Journal post Url ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheader ( HttpHeaders . Authorization , Ġbe arer Header ( accessToken )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaccept ( ContentType . Application . Json ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠcontentType ( ContentType . Application . Json ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbody Ġ= Ġrequest ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCOUNT _ CALL _ JO URN AL POST DI STRI BUS J ON _ SUCCESS . increment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresponse ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠClient RequestException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Unexpected Response Exception ( e . response , Ġe . message ) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠServer Response Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhandle Unexpected Response Exception ( e . response , Ġe . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhandle Unexpected Response Exception ( ĊĠĠĠĠĠĠĠ Ġresponse : ĠHttpResponse , ĊĠĠĠĠĠĠĠ Ġmessage : ĠString ? ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlog . error ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" Error Ġwhile Ġrequesting ĠJournal post Ġdistribution Ġfrom Ġis proxy Ġwith Ġ{}, Ġ{}", ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStruct ured Arguments . key Value (" statusCode ", Ġresponse . status . value . toString ()), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠStruct ured Arguments . key Value (" message ", Ġmessage ), ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠCOUNT _ CALL _ JO URN AL POST DI STRI BUS J ON _ FAIL . increment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB EST IL LEN DE _ F AG SYSTEM Ġ= Ġ" MODI A _ SY KE FR AVA ER " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠD OK UMENT PRO D USER EN DE _ APP Ġ= Ġ" is dialog m ote " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDI STRI BU ER _ JO URN AL POST _ PATH Ġ= Ġ"/ api / v 1 / dok dist / dist ribu er journal post " ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( Journal post dist ri bus jon Client :: class . java ) ĊĠĠĠ Ġ} Ċ } Ċ