fixing up clight logging
This commit is contained in:
0
log/.gitkeep
Normal file
0
log/.gitkeep
Normal file
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user