refactor/update finishDate to be an Option type for better handling of missing values

This commit is contained in:
Hongwei 2025-07-09 14:56:22 +02:00
parent cb002cd23f
commit b9986b2969
10 changed files with 15 additions and 13 deletions

View File

@ -230,7 +230,7 @@ object MessageDocsSwaggerDefinitions
currency = currencyExample.value,
description = Some(transactionDescriptionExample.value),
startDate = DateWithDayExampleObject,
finishDate = DateWithDayExampleObject,
finishDate = Some(DateWithDayExampleObject),
balance = BigDecimal(balanceAmountExample.value),
status = transactionStatusExample.value,
)

View File

@ -1550,7 +1550,7 @@ trait RabbitMQConnector_vOct2024 extends Connector with MdcLoggable {
currency=currencyExample.value,
description=Some(transactionDescriptionExample.value),
startDate=toDate(transactionStartDateExample),
finishDate=toDate(transactionFinishDateExample),
finishDate=Some(toDate(transactionFinishDateExample)),
balance=BigDecimal(balanceExample.value),
status=transactionStatusExample.value
)))
@ -1685,7 +1685,7 @@ trait RabbitMQConnector_vOct2024 extends Connector with MdcLoggable {
currency=currencyExample.value,
description=Some(transactionDescriptionExample.value),
startDate=toDate(transactionStartDateExample),
finishDate=toDate(transactionFinishDateExample),
finishDate=Some(toDate(transactionFinishDateExample)),
balance=BigDecimal(balanceExample.value),
status=transactionStatusExample.value))
),

View File

@ -1498,7 +1498,7 @@ trait RestConnector_vMar2019 extends Connector with MdcLoggable {
currency=currencyExample.value,
description=Some(transactionDescriptionExample.value),
startDate=toDate(transactionStartDateExample),
finishDate=toDate(transactionFinishDateExample),
finishDate=Some(toDate(transactionFinishDateExample)),
balance=BigDecimal(balanceExample.value),
status=transactionStatusExample.value)))
),
@ -1632,7 +1632,7 @@ trait RestConnector_vMar2019 extends Connector with MdcLoggable {
currency=currencyExample.value,
description=Some(transactionDescriptionExample.value),
startDate=toDate(transactionStartDateExample),
finishDate=toDate(transactionFinishDateExample),
finishDate=Some(toDate(transactionFinishDateExample)),
balance=BigDecimal(balanceExample.value),
status=transactionStatusExample.value))
),

View File

@ -1479,7 +1479,7 @@ trait StoredProcedureConnector_vDec2019 extends Connector with MdcLoggable {
currency=currencyExample.value,
description=Some(transactionDescriptionExample.value),
startDate=toDate(transactionStartDateExample),
finishDate=toDate(transactionFinishDateExample),
finishDate=Some(toDate(transactionFinishDateExample)),
balance=BigDecimal(balanceExample.value),
status=transactionStatusExample.value)))
),
@ -1613,7 +1613,7 @@ trait StoredProcedureConnector_vDec2019 extends Connector with MdcLoggable {
currency=currencyExample.value,
description=Some(transactionDescriptionExample.value),
startDate=toDate(transactionStartDateExample),
finishDate=toDate(transactionFinishDateExample),
finishDate=Some(toDate(transactionFinishDateExample)),
balance=BigDecimal(balanceExample.value),
status=transactionStatusExample.value))
),

View File

@ -1,8 +1,10 @@
package code.management
import java.util.Date
import code.api.util.ErrorMessages._
import code.api.util.{APIUtil, CustomJsonFormats}
import code.api.util.APIUtil.DateWithMsExampleObject
import code.bankconnectors.{Connector, LocalMappedConnectorInternal}
import code.tesobe.ErrorMessage
import code.util.Helper.{MdcLoggable, ObpS}
@ -93,7 +95,7 @@ object ImporterAPI extends RestHelper with MdcLoggable {
val detailsJson = JObject(List( JField("type_en", JString(t.transactionType)),
JField("type", JString(t.transactionType)),
JField("posted", JString(formatDate(t.startDate))),
JField("completed", JString(formatDate(t.finishDate))),
JField("completed", JString(formatDate(t.finishDate.getOrElse(DateWithMsExampleObject)))),
JField("other_data", JString("")),
JField("new_balance", JObject(List( JField("currency", JString(t.currency)),
JField("amount", JString(t.balance.toString))))),

View File

@ -160,7 +160,7 @@ case class ViewExtended(val view: View) {
else None
val transactionFinishDate =
if (view.canSeeTransactionFinishDate) Some(transaction.finishDate)
if (view.canSeeTransactionFinishDate) transaction.finishDate
else None
val transactionBalance =

View File

@ -154,7 +154,7 @@ class MappedTransaction extends LongKeyedMapper[MappedTransaction] with IdPK wit
transactionCurrency,
transactionDescription,
tStartDate.get,
tFinishDate.get,
Some(tFinishDate.get),
newBalance,
status.get))
}

View File

@ -334,7 +334,7 @@ class SandboxDataLoadingTest extends FlatSpec with SendServerRequests with Match
}
foundTransaction.startDate.getTime should equal(toDate(transaction.details.posted).getTime)
foundTransaction.finishDate.getTime should equal(toDate(transaction.details.completed).getTime)
foundTransaction.finishDate.head.getTime should equal(toDate(transaction.details.completed).getTime)
//a counterparty should exist
val otherAcc = foundTransaction.otherAccount

View File

@ -145,7 +145,7 @@ class ImporterTest extends ServerSetup with MdcLoggable with DefaultConnectorTes
//compare time as a long to avoid issues comparing Dates, e.g. java.util.Date vs java.sql.Date
t.startDate.getTime should equal(importJsonDateFormat.parse(startDate).getTime)
t.finishDate.getTime should equal(importJsonDateFormat.parse(endDate).getTime)
t.finishDate.head.getTime should equal(importJsonDateFormat.parse(endDate).getTime)
}
scenario("Attempting to import transactions without using a secret key") {

View File

@ -1138,7 +1138,7 @@ case class Transaction(
// The date the transaction was initiated
startDate : Date,
// The date when the money finished changing hands
finishDate : Date,
finishDate : Option[Date],
//the new balance for the bank account
balance : BigDecimal,
status: String