package Ġno . nav . hj el pe mid ler . jo ark . jo ark Ċ Ċ import Ġcom . fasterxml . jackson . databind . JsonNode Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġcom . github . kit tin un f . fuel . core . Response Deserial izable Ċ import Ġcom . github . kit tin un f . fuel . core . extensions . json Body Ċ import Ġcom . github . kit tin un f . fuel . coroutines . await Object Ċ import Ġcom . github . kit tin un f . fuel . http Post Ċ import Ġkotlinx . coroutines . Dispatch ers Ċ import Ġkotlinx . coroutines . with Context Ċ import Ġmu . Kotlin Logging Ċ import Ġno . nav . hj el pe mid ler . jo ark . jo ark . model . Av sender M ott aker Ċ import Ġno . nav . hj el pe mid ler . jo ark . jo ark . model . B ru ker Ċ import Ġno . nav . hj el pe mid ler . jo ark . jo ark . model . D okument er Ċ import Ġno . nav . hj el pe mid ler . jo ark . jo ark . model . D okument var ian ter Ċ import Ġno . nav . hj el pe mid ler . jo ark . jo ark . model . Hj el pe mid ler Digital S ok nad Ċ import Ġjava . util . Base 6 4 Ċ import Ġjava . util . UUID Ċ import Ġkotlin . collections . ArrayList Ċ Ċ private Ġval Ġlogger Ġ= ĠKotlin Logging . logger Ġ{} Ċ Ċ class ĠJo ark Client ( ĊĠĠĠ Ġprivate Ġval ĠbaseUrl : ĠString , ĊĠĠĠ Ġprivate Ġval Ġac ces sto ken Scope : ĠString , ĊĠĠĠ Ġprivate Ġval Ġazure Client : ĠAzure Client Ċ ) Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠobjectMapper Ġ= ĠObjectMapper () ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠD OK UMENT _ TIT TEL Ġ= Ġ" S Ã¸ kn ad Ġom Ġh jel pe mid ler " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠID _ TYPE Ġ= Ġ" FN R " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠL AND Ġ= Ġ" NOR GE " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠB REV _ KO DE Ġ= Ġ" NAV Ġ 1 0 - 0 7 . 0 3 " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠD OK UMENT _ K ATEG OR I Ġ= Ġ" S OK " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFIL _ TYPE Ġ= Ġ" PD FA " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠVARI ANT _ FORMAT Ġ= Ġ" ARK IV " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠTE MA Ġ= Ġ" HJ E " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠK ANAL Ġ= Ġ" NAV _ NO " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠJ O URN AL POST _ TYPE Ġ= Ġ" IN NG AA EN DE " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġ ark iver S ok nad ( ĊĠĠĠĠĠĠĠ Ġfn r B ru ker : ĠString , ĊĠĠĠĠĠĠĠ Ġnav n Av sender : ĠString , ĊĠĠĠĠĠĠĠ Ġdokument T it tel : ĠString , ĊĠĠĠĠĠĠĠ Ġs ok nad Id : ĠUUID , ĊĠĠĠĠĠĠĠ Ġs ok nad Pdf : ĠByteArray , ĊĠĠĠĠĠĠĠ Ġek st ern Ref Id : ĠString Ġ= Ġs ok nad Id . toString () Ġ+ Ġ" HJ E - DIG ITAL - S OK N AD " ĊĠĠĠ Ġ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġlogger . info Ġ{ Ġ" Ar k iver er Ġs Ã¸ kn ad " Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġrequest Body Ġ= ĠH jel pe mid ler Digital S ok nad ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠA vs ender M ott aker ( fn r B ru ker , ĠID _ TYPE , ĠL AND , Ġnav n Av sender ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠB ru ker ( fn r B ru ker , ĠID _ TYPE ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġh ent list D okument Til Journal Fore ning ( d okument T it tel , ĠBase 6 4 . get Encoder (). encode ToString ( so kn ad Pdf )), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠTE MA , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠD OK UMENT _ TIT TEL , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠK ANAL , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġek st ern Ref Id , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠJ O URN AL POST _ TYPE ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġjson Body Ġ= ĠobjectMapper . writeValue AsString ( request Body ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġwith Context ( Dispatch ers . IO ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġkotlin . run Catch ing Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ baseUrl ". http Post () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Content - Type ", Ġ" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Accept ", Ġ" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. header (" Authorization ", Ġ" Bearer Ġ${ azure Client . getToken ( ac ces sto ken Scope ). accessToken }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. json Body ( json Body ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. await Object ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠResponse Deserial izable < JsonNode > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdeserialize ( content : ĠString ): ĠJsonNode Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠObjectMapper (). read Tree ( content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . has (" journal post Id ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġit [" journal post Id "]. text Value () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġthrow ĠJo ark Exception (" Kl arte Ġik ke ĠÃ¥ Ġ ark iv ere Ġs Ã¸ kn ad ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. on Failure Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . error Ġ{ Ġit . message Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. get OrThrow () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġh ent list D okument Til Journal Fore ning ( d okument T it tel : ĠString , Ġs ok nad Pdf : ĠString ): ĠList < D okument er > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdokument s Ġ= ĠArrayList < D okument er >() ĊĠĠĠĠĠĠĠ Ġdokument s . add ( for bre de Hj el pe mid ler D okument ( d okument T it tel , Ġs ok nad Pdf )) ĊĠĠĠĠĠĠĠ Ġreturn Ġdokument s ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfor bre de Hj el pe mid ler D okument ( d okument T it tel : ĠString , Ġs ok nad Pdf : ĠString ): ĠD okument er Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdokument Variants Ġ= ĠArrayList < D okument var ian ter >() ĊĠĠĠĠĠĠĠ Ġdokument Variants . add ( for bre de Hj el pe mid ler D okument Variant ( so kn ad Pdf )) ĊĠĠĠĠĠĠĠ Ġreturn ĠD okument er ( BRE V _ KO DE , ĠD OK UMENT _ K ATEG OR I , Ġdokument Variants , Ġdokument T it tel ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfor bre de Hj el pe mid ler D okument Variant ( so kn ad Pdf : ĠString ): ĠD okument var ian ter Ġ= ĊĠĠĠĠĠĠĠ ĠD okument var ian ter (" hj el pe mid ler digital so kn ad . pdf ", ĠFIL _ TYPE , ĠVARI ANT _ FORMAT , Ġs ok nad Pdf ) Ċ } Ċ Ċ internal Ġclass ĠJo ark Exception ( msg : ĠString ) Ġ: ĠRuntimeException ( msg ) Ċ