@@ -10,46 +10,46 @@ package infrastructure.database
1010
1111import application.controller.manager.HealthProfessionalDatabaseManager
1212import application.controller.manager.UserDatabaseManager
13+ import com.mongodb.client.MongoDatabase
1314import entity.healthprofessional.HealthProfessionalData.HealthProfessional
1415import entity.user.User
1516import org.litote.kmongo.KMongo
1617import org.litote.kmongo.eq
1718import org.litote.kmongo.findOne
18- import org.litote.kmongo.findOneById
1919import 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 =
0 commit comments