package Ġcom . code lab . storage Ċ Ċ import Ġio . quarkus . mongodb . reactive . Reactive Mongo Client Ċ import Ġio . quarkus . mongodb . reactive . Reactive Mongo Collection Ċ import Ġio . quarkus . runtime . Startup Ċ import Ġorg . bson . Document Ċ import Ġorg . slf 4 j . Logger Ċ import Ġorg . slf 4 j . LoggerFactory Ċ import Ġjavax . annotation . Pre Destroy Ċ import Ġjavax . enterprise . inject . Default Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Singleton Ċ Ċ @ Startup Ċ @ Singleton Ċ class ĠMongo Service Ġ: ĠAuto Closeable Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠLOGGER : ĠLogger Ġ= ĠLoggerFactory . getLogger ( this :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġ@ field : ĠDefault ĊĠĠĠ Ġlateinit Ġvar Ġmongo Client : ĠReactive Mongo Client ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠLOGGER . info (" Starting ĠMongo Ġservice ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsave Events ( collection Name : ĠString , Ġevents : ĠList < Map < String , ĠAny ? >>) Ġ{ ĊĠĠĠĠĠĠĠ Ġget Collection ( collection Name ). insert Many ( events . map Ġ{ ĠDocument ( it ) Ġ}). await (). in def initely () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Collection ( collection Name : ĠString ): ĠReactive Mongo Collection < Document > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmongo Client . get Database (" test Qu ark us "). get Collection ( collection Name ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Pre Destroy ĊĠĠĠ Ġoverride Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġmongo Client . close () ĊĠĠĠ Ġ} Ċ }