package Ġno . nav . sy fo . client Ċ Ċ import Ġio . ktor . client . HttpClient Ċ import Ġio . ktor . client . request . accept Ċ import Ġio . ktor . client . request . get Ċ import Ġio . ktor . client . request . headers Ċ import Ġio . ktor . http . ContentType Ċ import Ġno . nav . sy fo . client . sts . St s Oid c Client Ċ import Ġno . nav . sy fo . log Ċ import Ġjava . time . LocalDate Ċ import Ġjava . util . UUID Ċ Ċ class ĠSy fo Sy ket il f elle Client ( ĊĠĠĠ Ġprivate Ġval Ġsy ket il f elle Endpoint URL : ĠString , ĊĠĠĠ Ġprivate Ġval Ġst s Client : ĠSt s Oid c Client , ĊĠĠĠ Ġprivate Ġval ĠhttpClient : ĠHttpClient , ĊĠĠĠ Ġprivate Ġval Ġcluster : ĠString Ċ ) Ġ{ ĊĊĠĠĠ Ġsuspend Ġfun Ġfin n Start dat o ( ak tor Id : ĠString , Ġsy k meld ing Id : ĠString , Ġsp or ings Id : ĠUUID ): ĠLocalDate Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsy ke for lo ep Ġ= Ġh ent Sy ke for lo ep ( ak tor Id ) ĊĠĠĠĠĠĠĠ Ġval Ġakt ue lt Sy ke for lo ep Ġ= Ġsy ke for lo ep . first OrNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . sy k meld inger . any Ġ{ Ġsimple Sy k meld ing Ġ-> Ġsimple Sy k meld ing . id Ġ== Ġsy k meld ing Id Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( akt ue lt Sy ke for lo ep Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" F ant Ġik ke Ġsy ke for l Ã¸ p Ġfor Ġsy k meld ing Ġmed Ġid Ġ$ sy k meld ing Id , Ġ{}", Ġsp or ings Id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cluster Ġ== Ġ" dev - f ss ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" S iden Ġdet te Ġer Ġdev Ġsetter Ġvi Ġstart dat o Ġtil ĠÃ¥ Ġv Ã¦ re Ġ 1 ĠmÃ¥ ned Ġs iden , Ġ{}", Ġsp or ings Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLocalDate . now (). minus Months ( 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" F ant Ġik ke Ġsy ke for l Ã¸ p Ġfor Ġsy k meld ing Ġmed Ġid Ġ$ sy k meld ing Id ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġakt ue lt Sy ke for lo ep . op pf olg ings dat o ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġsuspend Ġfun Ġhar Sy ke for lop Med Ny ere Start dat o ( ak tor Id : ĠString , Ġstart dat o : ĠLocalDate , Ġplan lag t Mel ding Id : ĠUUID ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsy ke for lo ep Ġ= Ġh ent Sy ke for lo ep ( ak tor Id ) ĊĠĠĠĠĠĠĠ Ġif Ġ( sy ke for lo ep . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" F ant Ġing en Ġsy ke for l Ã¸ p Ġfor Ġplan lag t Ġme ld ing Ġmed Ġid Ġ$ plan lag t Mel ding Id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( cluster Ġ== Ġ" dev - f ss ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlog . info (" S iden Ġdet te Ġer Ġdev Ġreturn er er Ġvi Ġfalse , Ġ$ plan lag t Mel ding Id ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠRuntimeException (" F ant Ġing en Ġsy ke for l Ã¸ p Ġfor Ġplan lag t Ġme ld ing Ġmed Ġid Ġ$ plan lag t Mel ding Id ") ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġsy ke for lo ep . any Ġ{ Ġit . op pf olg ings dat o . is After ( start dat o ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġsuspend Ġfun Ġh ent Sy ke for lo ep ( ak tor Id : ĠString ): ĠList < Sy ke for lo ep > Ġ= ĊĠĠĠĠĠĠĠ ĠhttpClient . get < List < Sy ke for lo ep >> ("$ sy ket il f elle Endpoint URL / sp are nap ro xy /$ ak tor Id / sy ke for lo ep ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccept ( ContentType . Application . Json ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġoid c Token Ġ= Ġst s Client . oidc Token () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġappend (" Authorization ", Ġ" Bearer Ġ${ oidc Token . access _ token }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ data Ġclass ĠSy ke for lo ep ( ĊĠĠĠ Ġvar Ġopp fol g ings dat o : ĠLocalDate , ĊĠĠĠ Ġval Ġsy k meld inger : ĠList < Simple Sy k meld ing > Ċ ) Ċ Ċ data Ġclass ĠSimple Sy k meld ing ( ĊĠĠĠ Ġval Ġid : ĠString , ĊĠĠĠ Ġval Ġf om : ĠLocalDate , ĊĠĠĠ Ġval Ġtom : ĠLocalDate Ċ ) Ċ