/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 7 / 2 0 2 1 Ġe - voy age urs Ġtechnologies Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġai . to ck . bot . connector . web Ċ Ċ import Ġai . to ck . bot . connector . Connector Callback Base Ċ import Ġai . to ck . bot . engine . action . Action Ċ import Ġai . to ck . bot . engine . action . Send Sentence Ċ import Ġai . to ck . bot . engine . event . Metadata Event Ċ import Ġcom . fasterxml . jackson . databind . ObjectMapper Ċ import Ġio . vertx . core . http . HttpHeaders Ċ import Ġio . vertx . ext . web . Routing Context Ċ import Ġmu . Kotlin Logging Ċ import Ġjava . util . Locale Ċ import Ġjava . util . concurrent . Copy On Write ArrayList Ċ Ċ internal Ġclass ĠWeb Connector Callback ( ĊĠĠĠ Ġapplication Id : ĠString , ĊĠĠĠ Ġval Ġlocale : ĠLocale , ĊĠĠĠ Ġprivate Ġval Ġcontext : ĠRouting Context , ĊĠĠĠ Ġprivate Ġval Ġactions : ĠMutable List < Action > Ġ= ĠCopy On Write ArrayList (), ĊĠĠĠ Ġprivate Ġval Ġmetadata : ĠMutable Map < String , ĠString > Ġ= Ġmutable Map Of (), ĊĠĠĠ Ġprivate Ġval Ġweb Mapper : ĠObjectMapper , ĊĠĠĠ Ġprivate Ġval Ġevent Id : ĠString Ċ ) Ġ: ĠConnector Callback Base ( application Id , Ġweb Connector Type ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlogger Ġ= ĠKotlin Logging . logger Ġ{} ĊĊĠĠĠ Ġfun Ġadd Action ( action : ĠAction ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactions . add ( action ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Metadata ( metadata : ĠMetadata Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . metadata [ metadata . type ] Ġ= Ġmetadata . value ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsend Response () Ġ{ ĊĠĠĠĠĠĠĠ ĠWeb Request Infos By Event . invalidate ( eventId ) ĊĠĠĠĠĠĠĠ Ġval Ġmessages Ġ= Ġactions ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Is Instance < Send Sentence >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map NotNull Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . string Text Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠWeb Message ( it . string Text !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . message ( web Connector Type ) Ġas ? ĠWeb Message ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġcontext . response () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. put Header ( HttpHeaders . CONTENT _ TYPE , Ġ" application / json ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. end ( web Mapper . writeValue AsString ( Web Connector Response ( messages , Ġmetadata ))) ĊĠĠĠ Ġ} Ċ } Ċ