Skip to content

Commit da22b98

Browse files
chore: update method to insert data into db
1 parent 149cbd0 commit da22b98

File tree

2 files changed

+28
-17
lines changed

2 files changed

+28
-17
lines changed

src/main/kotlin/infrastructure/database/MongoClient.kt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,46 +10,46 @@ package infrastructure.database
1010

1111
import application.controller.manager.HealthProfessionalDatabaseManager
1212
import application.controller.manager.UserDatabaseManager
13+
import com.mongodb.client.MongoDatabase
1314
import entity.healthprofessional.HealthProfessionalData.HealthProfessional
1415
import entity.user.User
1516
import org.litote.kmongo.KMongo
1617
import org.litote.kmongo.eq
1718
import org.litote.kmongo.findOne
18-
import org.litote.kmongo.findOneById
1919
import org.litote.kmongo.getCollection
2020

2121
/**
2222
* The Mongo client.
2323
*/
24-
class MongoClient : UserDatabaseManager, HealthProfessionalDatabaseManager {
24+
class MongoClient(
25+
connectionString: String
26+
) : UserDatabaseManager, HealthProfessionalDatabaseManager {
2527

2628
init {
27-
checkNotNull(System.getenv("USER_MANAGEMENT_MONGODB_URL")) {
29+
check(connectionString.isNotEmpty()) {
2830
"Please provide the User Management MongoDB connection string!"
2931
}
3032
}
3133

32-
private val client =
33-
KMongo.createClient(System.getenv("USER_MANAGEMENT_MONGODB_URL"))
34+
private val client = KMongo.createClient(connectionString)
3435

3536
private val userCollection =
3637
client.getDatabase(databaseName).getCollection<User>("users")
3738

3839
private val healthProfessionalCollection =
3940
client.getDatabase(databaseName).getCollection<HealthProfessional>("health_professionals")
4041

42+
/** Return a database given its [databaseName]. **/
43+
fun getDatabase(databaseName: String): MongoDatabase = client.getDatabase(databaseName)
44+
4145
override fun createUser(user: User): User? =
42-
userCollection.insertOne(user).let { result ->
43-
result.insertedId?.let {
44-
userCollection.findOneById(it)
45-
}
46+
userCollection.insertOne(user).run {
47+
getUser(user.userId)
4648
}
4749

4850
override fun createHealthProfessional(healthProfessional: HealthProfessional): HealthProfessional? =
49-
healthProfessionalCollection.insertOne(healthProfessional).let { result ->
50-
result.insertedId?.let {
51-
healthProfessionalCollection.findOneById(it)
52-
}
51+
healthProfessionalCollection.insertOne(healthProfessional).run {
52+
getHealthProfessional(healthProfessional.healthProfessionalId)
5353
}
5454

5555
override fun deleteUser(userId: String): Boolean =

src/main/kotlin/infrastructure/provider/ProviderImpl.kt

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,10 +19,21 @@ import infrastructure.digitaltwins.AzureDTClient
1919
*/
2020
class ProviderImpl : Provider {
2121

22-
override val userDatabaseManager: UserDatabaseManager by lazy { MongoClient() }
22+
init {
23+
checkNotNull(System.getenv("USER_MANAGEMENT_MONGODB_URL")) {
24+
"Please provide a valid MongoDB connection String! "
25+
}
26+
}
2327

24-
override val healthProfessionalDatabaseManager: HealthProfessionalDatabaseManager by lazy { MongoClient() }
28+
override val userDatabaseManager: UserDatabaseManager by lazy {
29+
MongoClient(System.getenv("USER_MANAGEMENT_MONGODB_URL"))
30+
}
2531

26-
override val healthProfessionalDigitalTwinsManager: HealthProfessionalDigitalTwinsManager by
27-
lazy { AzureDTClient() }
32+
override val healthProfessionalDatabaseManager: HealthProfessionalDatabaseManager by lazy {
33+
MongoClient(System.getenv("USER_MANAGEMENT_MONGODB_URL"))
34+
}
35+
36+
override val healthProfessionalDigitalTwinsManager: HealthProfessionalDigitalTwinsManager by lazy {
37+
AzureDTClient()
38+
}
2839
}

0 commit comments

Comments
 (0)