File tree 3 files changed +26
-4
lines changed
3 files changed +26
-4
lines changed Original file line number Diff line number Diff line change @@ -44,4 +44,15 @@ object MedicalTechnologyService {
44
44
override fun execute (): MedicalTechnology ? =
45
45
this .medicalTechnologyRepository.findBy(medicalTechnologyId, dateTime)
46
46
}
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
+ }
47
58
}
Original file line number Diff line number Diff line change @@ -180,7 +180,17 @@ class APIController(private val provider: ManagerProvider) {
180
180
)
181
181
}
182
182
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
+ )
184
194
}
185
195
patch(" $apiPath /medical-technologies/{technologyId}" ) {
186
196
call.respondText(" [${Thread .currentThread().name} ] Medical Technology PATCH!" )
Original file line number Diff line number Diff line change @@ -94,9 +94,10 @@ class DatabaseManager(customConnectionString: String? = null) : RoomDatabaseMana
94
94
insertOne(medicalTechnology).wasAcknowledged()
95
95
}
96
96
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
+ }
100
101
101
102
override fun findBy (medicalTechnologyId : MedicalTechnologyID , dateTime : Instant ): MedicalTechnology ? =
102
103
this .medicalTechnologiesCollection.findOne { MedicalTechnology ::id eq medicalTechnologyId }?.copy(
You can’t perform that action at this time.
0 commit comments