From 751ae601b9c70ce2bbaa66c8c249c45ee98e35ea Mon Sep 17 00:00:00 2001 From: Roman Date: Wed, 1 Jul 2026 13:28:18 +0200 Subject: [PATCH] fixing up clight logging --- log/.gitkeep | 0 .../smartasset/client/MarketOrderClient.kt | 20 +++++++++++-------- .../smartasset/client/SteeringSignalClient.kt | 20 +++++++++++-------- .../smartasset/service/OrderBookService.kt | 17 +++++++++++++++- .../service/OrderBookServiceTest.kt | 4 +++- 5 files changed, 43 insertions(+), 18 deletions(-) create mode 100644 log/.gitkeep diff --git a/log/.gitkeep b/log/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/src/main/kotlin/com/frankenergie/smartasset/client/MarketOrderClient.kt b/src/main/kotlin/com/frankenergie/smartasset/client/MarketOrderClient.kt index 2e5e12b..10cbf76 100644 --- a/src/main/kotlin/com/frankenergie/smartasset/client/MarketOrderClient.kt +++ b/src/main/kotlin/com/frankenergie/smartasset/client/MarketOrderClient.kt @@ -9,17 +9,12 @@ import java.nio.file.StandardOpenOption @Component class MarketOrderClient( - @Value("\${market.orders.file:market_orders.log}") private val filePath: String + @Value("\${market.orders.file:log/market_orders.log}") private val filePath: String ) { private val file: Path = Path.of(filePath) - init { - if (!Files.exists(file)) { - Files.createFile(file) - } - } - fun sendOrder(order: MarketOrder) { + ensureFileExists() val line = formatOrder(order) Files.writeString(file, "$line\n", StandardOpenOption.APPEND) } @@ -30,7 +25,16 @@ class MarketOrderClient( } fun clear() { - Files.writeString(file, "") + if (Files.exists(file)) { + Files.writeString(file, "") + } + } + + private fun ensureFileExists() { + if (!Files.exists(file)) { + file.parent?.let { Files.createDirectories(it) } + Files.createFile(file) + } } private fun formatOrder(order: MarketOrder): String { diff --git a/src/main/kotlin/com/frankenergie/smartasset/client/SteeringSignalClient.kt b/src/main/kotlin/com/frankenergie/smartasset/client/SteeringSignalClient.kt index e9e76f6..aa7a621 100644 --- a/src/main/kotlin/com/frankenergie/smartasset/client/SteeringSignalClient.kt +++ b/src/main/kotlin/com/frankenergie/smartasset/client/SteeringSignalClient.kt @@ -9,17 +9,12 @@ import java.nio.file.StandardOpenOption @Component class SteeringSignalClient( - @Value("\${steering.signals.file:steering_signals.log}") private val filePath: String + @Value("\${steering.signals.file:log/steering_signals.log}") private val filePath: String ) { private val file: Path = Path.of(filePath) - init { - if (!Files.exists(file)) { - Files.createFile(file) - } - } - fun sendSignal(signal: SteeringSignal) { + ensureFileExists() val line = formatSignal(signal) Files.writeString(file, "$line\n", StandardOpenOption.APPEND) } @@ -30,7 +25,16 @@ class SteeringSignalClient( } fun clear() { - Files.writeString(file, "") + if (Files.exists(file)) { + Files.writeString(file, "") + } + } + + private fun ensureFileExists() { + if (!Files.exists(file)) { + file.parent?.let { Files.createDirectories(it) } + Files.createFile(file) + } } private fun formatSignal(signal: SteeringSignal): String { diff --git a/src/main/kotlin/com/frankenergie/smartasset/service/OrderBookService.kt b/src/main/kotlin/com/frankenergie/smartasset/service/OrderBookService.kt index 9ccf808..b10e3a8 100644 --- a/src/main/kotlin/com/frankenergie/smartasset/service/OrderBookService.kt +++ b/src/main/kotlin/com/frankenergie/smartasset/service/OrderBookService.kt @@ -1,8 +1,10 @@ package com.frankenergie.smartasset.service +import com.frankenergie.smartasset.client.MarketOrderClient import com.frankenergie.smartasset.domain.OrderBook import com.frankenergie.smartasset.model.DeliveryPeriod import com.frankenergie.smartasset.model.ExecutedPurchase +import com.frankenergie.smartasset.model.MarketOrder import com.frankenergie.smartasset.model.MarketOverviewResponse import com.frankenergie.smartasset.model.OrderSide import com.frankenergie.smartasset.model.OrderUpdateRequest @@ -15,7 +17,8 @@ import java.util.UUID @Service class OrderBookService( - private val purchaseTrackerService: PurchaseTrackerService + private val purchaseTrackerService: PurchaseTrackerService, + private val marketOrderClient: MarketOrderClient ) { private val orderBook = OrderBook() @@ -26,6 +29,18 @@ class OrderBookService( val period = DeliveryPeriod(request.deliveryStartTime, request.deliveryEndTime) val matchedQuantity = orderBook.processOrder(period, request.orderSide, request.quantity, request.price) + marketOrderClient.sendOrder( + MarketOrder( + orderId = orderId, + groupId = "default", + deliveryStart = request.deliveryStartTime, + deliveryEnd = request.deliveryEndTime, + side = request.orderSide, + quantity = request.quantity, + price = request.price + ) + ) + if (matchedQuantity > BigDecimal.ZERO && request.orderSide == OrderSide.BUY) { purchaseTrackerService.recordPurchase( ExecutedPurchase( diff --git a/src/test/kotlin/com/frankenergie/smartasset/service/OrderBookServiceTest.kt b/src/test/kotlin/com/frankenergie/smartasset/service/OrderBookServiceTest.kt index 1f6a885..258eeec 100644 --- a/src/test/kotlin/com/frankenergie/smartasset/service/OrderBookServiceTest.kt +++ b/src/test/kotlin/com/frankenergie/smartasset/service/OrderBookServiceTest.kt @@ -12,11 +12,13 @@ class OrderBookServiceTest { private lateinit var service: OrderBookService private lateinit var purchaseTrackerService: PurchaseTrackerService + private lateinit var marketOrderClient: com.frankenergie.smartasset.client.MarketOrderClient @BeforeEach fun setUp() { purchaseTrackerService = PurchaseTrackerService() - service = OrderBookService(purchaseTrackerService) + marketOrderClient = com.frankenergie.smartasset.client.MarketOrderClient("test_market_orders.log") + service = OrderBookService(purchaseTrackerService, marketOrderClient) } @Test