From fb96e8f59f1013c29f79505d105a49a2015a33c8 Mon Sep 17 00:00:00 2001 From: Everett Sochowski Date: Thu, 19 Feb 2015 17:31:12 +0100 Subject: [PATCH] Refactor a call to Box.get to handle the error case --- .../code/bankconnectors/LocalConnector.scala | 2 +- .../model/dataAccess/OBPTransaction.scala | 29 +++++++++++-------- src/main/scala/code/tesobe/ImporterAPI.scala | 2 +- 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/src/main/scala/code/bankconnectors/LocalConnector.scala b/src/main/scala/code/bankconnectors/LocalConnector.scala index 9dc96cf8e..6182a511a 100644 --- a/src/main/scala/code/bankconnectors/LocalConnector.scala +++ b/src/main/scala/code/bankconnectors/LocalConnector.scala @@ -216,7 +216,7 @@ private object LocalConnector extends Connector with Loggable { def saveAndUpdateAccountBalance(transactionJS : JValue, thisAccount : Account) : Box[OBPEnvelope] = { - val envelope: Box[OBPEnvelope] = OBPEnvelope.envlopesFromJvalue(transactionJS) + val envelope: Box[OBPEnvelope] = OBPEnvelope.envelopesFromJValue(transactionJS) if(envelope.isDefined) { val e : OBPEnvelope = envelope.get diff --git a/src/main/scala/code/model/dataAccess/OBPTransaction.scala b/src/main/scala/code/model/dataAccess/OBPTransaction.scala index 18cf03cbb..ad185ee9f 100644 --- a/src/main/scala/code/model/dataAccess/OBPTransaction.scala +++ b/src/main/scala/code/model/dataAccess/OBPTransaction.scala @@ -188,18 +188,23 @@ class OBPEnvelope private() extends MongoRecord[OBPEnvelope] with ObjectIdPk[OBP object OBPEnvelope extends OBPEnvelope with MongoMetaRecord[OBPEnvelope] with Loggable { - def envlopesFromJvalue(jval: JValue) : Box[OBPEnvelope] = { - val created = fromJValue(jval) - val errors = created.get.validate - if(errors.isEmpty) - created match { - case Full(e) => Full(e) - case _ => Failure("could not create Envelope form JValue") - } - else{ - logger.warn("could not create a obp envelope.errors: ") - logger.warn(errors) - Empty + def envelopesFromJValue(jval: JValue) : Box[OBPEnvelope] = { + val createdBox = fromJValue(jval) + + createdBox match { + case Full(created) => + val errors = created.validate + if(errors.isEmpty) { + Full(created) + } else { + logger.warn("could not create a obp envelope.errors: ") + logger.warn(errors) + Empty + } + case Failure(msg, _, _) => + Failure(s"could not create Envelope from JValue: $msg") + case _ => + Failure(s"could not create Envelope from JValue") } } } diff --git a/src/main/scala/code/tesobe/ImporterAPI.scala b/src/main/scala/code/tesobe/ImporterAPI.scala index 81403a2c3..e0992303d 100644 --- a/src/main/scala/code/tesobe/ImporterAPI.scala +++ b/src/main/scala/code/tesobe/ImporterAPI.scala @@ -156,7 +156,7 @@ object ImporterAPI extends RestHelper with Loggable { def savetransactions ={ val rawEnvelopes = json._1.children val envelopes : List[OBPEnvelope]= rawEnvelopes.flatMap(e => { - OBPEnvelope.envlopesFromJvalue(e) + OBPEnvelope.envelopesFromJValue(e) }) def updateAccountBalance(accountNumber: String, bankId: String, account: Account) = {