Skip to content

Commit 67c78b9

Browse files
committed
minor refactoring
1 parent 53d025e commit 67c78b9

File tree

4 files changed

+18
-15
lines changed

4 files changed

+18
-15
lines changed

src/main/kotlin/com/fraktalio/example/fmodelspringdemo/adapter/web/rest/AggregateRestCommandController.kt

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,14 @@
11
package com.fraktalio.example.fmodelspringdemo.adapter.web.rest
22

33
import com.fraktalio.example.fmodelspringdemo.application.Aggregate
4-
import com.fraktalio.example.fmodelspringdemo.domain.*
4+
import com.fraktalio.example.fmodelspringdemo.domain.Command
5+
import com.fraktalio.example.fmodelspringdemo.domain.CreateRestaurantCommand
6+
import com.fraktalio.example.fmodelspringdemo.domain.Event
7+
import com.fraktalio.example.fmodelspringdemo.domain.PlaceOrderCommand
58
import com.fraktalio.fmodel.application.handleOptimistically
6-
import kotlinx.coroutines.FlowPreview
7-
import kotlinx.coroutines.flow.*
9+
import kotlinx.coroutines.ExperimentalCoroutinesApi
10+
import kotlinx.coroutines.flow.Flow
11+
import kotlinx.coroutines.flow.map
812
import org.springframework.web.bind.annotation.PathVariable
913
import org.springframework.web.bind.annotation.PostMapping
1014
import org.springframework.web.bind.annotation.RequestBody
@@ -14,7 +18,7 @@ import java.util.*
1418
@RestController
1519
class AggregateRestCommandController(private val aggregate: Aggregate) {
1620

17-
@OptIn(FlowPreview::class)
21+
@OptIn(ExperimentalCoroutinesApi::class)
1822
private fun handle(command: Command): Flow<Event?> =
1923
aggregate.handleOptimistically(command).map { it.first }
2024

src/main/kotlin/com/fraktalio/example/fmodelspringdemo/adapter/web/rsocket/AggregateRsocketCommandController.kt

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,19 @@
11
package com.fraktalio.example.fmodelspringdemo.adapter.web.rsocket
22

33
import com.fraktalio.example.fmodelspringdemo.application.Aggregate
4-
import com.fraktalio.example.fmodelspringdemo.domain.*
4+
import com.fraktalio.example.fmodelspringdemo.domain.Command
5+
import com.fraktalio.example.fmodelspringdemo.domain.Event
56
import com.fraktalio.fmodel.application.handleOptimistically
6-
import kotlinx.coroutines.FlowPreview
7-
import kotlinx.coroutines.flow.*
7+
import kotlinx.coroutines.ExperimentalCoroutinesApi
8+
import kotlinx.coroutines.flow.Flow
9+
import kotlinx.coroutines.flow.map
810
import org.springframework.messaging.handler.annotation.MessageMapping
911
import org.springframework.messaging.handler.annotation.Payload
1012
import org.springframework.stereotype.Controller
11-
import java.util.*
1213

1314
@Controller
1415
class AggregateRsocketCommandController(private val aggregate: Aggregate) {
15-
@OptIn(FlowPreview::class)
16+
@OptIn(ExperimentalCoroutinesApi::class)
1617
@MessageMapping("commands")
1718
fun handleCommand(@Payload commands: Flow<Command>): Flow<Event?> =
1819
aggregate.handleOptimistically(commands).map { it.first }

src/main/kotlin/com/fraktalio/example/fmodelspringdemo/application/Aggregate.kt

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,8 @@ package com.fraktalio.example.fmodelspringdemo.application
33
import com.fraktalio.example.fmodelspringdemo.domain.*
44
import com.fraktalio.fmodel.application.EventLockingRepository
55
import com.fraktalio.fmodel.application.EventSourcingLockingOrchestratingAggregate
6-
import com.fraktalio.fmodel.application.eventSourcingLockingOrchestratingAggregate
76
import com.fraktalio.fmodel.domain.combine
8-
import kotlinx.coroutines.FlowPreview
7+
import kotlinx.coroutines.ExperimentalCoroutinesApi
98
import java.util.*
109

1110
internal typealias AggregateEventRepository = EventLockingRepository<Command?, Event?, UUID?>
@@ -24,15 +23,15 @@ internal typealias Aggregate = EventSourcingLockingOrchestratingAggregate<Comman
2423
*
2524
* @author Иван Дугалић / Ivan Dugalic / @idugalic
2625
*/
27-
@OptIn(FlowPreview::class)
26+
@OptIn(ExperimentalCoroutinesApi::class)
2827
internal fun aggregate(
2928
orderDecider: OrderDecider,
3029
restaurantDecider: RestaurantDecider,
3130
orderSaga: OrderSaga,
3231
restaurantSaga: RestaurantSaga,
3332
eventRepository: AggregateEventRepository
3433

35-
): Aggregate = eventSourcingLockingOrchestratingAggregate(
34+
): Aggregate = EventSourcingLockingOrchestratingAggregate(
3635
// Combining two deciders into one.
3736
decider = orderDecider.combine(restaurantDecider),
3837
// How and where do you want to store new events.

src/main/kotlin/com/fraktalio/example/fmodelspringdemo/application/MaterializedView.kt

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@ package com.fraktalio.example.fmodelspringdemo.application
33
import com.fraktalio.example.fmodelspringdemo.domain.*
44
import com.fraktalio.fmodel.application.MaterializedView
55
import com.fraktalio.fmodel.application.ViewStateRepository
6-
import com.fraktalio.fmodel.application.materializedView
76
import com.fraktalio.fmodel.domain.combine
87

98
/**
@@ -31,7 +30,7 @@ internal fun materializedView(
3130
restaurantView: RestaurantView,
3231
orderView: OrderView,
3332
viewStateRepository: MaterializedViewStateRepository
34-
): OrderRestaurantMaterializedView = materializedView(
33+
): OrderRestaurantMaterializedView = MaterializedView(
3534
// Combining two views into one, and (di)map the inconvenient Pair into a domain specific Data class (MaterializedViewState) that will represent view state better.
3635
view = restaurantView.combine(orderView).dimapOnState(
3736
fl = { Pair(it.restaurant, it.order) },

0 commit comments

Comments
 (0)