package Ġno . nav . person br uk er . dit tn av . api . dig is os Ċ Ċ import Ġio . ktor . client . statement .* Ċ import Ġno . nav . person br uk er . dit tn av . api . bes kj ed . B es kj ed DTO Ċ import Ġno . nav . person br uk er . dit tn av . api . bes kj ed . K ilde Type Ċ import Ġno . nav . person br uk er . dit tn av . api . common . Multi Source Result Ċ import Ġno . nav . person br uk er . dit tn av . api . common . Produce Event Exception Ċ import Ġno . nav . person br uk er . dit tn av . api . op pg ave . Opp g ave DTO Ċ import Ġno . nav . person br uk er . dit tn av . common . security . Authenticated User Ċ import Ġorg . slf 4 j . LoggerFactory Ċ Ċ class ĠDig i S os Service ( private Ġval Ġdig i S os Client : ĠDig i S os Client ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( Dig i S os Service :: class . java ) ĊĊĠĠĠ Ġsuspend Ġfun Ġget Pa ab eg yn te Active ( user : ĠAuth enticated User ): ĠMulti Source Result < B es kj ed DTO , ĠK ilde Type > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwrap As Multi Source Result ( user ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdig i S os Client . get Pa ab eg yn te Active ( user ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Pa ab eg yn te Inactive ( user : ĠAuth enticated User ): ĠMulti Source Result < B es kj ed DTO , ĠK ilde Type > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwrap As Multi Source Result ( user ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdig i S os Client . get Pa ab eg yn te Inactive ( user ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Et ters en del se Active ( user : ĠAuth enticated User ): ĠMulti Source Result < Opp g ave DTO , ĠK ilde Type > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwrap As Multi Source Result ( user ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdig i S os Client . get Et ters en del ser Active ( user ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġget Et ters en del se Inactive ( user : ĠAuth enticated User ): ĠMulti Source Result < Opp g ave DTO , ĠK ilde Type > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwrap As Multi Source Result ( user ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdig i S os Client . get Et ters en del ser Inactive ( user ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġmark Event As Done ( user : ĠAuth enticated User , Ġdto : ĠDone DTO ): ĠHttpResponse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġres Ġ= Ġrun Catch ing Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdig i S os Client . mark Event As Done ( user , Ġdto ) ĊĊĠĠĠĠĠĠĠ Ġ}. on Failure Ġ{ Ġcause Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠPro duce Event Exception (" Kl arte Ġik ke ĠÃ¥ Ġmark ere Ġevent Ġh os ĠDig i S os Ġsom Ġle st .", Ġcause ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġres . get OrThrow () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġ< T > Ġwrap As Multi Source Result ( ĊĠĠĠĠĠĠĠ Ġuser : ĠAuth enticated User , ĊĠĠĠĠĠĠĠ Ġget Events : Ġsuspend Ġ( Authenticated User ) Ġ-> ĠList < T > ĊĠĠĠ Ġ): ĠMulti Source Result < T , ĠK ilde Type > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresults Ġ= Ġget Events ( user ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMulti Source Result . create Successful Result ( results , ĠK ilde Type . DIG IS OS ) ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . warn (" Kl arte Ġik ke ĠÃ¥ Ġh ente Ġdata Ġf ra ĠDig i S os : Ġ$ e ", Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMulti Source Result . create Error Result ( K ilde Type . DIG IS OS ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ