package Ġno . nav . dag p enger . do h Ċ Ċ import Ġcom . nat pr y ce . kon fig . Configuration Map Ċ import Ġcom . nat pr y ce . kon fig . Configuration Properties . Companion . system Properties Ċ import Ġcom . nat pr y ce . kon fig . Environment Variables Ċ import Ġcom . nat pr y ce . kon fig . Key Ċ import Ġcom . nat pr y ce . kon fig . over riding Ċ import Ġcom . nat pr y ce . kon fig . string Type Ċ import Ġcom . slack . api . Slack Ċ import Ġno . nav . dag p enger . do h . slack . Slack Bot Ċ import Ġno . nav . dag p enger . do h . slack . Slack Client Ċ Ċ internal Ġobject ĠConfiguration Ġ{ ĊĠĠĠ Ġval Ġslack Channel Id Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġproperties [ Key (" dp . slack er . channel . id ", Ġstring Type )] ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġdefault Properties Ġ= ĠConfiguration Map ( ĊĠĠĠĠĠĠĠ Ġmap Of ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" K AF KA _ CON SUM ER _ GROUP _ ID " Ġto Ġ" dp - do h - v 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" K AF KA _ R AP ID _ TOPIC " Ġto Ġ" team dag p enger . rapid . v 1 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" K AF KA _ RESET _ POLICY " Ġto Ġ" latest ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" HTTP _ PORT " Ġto Ġ" 8 0 8 0 ", ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġprivate Ġval Ġproperties Ġ= Ġsystem Properties () Ġoverriding ĠEnvironment Variables () Ġoverriding Ġdefault Properties ĊĠĠĠ Ġval Ġslack Alert Client : ĠSlack Client ? Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġproperties . get OrNull ( Key (" SL ACK _ ACCESS _ TOKEN ", Ġstring Type )) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSlack Client ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaccessToken Ġ= Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Ġ= Ġproperties [ Key (" DP _ SL ACK ER _ ALERT _ CHANNEL _ ID ", Ġstring Type )] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġslack Client : ĠSlack Client ? Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġproperties . get OrNull ( Key (" SL ACK _ ACCESS _ TOKEN ", Ġstring Type )) ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSlack Client ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠaccessToken Ġ= Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchannel Ġ= Ġproperties [ Key (" DP _ SL ACK ER _ CHANNEL _ ID ", Ġstring Type )] ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġslack Bot : ĠSlack Bot ? Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ Ġproperties . get OrNull ( Key (" SL ACK _ ACCESS _ TOKEN ", Ġstring Type )) ?. let Ġ{ Ġtoken Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSlack Bot ( Slack . getInstance (). methods ( token ), Ġslack Channel Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġas Map (): ĠMap < String , ĠString > Ġ= Ġproperties . list (). reversed (). fold ( empty Map ()) Ġ{ Ġmap , Ġpair Ġ-> ĊĠĠĠĠĠĠĠ Ġmap Ġ+ Ġpair . second ĊĠĠĠ Ġ} Ċ } Ċ