Skip to content

Commit

Permalink
chore: add deserializer for tracking information api result dto
Browse files Browse the repository at this point in the history
  • Loading branch information
AndreaGiulianelli committed May 18, 2023
1 parent 7b2fc86 commit f342795
Showing 1 changed file with 23 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,15 @@
package application.presenter.external.serialization

import application.presenter.external.model.HealthcareUserResultDto
import application.presenter.external.model.TrackingInfoResultDto
import application.presenter.external.model.TrackingTypeResultDto
import entity.healthcareuser.HealthcareUser
import entity.healthcareuser.TaxCode
import entity.healthprofessional.HealthProfessionalID
import entity.room.RoomID
import entity.tracking.TrackType
import entity.tracking.TrackingInfo
import java.time.Instant

/**
* Serialization for external system.
Expand All @@ -25,4 +32,20 @@ object ExternalServiceSerialization {
name = this.name,
surname = this.surname,
)

/**
* Extension method to obtain the [TrackingInfo] of an [HealthProfessionalID] from a [TrackingInfoResultDto].
* @return the deserialized tracking information about a health professional
*/
fun TrackingInfoResultDto.toHealthProfessionalTrackingInfo(): TrackingInfo<HealthProfessionalID> = TrackingInfo(
dateTime = Instant.parse(this.dateTime),
individual = HealthProfessionalID(this.healthProfessionalId),
roomID = RoomID(this.roomId),
trackType = this.trackingType.toTrackingType(),
)

private fun TrackingTypeResultDto.toTrackingType(): TrackType = when (this) {
TrackingTypeResultDto.ENTER -> TrackType.ENTER
TrackingTypeResultDto.EXIT -> TrackType.EXIT
}
}

0 comments on commit f342795

Please sign in to comment.