Skip to content

Commit ec1598b

Browse files
feat: implement update room environmental data service
1 parent bf7103a commit ec1598b

File tree

1 file changed

+18
-0
lines changed

1 file changed

+18
-0
lines changed

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

+18
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ package application.service
1111
import application.presenter.api.model.RoomEntry
1212
import application.presenter.api.serializer.ApiSerializer.toRoomEntry
1313
import entity.zone.Room
14+
import entity.zone.RoomEnvironmentalData
1415
import entity.zone.RoomID
1516
import usecase.repository.RoomRepository
1617
import java.time.Instant
@@ -59,4 +60,21 @@ object RoomService {
5960
class GetAllRoomEntry(private val roomRepository: RoomRepository) : ApplicationService<Set<RoomEntry>> {
6061
override fun execute(): Set<RoomEntry> = this.roomRepository.getRooms().map { it.toRoomEntry() }.toSet()
6162
}
63+
64+
/**
65+
* Application Service that has the objective of updating the [environmentalData] about a room identified
66+
* by its [roomId]. The data refers to a specific [dateTime] and it is updated via the provided
67+
* [roomRepository].
68+
*/
69+
class UpdateRoomEnvironmentData(
70+
private val roomId: RoomID,
71+
private val environmentalData: RoomEnvironmentalData,
72+
private val dateTime: Instant,
73+
private val roomRepository: RoomRepository
74+
) : ApplicationService<Boolean> {
75+
override fun execute(): Boolean =
76+
if (this.roomRepository.findBy(roomId, null) != null) {
77+
this.roomRepository.updateRoomEnvironmentalData(roomId, environmentalData, dateTime)
78+
} else false
79+
}
6280
}

0 commit comments

Comments
 (0)