import Ġio . ktor . config .* Ċ import Ġio . ktor . util .* Ċ import Ġorg . k oin . core . module . Module Ċ import Ġorg . k oin . dsl . module Ċ import Ġorg . lit ote . km ongo . coroutine . Coroutine Database Ċ import Ġorg . lit ote . km ongo . coroutine . coroutine Ċ import Ġorg . lit ote . km ongo . reactiv est ream s . K Mongo Ċ Ċ internal Ġclass ĠDatabase ( private Ġval Ġcollection : ĠString , Ġdb URI : ĠString , Ġdb Name : ĠString ) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġ// register Module () Ġ// do Ġserializer Ġhere ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġdatabase : ĠCor outine Database Ġ= ĠK Mongo ĊĠĠĠĠĠĠĠ Ġ. create Client ( db URI ) ĊĠĠĠĠĠĠĠ Ġ. coroutine ĊĠĠĠĠĠĠĠ Ġ. get Database ( dbName ) ĊĊĠĠĠ Ġsuspend Ġfun ĠgetData () Ġ: ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĊĠĠĠĠĠĠĠ Ġreturn Ġ" hello Ġworld " ĊĠĠĠ Ġ} Ċ } Ċ Ċ // ĠCreates Ġmodule Ġfor ĠK oin ĠDI Ġand Ġreturns Ġit Ċ @ K tor Experimental API Ċ fun Ġcreate Db Module ( config : ĠApplication Config ): ĠModule Ġ{ ĊĠĠĠ Ġreturn Ġmodule Ġ{ ĊĠĠĠĠĠĠĠ Ġsingle Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconfig . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDatabase ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcollection Ġ= Ġproperty (" collection "). getString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb Name Ġ= Ġproperty (" dbName "). getString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdb URI Ġ= Ġproperty (" db URI "). getString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }