package Ġno . nav . sy fo . consumer . m ote Ċ Ċ import Ġno . nav . sy fo . consumer . sts . St s Consumer Ċ import Ġno . nav . sy fo . metric . Metric Ċ import Ġno . nav . sy fo . op pf ol ging st il f elle . database . Person Opp fol ging st il f elle Ċ import Ġno . nav . sy fo . util .* Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġorg . springframework . http .* Ċ import Ġorg . springframework . stereotype . Service Ċ import Ġorg . springframework . web . client .* Ċ import Ġorg . springframework . web . util . Uri Components Builder Ċ import Ġjava . time . LocalDateTime Ċ import Ġjavax . inject . Inject Ċ Ċ @ Service Ċ class ĠM ote Consumer Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġtemplate : ĠRest Template , ĊĠĠĠ Ġprivate Ġval Ġst s Consumer : ĠSt s Consumer , ĊĠĠĠ Ġprivate Ġval Ġmetric : ĠMetric Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġer M ote Opp rett et For Ar be id st aker Et ter D ato ( ak tor Id : ĠString , Ġstart D ato : ĠLocalDateTime ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġst s Token Ġ= Ġst s Consumer . token () ĊĠĠĠĠĠĠĠ Ġval Ġrequest Entity Ġ= ĠHttp Entity ( start D ato , Ġauthorization Header ( sts Token )) ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠUri Components Builder . from Http Url ( SY FO MOTE ADMIN _ BASE URL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. path Segment (" system ", Ġakt or Id , Ġ" har A ktiv t M ote ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. to Uri String () ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetric . tell H en del se (" call _ sy f om ote admin ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġer M ote Opp rett et Et ter D ato Ġ= Ġtemplate . post For Object ( url , Ġrequest Entity , ĠBoolean :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetric . tell H en del se (" call _ sy f om ote admin _ success ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġer M ote Opp rett et Et ter D ato ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttpClient ErrorException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . warn ( SY FO MOTE ADMIN _ FE IL ME LD ING _ K LI ENT ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠHttp ServerError Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetric . tell H en del se (" call _ sy f om ote admin _ fail ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error ( SY FO MOTE ADMIN _ FE IL ME LD ING _ SERVER , Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRuntimeException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error ( SY FO MOTE ADMIN _ FE IL ME LD ING _ GENER ELL , Ġe ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġis M ote plan leg ger Active In Opp fol ging st il f elle ( op pf ol ging st il f elle : ĠPerson Opp fol ging st il f elle ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġst s Token Ġ= Ġst s Consumer . token () ĊĠĠĠĠĠĠĠ Ġval Ġhttp Entity Ġ= Ġentity ( null , Ġst s Token , Ġopp fol ging st il f elle . fn r . value , Ġopp fol ging st il f elle . f om . at Start OfDay ()) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġtemplate . exchange ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget M ote admin Url ("/ system / m ote plan leg ger / aktiv "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHttpMethod . POST , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhttp Entity , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBoolean :: class . java ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresponse Body Ġ= Ġresponse . body !! ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetric . tell H en del se ( METRIC _ CALL _ MOTE ADMIN _ MOTE PLAN LEG GER _ ACTIVE _ SUCCESS ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġresponse Body ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠRest ClientResponse Exception ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlog . error (" Request Ġto Ġget Ġcheck Ġif ĠM ote plan leg ger Ġis Ġactive Ġfor ĠAr be id st aker Ġfailed Ġwith Ġstatus : Ġ${ e . raw StatusCode } Ġand Ġmessage : Ġ${ e . response Body AsString }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmetric . tell H en del se ( METRIC _ CALL _ MOTE ADMIN _ MOTE PLAN LEG GER _ ACTIVE _ FAIL ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow Ġe ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget M ote admin Url ( sub Path : ĠString ) Ġ= Ġ"$ SY FO MOTE ADMIN _ BASE URL $ sub Path " ĊĊĠĠĠ Ġprivate Ġfun Ġentity ( ĊĠĠĠĠĠĠĠ Ġcall Id : ĠString ?, ĊĠĠĠĠĠĠĠ Ġtoken : ĠString , ĊĠĠĠĠĠĠĠ Ġar be id st aker Ident : ĠString , ĊĠĠĠĠĠĠĠ Ġopp fol ging st il f elle StartDate : ĠLocalDateTime ĊĠĠĠ Ġ): ĠHttp Entity < LocalDateTime > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcredentials Ġ= Ġbe arer Credentials ( token ) ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= ĠHttp Headers () ĊĠĠĠĠĠĠĠ Ġheaders [ HttpHeaders . AUTHORIZATION ] Ġ= Ġcredentials ĊĠĠĠĠĠĠĠ Ġheaders [ NAV _ CALL _ ID _ HEADER ] Ġ= Ġget OrCreate Call Id ( call Id ) ĊĠĠĠĠĠĠĠ Ġheaders [ NAV _ CON SUM ER _ ID _ HEADER ] Ġ= ĠAPP _ CON SUM ER _ ID ĊĠĠĠĠĠĠĠ Ġheaders [ NAV _ PERSON ID ENTER _ HEADER ] Ġ= Ġar be id st aker Ident ĊĊĠĠĠĠĠĠĠ Ġreturn ĠHttp Entity ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġopp fol ging st il f elle StartDate , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheaders ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġauthorization Header ( token : ĠString ): ĠHttp Headers Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġheaders Ġ= ĠHttp Headers () ĊĠĠĠĠĠĠĠ Ġheaders . add ( HttpHeaders . AUTHORIZATION , Ġbe arer Credentials ( token )) ĊĠĠĠĠĠĠĠ Ġreturn Ġheaders ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Ġ= ĠLoggerFactory . getLogger ( M ote Consumer :: class . java ) ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠSY FO MOTE ADMIN _ BASE URL Ġ= Ġ" http :// sy f om ote admin . teams y ke fr avr / sy f om ote admin / api " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMET RIC _ CALL _ MOTE ADMIN _ BASE Ġ= Ġ" call _ be hand len de en het " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMET RIC _ CALL _ MOTE ADMIN _ MOTE PLAN LEG GER _ ACTIVE _ SUCCESS Ġ= Ġ"${ METRIC _ CALL _ MOTE ADMIN _ BASE }_ m ote plan leg ger _ active _ success " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMET RIC _ CALL _ MOTE ADMIN _ MOTE PLAN LEG GER _ ACTIVE _ FAIL Ġ= Ġ"${ METRIC _ CALL _ MOTE ADMIN _ BASE }_ m ote plan leg ger _ active _ fail " ĊĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSY FO MOTE ADMIN _ FE IL ME LD ING _ GENER ELL Ġ= Ġ" Kl arte Ġik ke Ġh ente Ġom Ġdet Ġer Ġm ote Ġi Ġopp fol ging st il f elle Ġf ra Ġsy f om ote admin " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSY FO MOTE ADMIN _ FE IL ME LD ING _ K LI ENT Ġ= Ġ" F ikk Ġ 4 XX - fe il Ġved Ġh ent ing Ġav Ġom Ġdet Ġer Ġm ote Ġi Ġopp fol ging st il f elle Ġf ra Ġsy f om ote admin " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSY FO MOTE ADMIN _ FE IL ME LD ING _ SERVER Ġ= Ġ" F ikk Ġ 5 XX - fe il Ġved Ġh ent ing Ġav Ġom Ġdet Ġer Ġm ote Ġi Ġopp fol ging st il f elle Ġf ra Ġsy f om ote admin " ĊĠĠĠ Ġ} Ċ } Ċ