Skip to content

Commit

Permalink
feat: add deletion of medical technology
Browse files Browse the repository at this point in the history
  • Loading branch information
AndreaGiulianelli committed Mar 7, 2023
1 parent 6141a6b commit 2c524c1
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 4 deletions.
11 changes: 11 additions & 0 deletions src/main/kotlin/application/service/MedicalTechnologyService.kt
Original file line number Diff line number Diff line change
Expand Up @@ -44,4 +44,15 @@ object MedicalTechnologyService {
override fun execute(): MedicalTechnology? =
this.medicalTechnologyRepository.findBy(medicalTechnologyId, dateTime)
}

/**
* Application Service that has the objective of deleting a medical technology
* identified by its [medicalTechnologyId] using the provided [medicalTechnologyId].
*/
class DeleteMedicalTechnology(
private val medicalTechnologyId: MedicalTechnologyID,
private val medicalTechnologyRepository: MedicalTechnologyRepository
) : ApplicationService<Boolean> {
override fun execute(): Boolean = this.medicalTechnologyRepository.deleteMedicalTechnology(medicalTechnologyId)
}
}
12 changes: 11 additions & 1 deletion src/main/kotlin/infrastructure/api/APIController.kt
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,17 @@ class APIController(private val provider: ManagerProvider) {
)
}
delete("$apiPath/medical-technologies/{technologyId}") {
call.respondText("[${Thread.currentThread().name}] Medical Technology DELETE!")
call.respond(
MedicalTechnologyService.DeleteMedicalTechnology(
MedicalTechnologyID(call.parameters["technologyId"].orEmpty()),
MedicalTechnologyController(
provider.medicalTechnologyDigitalTwinManager,
provider.medicalTechnologyDatabaseManager
),
).execute().let { result ->
if (result) HttpStatusCode.NoContent else HttpStatusCode.NotFound
}
)
}
patch("$apiPath/medical-technologies/{technologyId}") {
call.respondText("[${Thread.currentThread().name}] Medical Technology PATCH!")
Expand Down
7 changes: 4 additions & 3 deletions src/main/kotlin/infrastructure/database/DatabaseManager.kt
Original file line number Diff line number Diff line change
Expand Up @@ -94,9 +94,10 @@ class DatabaseManager(customConnectionString: String? = null) : RoomDatabaseMana
insertOne(medicalTechnology).wasAcknowledged()
}

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

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

0 comments on commit 2c524c1

Please sign in to comment.