From 6d6380bcef9e805bf79ad3acc703dece572e4aff Mon Sep 17 00:00:00 2001 From: Filip Ballek Date: Tue, 3 Oct 2023 14:32:07 +0200 Subject: [PATCH] Hasher is now functional interface. Also made working with time uniform using autowired clock while creating current offset time --- .../advertisement/AdvertisementServiceImpl.kt | 2 +- .../business/services/user/UserServiceImpl.kt | 2 +- .../backend/shared/date_time/DateTimeUtils.kt | 14 -------------- .../shared/date_time/DateTimeUtilsImpl.kt | 17 ----------------- .../egidio/backend/shared/hasher/Hasher.kt | 5 ++++- 5 files changed, 6 insertions(+), 34 deletions(-) delete mode 100644 source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/shared/date_time/DateTimeUtils.kt delete mode 100644 source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/shared/date_time/DateTimeUtilsImpl.kt diff --git a/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/business/services/advertisement/AdvertisementServiceImpl.kt b/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/business/services/advertisement/AdvertisementServiceImpl.kt index 862d87b6..1ec2f574 100644 --- a/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/business/services/advertisement/AdvertisementServiceImpl.kt +++ b/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/business/services/advertisement/AdvertisementServiceImpl.kt @@ -163,7 +163,7 @@ class AdvertisementServiceImpl( responses = mutableListOf(), location = createLocation(advertisementCreateDto.location), status = AdvertisementStatus.CREATED, - createdAt = OffsetDateTime.now(), + createdAt = OffsetDateTime.now(clock), createdBy = resolveAdvertisementAuthor(advertisementCreateDto.nonRegisteredUserInfo), projects = mutableListOf(projectService.getBySlug(advertisementCreateDto.projectSlug)), slug = slugUtility.createSlugWithOffsetDateTimePrepended( diff --git a/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/business/services/user/UserServiceImpl.kt b/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/business/services/user/UserServiceImpl.kt index 5ed3d46e..ad35204f 100644 --- a/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/business/services/user/UserServiceImpl.kt +++ b/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/business/services/user/UserServiceImpl.kt @@ -294,7 +294,7 @@ class UserServiceImpl( telephoneNumberChangeRequestRepository.findLatestActiveByPublicId(publicId) ?.apply { status = ChangeRequestStatus.CANCELED - closedAt = OffsetDateTime.now() + closedAt = OffsetDateTime.now(clock) confirmationToken = null } } diff --git a/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/shared/date_time/DateTimeUtils.kt b/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/shared/date_time/DateTimeUtils.kt deleted file mode 100644 index 47803c61..00000000 --- a/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/shared/date_time/DateTimeUtils.kt +++ /dev/null @@ -1,14 +0,0 @@ -package cz.opendatalab.egidio.backend.shared.date_time - -import java.time.OffsetDateTime - -/** - * Utilities meant for work with DateTime (mainly for its retrieval) - * - * Retrieval of current date time from plain Java/Kotlin classes (e.g. [OffsetDateTime]) should be avoided, - * as it makes the code untestable - */ -interface DateTimeUtils { - fun utcOffsetDateTimeNow() : OffsetDateTime - fun OffsetDateTimeNow() : OffsetDateTime -} \ No newline at end of file diff --git a/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/shared/date_time/DateTimeUtilsImpl.kt b/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/shared/date_time/DateTimeUtilsImpl.kt deleted file mode 100644 index 65eebbc4..00000000 --- a/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/shared/date_time/DateTimeUtilsImpl.kt +++ /dev/null @@ -1,17 +0,0 @@ -package cz.opendatalab.egidio.backend.shared.date_time - -import cz.opendatalab.egidio.backend.business.custom_component_types.UtilityComponent -import java.time.Instant -import java.time.OffsetDateTime -import java.time.ZoneOffset - -@UtilityComponent -class DateTimeUtilsImpl : DateTimeUtils { - override fun utcOffsetDateTimeNow() : OffsetDateTime { - return OffsetDateTime.ofInstant(Instant.now(), ZoneOffset.UTC) - } - - override fun OffsetDateTimeNow() : OffsetDateTime { - return OffsetDateTime.now() - } -} \ No newline at end of file diff --git a/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/shared/hasher/Hasher.kt b/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/shared/hasher/Hasher.kt index dccc92fb..b23f11cb 100644 --- a/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/shared/hasher/Hasher.kt +++ b/source/backend/src/main/kotlin/cz/opendatalab/egidio/backend/shared/hasher/Hasher.kt @@ -3,6 +3,9 @@ package cz.opendatalab.egidio.backend.shared.hasher /** * Hash provider for the type [T] */ -interface Hasher { +fun interface Hasher { + /** + * Create hash for value + */ fun hash(value: T) : String }