From 3c27e83806c6f9d117a777e8539671b58c06cdce Mon Sep 17 00:00:00 2001 From: JarekIT Date: Sat, 4 Mar 2023 20:39:26 +0100 Subject: [PATCH 1/6] Update BorrowingAggregate.kt --- .../libruch/modules/borrowing/BorrowingAggregate.kt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt b/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt index 93ba013..0efcb49 100644 --- a/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt +++ b/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt @@ -7,6 +7,8 @@ import org.axonframework.extensions.kotlin.applyEvent import org.axonframework.modelling.command.AggregateIdentifier import org.axonframework.modelling.command.TargetAggregateIdentifier import org.axonframework.spring.stereotype.Aggregate +import java.time.Instant +import java.time.temporal.ChronoUnit import java.util.* /** @@ -20,6 +22,10 @@ class BorrowingAggregate() { @AggregateIdentifier lateinit var borrowing: UUID + var copyState = CopyState.AVAILABLE + var borrower: Party? = null + var deadline: Instant? = null + @CommandHandler constructor(command: RegisterNewBorrowing): this() { applyEvent(RegisteredNewBorrowing(command.isbn, UUID.randomUUID())) @@ -40,10 +46,12 @@ class BorrowingAggregate() { borrower != returnCopy.borrower -> throw OnlyBorrowerMayReturnCopy() else -> applyEvent(CopyReturned()) } + @EventSourcingHandler fun on(evt: CopyBorrowed) { this.copyState = CopyState.BORROWED this.borrower = evt.borrower + this.deadline = Instant.now().plus(30, ChronoUnit.DAYS) } @EventSourcingHandler @@ -51,8 +59,7 @@ class BorrowingAggregate() { this.copyState = CopyState.AVAILABLE this.borrower = null } - var copyState = CopyState.AVAILABLE - var borrower: Party? = null + } data class FindBorrowings (val isbn: String) From 59cae6da18a21069077236f3bde0597c62f1bdcd Mon Sep 17 00:00:00 2001 From: JarekIT Date: Sat, 4 Mar 2023 20:39:56 +0100 Subject: [PATCH 2/6] Update BorrowingAggregate.kt --- .../ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt b/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt index 0efcb49..ccbf6f4 100644 --- a/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt +++ b/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt @@ -20,7 +20,7 @@ import java.util.* class BorrowingAggregate() { @AggregateIdentifier - lateinit var borrowing: UUID + lateinit var borrowingId: UUID var copyState = CopyState.AVAILABLE var borrower: Party? = null From f658b4fee817dd19dfb76412abf27aea298c6b92 Mon Sep 17 00:00:00 2001 From: JarekIT Date: Sat, 4 Mar 2023 20:40:31 +0100 Subject: [PATCH 3/6] clean --- .../kotlin/com/ksidelta/libruch/modules/copy/CopyAggregate.kt | 1 - 1 file changed, 1 deletion(-) diff --git a/backend/src/main/kotlin/com/ksidelta/libruch/modules/copy/CopyAggregate.kt b/backend/src/main/kotlin/com/ksidelta/libruch/modules/copy/CopyAggregate.kt index 2a82d0f..a8bc125 100644 --- a/backend/src/main/kotlin/com/ksidelta/libruch/modules/copy/CopyAggregate.kt +++ b/backend/src/main/kotlin/com/ksidelta/libruch/modules/copy/CopyAggregate.kt @@ -6,7 +6,6 @@ import org.axonframework.commandhandling.CommandHandler import org.axonframework.eventsourcing.EventSourcingHandler import org.axonframework.modelling.command.AggregateIdentifier import org.axonframework.modelling.command.AggregateLifecycle.apply -import org.axonframework.modelling.command.TargetAggregateIdentifier import org.axonframework.spring.stereotype.Aggregate import java.util.* From 95fe5b49d3f0e462b16bacc072e29b707c7cd6ef Mon Sep 17 00:00:00 2001 From: JarekIT Date: Sat, 4 Mar 2023 20:41:29 +0100 Subject: [PATCH 4/6] Update BorrowingAggregate.kt --- .../ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt b/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt index ccbf6f4..91af39e 100644 --- a/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt +++ b/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt @@ -24,7 +24,7 @@ class BorrowingAggregate() { var copyState = CopyState.AVAILABLE var borrower: Party? = null - var deadline: Instant? = null + var returnDeadline: Instant? = null @CommandHandler constructor(command: RegisterNewBorrowing): this() { @@ -51,7 +51,7 @@ class BorrowingAggregate() { fun on(evt: CopyBorrowed) { this.copyState = CopyState.BORROWED this.borrower = evt.borrower - this.deadline = Instant.now().plus(30, ChronoUnit.DAYS) + this.returnDeadline = Instant.now().plus(30, ChronoUnit.DAYS) } @EventSourcingHandler From 2aa2316023f10c33263d0278732deb33f008cccd Mon Sep 17 00:00:00 2001 From: JarekIT Date: Sat, 4 Mar 2023 20:41:46 +0100 Subject: [PATCH 5/6] prettier --- .../libruch/modules/borrowing/BorrowingAggregate.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt b/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt index 91af39e..bec849c 100644 --- a/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt +++ b/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt @@ -27,7 +27,7 @@ class BorrowingAggregate() { var returnDeadline: Instant? = null @CommandHandler - constructor(command: RegisterNewBorrowing): this() { + constructor(command: RegisterNewBorrowing) : this() { applyEvent(RegisteredNewBorrowing(command.isbn, UUID.randomUUID())) } @@ -62,10 +62,10 @@ class BorrowingAggregate() { } -data class FindBorrowings (val isbn: String) +data class FindBorrowings(val isbn: String) -data class RegisterNewBorrowing (val isbn: String) -data class RegisteredNewBorrowing (val isbn: String, val uuid: UUID) +data class RegisterNewBorrowing(val isbn: String) +data class RegisteredNewBorrowing(val isbn: String, val uuid: UUID) data class BorrowCopy(@TargetAggregateIdentifier val copyId: UUID, val borrower: Party) data class ReturnCopy(@TargetAggregateIdentifier val copyId: UUID, val borrower: Party) @@ -76,6 +76,7 @@ enum class CopyState { RESERVED, BORROWED, } + class CopyAlreadyBorrowed() : Exception("Copy Already Borrowed") class CopyAlreadyAvailable() : Exception("Copy Already Returned") class OnlyBorrowerMayReturnCopy() : Exception("Copy Returned By Wrong Party") From d8c6c96640eb1dd17f550779b1a3f2857403d25a Mon Sep 17 00:00:00 2001 From: JarekIT Date: Sat, 4 Mar 2023 20:49:56 +0100 Subject: [PATCH 6/6] Update BorrowingAggregate.kt --- .../com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt b/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt index bec849c..1ea1b4d 100644 --- a/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt +++ b/backend/src/main/kotlin/com/ksidelta/libruch/modules/borrowing/BorrowingAggregate.kt @@ -58,6 +58,7 @@ class BorrowingAggregate() { fun on(evt: CopyReturned) { this.copyState = CopyState.AVAILABLE this.borrower = null + this.returnDeadline = null } }