Skip to content

Commit 2c524c1

Browse files
feat: add deletion of medical technology
1 parent 6141a6b commit 2c524c1

File tree

3 files changed

+26
-4
lines changed

3 files changed

+26
-4
lines changed

Diff for: src/main/kotlin/application/service/MedicalTechnologyService.kt

+11
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,15 @@ object MedicalTechnologyService {
4444
override fun execute(): MedicalTechnology? =
4545
this.medicalTechnologyRepository.findBy(medicalTechnologyId, dateTime)
4646
}
47+
48+
/**
49+
* Application Service that has the objective of deleting a medical technology
50+
* identified by its [medicalTechnologyId] using the provided [medicalTechnologyId].
51+
*/
52+
class DeleteMedicalTechnology(
53+
private val medicalTechnologyId: MedicalTechnologyID,
54+
private val medicalTechnologyRepository: MedicalTechnologyRepository
55+
) : ApplicationService<Boolean> {
56+
override fun execute(): Boolean = this.medicalTechnologyRepository.deleteMedicalTechnology(medicalTechnologyId)
57+
}
4758
}

Diff for: src/main/kotlin/infrastructure/api/APIController.kt

+11-1
Original file line numberDiff line numberDiff line change
@@ -180,7 +180,17 @@ class APIController(private val provider: ManagerProvider) {
180180
)
181181
}
182182
delete("$apiPath/medical-technologies/{technologyId}") {
183-
call.respondText("[${Thread.currentThread().name}] Medical Technology DELETE!")
183+
call.respond(
184+
MedicalTechnologyService.DeleteMedicalTechnology(
185+
MedicalTechnologyID(call.parameters["technologyId"].orEmpty()),
186+
MedicalTechnologyController(
187+
provider.medicalTechnologyDigitalTwinManager,
188+
provider.medicalTechnologyDatabaseManager
189+
),
190+
).execute().let { result ->
191+
if (result) HttpStatusCode.NoContent else HttpStatusCode.NotFound
192+
}
193+
)
184194
}
185195
patch("$apiPath/medical-technologies/{technologyId}") {
186196
call.respondText("[${Thread.currentThread().name}] Medical Technology PATCH!")

Diff for: src/main/kotlin/infrastructure/database/DatabaseManager.kt

+4-3
Original file line numberDiff line numberDiff line change
@@ -94,9 +94,10 @@ class DatabaseManager(customConnectionString: String? = null) : RoomDatabaseMana
9494
insertOne(medicalTechnology).wasAcknowledged()
9595
}
9696

97-
override fun deleteMedicalTechnology(medicalTechnologyId: MedicalTechnologyID): Boolean {
98-
TODO("Not yet implemented")
99-
}
97+
override fun deleteMedicalTechnology(medicalTechnologyId: MedicalTechnologyID): Boolean =
98+
this.medicalTechnologiesCollection.safeMongoDbWrite(defaultResult = false) {
99+
deleteOne(MedicalTechnology::id eq medicalTechnologyId).deletedCount > 0
100+
}
100101

101102
override fun findBy(medicalTechnologyId: MedicalTechnologyID, dateTime: Instant): MedicalTechnology? =
102103
this.medicalTechnologiesCollection.findOne { MedicalTechnology::id eq medicalTechnologyId }?.copy(

0 commit comments

Comments
 (0)