diff --git a/obp-api/pom.xml b/obp-api/pom.xml index 3bb1e89ccf..5f62fa3a73 100644 --- a/obp-api/pom.xml +++ b/obp-api/pom.xml @@ -25,20 +25,27 @@ org.everit.json.schema 1.6.1 + ch.qos.logback logback-classic - 1.4.14 + 1.5.18 - net.liftweb - lift-mapper_${scala.version} + com.github.OpenBankProject.lift-persistence + lift-persistence_${scala.version} net.databinder.dispatch - dispatch-lift-json_${scala.version} + dispatch-core_${scala.version} 0.13.1 + + org.json4s + json4s-native_${scala.version} + org.slf4j log4j-over-slf4j @@ -181,12 +188,6 @@ 2.11.1 - - net.liftmodules - amqp_3.1_${scala.version} - 1.5.0 - - org.elasticsearch elasticsearch @@ -430,24 +431,7 @@ - - - org.scalikejdbc - scalikejdbc_${scala.version} - 3.4.0 - - - com.sun.activation - javax.activation - - - javax.activation - activation - - - - - + org.tpolecat @@ -464,12 +448,19 @@ mssql-jdbc 13.4.0.jre${java.version} - + + + org.scala-lang.modules + scala-collection-compat_${scala.version} + 2.1.2 + org.scala-lang.modules scala-xml_${scala.version} - 1.2.0 + 2.4.0 @@ -488,15 +479,20 @@ + org.graalvm.js js - 22.0.0.2 + 22.3.3 org.graalvm.js js-scriptengine - 22.0.0.2 + 22.3.3 diff --git a/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala b/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala index d54bb38157..681f0ad0ee 100644 --- a/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala +++ b/obp-api/src/main/scala/bootstrap/liftweb/Boot.scala @@ -26,6 +26,7 @@ TESOBE (http://www.tesobe.com/) */ package bootstrap.liftweb +import org.json4s._ import code.CustomerDependants.MappedCustomerDependant import code.DynamicData.DynamicData import code.DynamicEndpoint.DynamicEndpoint @@ -150,7 +151,7 @@ import com.openbankproject.commons.util.Functions.Implicits._ import com.openbankproject.commons.util.{ApiVersion, Functions} import net.liftweb.common._ import net.liftweb.db.{DB, DBLogEntry} -import net.liftweb.json.Extraction +import org.json4s.Extraction import net.liftweb.mapper.{DefaultConnectionIdentifier => _, _} // SiteMap imports removed - API-only mode, no portal pages import net.liftweb.util.Helpers._ diff --git a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/AccountsApi.scala b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/AccountsApi.scala index 4dc41a19aa..da32deac9d 100644 --- a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/AccountsApi.scala +++ b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/AccountsApi.scala @@ -9,8 +9,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/BankingApi.scala b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/BankingApi.scala index 8b8ec49e57..5484895fe6 100644 --- a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/BankingApi.scala +++ b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/BankingApi.scala @@ -11,8 +11,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.model.{AccountId, BankId} //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.{List, Nil} //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/CommonApi.scala b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/CommonApi.scala index cfb811b752..59e708ec05 100644 --- a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/CommonApi.scala +++ b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/CommonApi.scala @@ -9,8 +9,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/CustomerApi.scala b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/CustomerApi.scala index 97f214edc8..63832aa0dd 100644 --- a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/CustomerApi.scala +++ b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/CustomerApi.scala @@ -9,8 +9,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/DirectDebitsApi.scala b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/DirectDebitsApi.scala index 0c0b61be94..9131728c75 100644 --- a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/DirectDebitsApi.scala +++ b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/DirectDebitsApi.scala @@ -9,8 +9,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/DiscoveryApi.scala b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/DiscoveryApi.scala index 4d93a65d34..e3ff6ad1f3 100644 --- a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/DiscoveryApi.scala +++ b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/DiscoveryApi.scala @@ -9,8 +9,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/PayeesApi.scala b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/PayeesApi.scala index ca0a6220fa..20a7e53ddd 100644 --- a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/PayeesApi.scala +++ b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/PayeesApi.scala @@ -9,8 +9,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/ProductsApi.scala b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/ProductsApi.scala index 798af3b913..d23a433098 100644 --- a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/ProductsApi.scala +++ b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/ProductsApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/ScheduledPaymentsApi.scala b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/ScheduledPaymentsApi.scala index 82a3b3448f..926561e885 100644 --- a/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/ScheduledPaymentsApi.scala +++ b/obp-api/src/main/scala/code/api/AUOpenBanking/v1_0_0/ScheduledPaymentsApi.scala @@ -9,8 +9,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/AccountAccessConsentsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/AccountAccessConsentsApi.scala index d2dd7445cc..04cd8c8360 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/AccountAccessConsentsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/AccountAccessConsentsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/AccountsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/AccountsApi.scala index e883d65959..a20195d0f1 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/AccountsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/AccountsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/BalancesApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/BalancesApi.scala index 9065f848aa..63665702a2 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/BalancesApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/BalancesApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/BeneficiariesApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/BeneficiariesApi.scala index 41a2376d2d..e3885286fb 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/BeneficiariesApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/BeneficiariesApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DirectDebitsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DirectDebitsApi.scala index 5f39798d1b..c313180d16 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DirectDebitsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DirectDebitsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticFutureDatedPaymentConsentsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticFutureDatedPaymentConsentsApi.scala index 37cf586329..f330190bd9 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticFutureDatedPaymentConsentsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticFutureDatedPaymentConsentsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticFutureDatedPaymentsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticFutureDatedPaymentsApi.scala index 5ebd8b6f43..0ca330e815 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticFutureDatedPaymentsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticFutureDatedPaymentsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticPaymentsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticPaymentsApi.scala index c5f9a85497..a43e3eb9d1 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticPaymentsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticPaymentsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticPaymentsConsentsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticPaymentsConsentsApi.scala index 370b12a9c4..6e401bf1a7 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticPaymentsConsentsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/DomesticPaymentsConsentsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/EventNotificationApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/EventNotificationApi.scala index e63bc9f9cd..090fe1923e 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/EventNotificationApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/EventNotificationApi.scala @@ -10,8 +10,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/FilePaymentConsentsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/FilePaymentConsentsApi.scala index 3ee1913a15..00696c32b1 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/FilePaymentConsentsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/FilePaymentConsentsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/FilePaymentsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/FilePaymentsApi.scala index 366e30e2bd..6bb9fc7701 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/FilePaymentsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/FilePaymentsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/FutureDatedPaymentsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/FutureDatedPaymentsApi.scala index 92b8bdfecb..65a64945a7 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/FutureDatedPaymentsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/FutureDatedPaymentsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/InternationalPaymentConsentsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/InternationalPaymentConsentsApi.scala index 1ee4ce2ab9..a5e42c0848 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/InternationalPaymentConsentsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/InternationalPaymentConsentsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/InternationalPaymentsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/InternationalPaymentsApi.scala index 9b146ae096..966c2610f8 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/InternationalPaymentsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/InternationalPaymentsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/OffersApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/OffersApi.scala index 40d3ffb41a..a8ef0ed172 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/OffersApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/OffersApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/PartiesApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/PartiesApi.scala index 67d5c9d445..8c6c53c49f 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/PartiesApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/PartiesApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/StandingOrdersApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/StandingOrdersApi.scala index 9f6b956d40..bf8605cbb2 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/StandingOrdersApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/StandingOrdersApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/StatementsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/StatementsApi.scala index fbd17a1f4e..8ac872296d 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/StatementsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/StatementsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/SupplementaryAccountInfoApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/SupplementaryAccountInfoApi.scala index b115b3f6ca..ae47beb1ca 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/SupplementaryAccountInfoApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/SupplementaryAccountInfoApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/TransactionsApi.scala b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/TransactionsApi.scala index 9fb39fca2b..6114a754f3 100644 --- a/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/TransactionsApi.scala +++ b/obp-api/src/main/scala/code/api/BahrainOBF/v1_0_0/TransactionsApi.scala @@ -9,8 +9,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/DirectLoginRoutes.scala b/obp-api/src/main/scala/code/api/DirectLoginRoutes.scala index c5c88a62f1..cdb88e6de4 100644 --- a/obp-api/src/main/scala/code/api/DirectLoginRoutes.scala +++ b/obp-api/src/main/scala/code/api/DirectLoginRoutes.scala @@ -1,5 +1,6 @@ package code.api +import org.json4s._ import cats.effect.IO import code.api.util.{CallContext, CustomJsonFormats} import code.api.util.http4s.{Http4sCallContextBuilder, Http4sRequestAttributes} @@ -7,7 +8,7 @@ import code.api.util.http4s.Http4sRequestAttributes.EndpointHelpers import code.api.v6_0_0.JSONFactory600 import com.openbankproject.commons.ExecutionContext.Implicits.global import net.liftweb.common.Empty -import net.liftweb.json.Formats +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ diff --git a/obp-api/src/main/scala/code/api/GatewayLogin.scala b/obp-api/src/main/scala/code/api/GatewayLogin.scala index 72e908a29c..94dbcd4f7c 100755 --- a/obp-api/src/main/scala/code/api/GatewayLogin.scala +++ b/obp-api/src/main/scala/code/api/GatewayLogin.scala @@ -38,7 +38,8 @@ import code.util.Helper.MdcLoggable import com.nimbusds.jwt.JWTClaimsSet import com.openbankproject.commons.model.{InboundAccount, User} import net.liftweb.common._ -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.util.Helpers import com.openbankproject.commons.ExecutionContext.Implicits.global @@ -69,7 +70,7 @@ object JSONFactoryGateway { // HTTP routes of its own; the legacy `extends RestHelper` mixin was vestigial. object GatewayLogin extends MdcLoggable { - // For lift-json `.extract[PayloadOfJwtJSON]` calls below. + // For json4s `.extract[PayloadOfJwtJSON]` calls below. private implicit val formats: Formats = DefaultFormats val gateway = "Gateway" // This value is used for ResourceUser.provider and Consumer.description diff --git a/obp-api/src/main/scala/code/api/MxOF/APIMethods_AtmsApi.scala b/obp-api/src/main/scala/code/api/MxOF/APIMethods_AtmsApi.scala index 014bb8d69a..a8d3e933f6 100644 --- a/obp-api/src/main/scala/code/api/MxOF/APIMethods_AtmsApi.scala +++ b/obp-api/src/main/scala/code/api/MxOF/APIMethods_AtmsApi.scala @@ -16,8 +16,8 @@ //import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} //import dispatch.Future //import net.liftweb.common.{Box, Empty, Full} -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/MxOF/JSONFactory_MXOF_1_0_0.scala b/obp-api/src/main/scala/code/api/MxOF/JSONFactory_MXOF_1_0_0.scala index 3d17775dde..7f4bfbae22 100644 --- a/obp-api/src/main/scala/code/api/MxOF/JSONFactory_MXOF_1_0_0.scala +++ b/obp-api/src/main/scala/code/api/MxOF/JSONFactory_MXOF_1_0_0.scala @@ -5,7 +5,7 @@ //import code.atms.MappedAtm //import code.bankattribute.BankAttribute //import com.openbankproject.commons.model.Bank -//import net.liftweb.json.JValue +//import org.json4s.JValue // //import scala.collection.immutable.List //import com.openbankproject.commons.model._ diff --git a/obp-api/src/main/scala/code/api/OAuth2.scala b/obp-api/src/main/scala/code/api/OAuth2.scala index 57ac481c52..5a1dfdef7f 100644 --- a/obp-api/src/main/scala/code/api/OAuth2.scala +++ b/obp-api/src/main/scala/code/api/OAuth2.scala @@ -828,7 +828,8 @@ object OAuth2Login extends MdcLoggable { val consumerId = getClaim(name = "azp", jwtToken = token).getOrElse("") if(sourceOfTruth) { logger.debug("Extracting roles from Access Token") - import net.liftweb.json._ + import org.json4s._ + import com.openbankproject.commons.util.JsonAliases._ implicit val formats: Formats = DefaultFormats val jsonString = JwtUtil.getSignedPayloadAsJson(token) val json = parse(jsonString.getOrElse("")) diff --git a/obp-api/src/main/scala/code/api/OBPRestHelper.scala b/obp-api/src/main/scala/code/api/OBPRestHelper.scala index e3c177810d..4a89f7c0c0 100644 --- a/obp-api/src/main/scala/code/api/OBPRestHelper.scala +++ b/obp-api/src/main/scala/code/api/OBPRestHelper.scala @@ -27,6 +27,8 @@ TESOBE (http://www.tesobe.com/) package code.api +import org.json4s._ +import java.lang.ThreadLocal import scala.language.reflectiveCalls import scala.language.implicitConversions import code.api.Constant._ @@ -37,8 +39,8 @@ import com.alibaba.ttl.TransmittableThreadLocal import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} import net.liftweb.common._ -import net.liftweb.json.Extraction -import net.liftweb.json.JsonAST.JValue +import org.json4s.Extraction +import org.json4s.JsonAST.JValue import java.util.{Locale, MissingResourceException, ResourceBundle} import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/AISApi.scala b/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/AISApi.scala index 652400693f..f7dd8e809d 100644 --- a/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/AISApi.scala +++ b/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/AISApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/ASApi.scala b/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/ASApi.scala index 05a8207fe1..079291acee 100644 --- a/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/ASApi.scala +++ b/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/ASApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/CAFApi.scala b/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/CAFApi.scala index e81d1eea4c..6eea2f8923 100644 --- a/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/CAFApi.scala +++ b/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/CAFApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/PISApi.scala b/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/PISApi.scala index e8d5aef9f7..b00e16017f 100644 --- a/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/PISApi.scala +++ b/obp-api/src/main/scala/code/api/Polish/v2_1_1_1/PISApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/OpenAPI31JSONFactory.scala b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/OpenAPI31JSONFactory.scala index 9462198c08..dfbe35785f 100644 --- a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/OpenAPI31JSONFactory.scala +++ b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/OpenAPI31JSONFactory.scala @@ -32,9 +32,10 @@ import code.api.util._ import code.api.v1_4_0.JSONFactory1_4_0.ResourceDocJson import com.openbankproject.commons.model.ListResult import com.openbankproject.commons.util.{ApiVersion, JsonAble, JsonUtils, ReflectUtils} -import net.liftweb.json.JsonAST.{JArray, JObject, JValue} -import net.liftweb.json._ -import net.liftweb.json.Extraction +import org.json4s.JsonAST.{JArray, JObject, JValue} +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ +import org.json4s.Extraction import scala.collection.immutable.ListMap import scala.reflect.runtime.universe._ diff --git a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/ResourceDocsAPIMethods.scala b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/ResourceDocsAPIMethods.scala index 2bbcab180d..a83ec0a623 100644 --- a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/ResourceDocsAPIMethods.scala +++ b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/ResourceDocsAPIMethods.scala @@ -33,9 +33,10 @@ import com.openbankproject.commons.model.{BankId, ListResult, User} import com.openbankproject.commons.util.ApiStandards._ import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} import net.liftweb.common.{Box, Empty, Full} -import net.liftweb.json -import net.liftweb.json.JsonAST.{JField, JString, JValue} -import net.liftweb.json._ +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.{JField, JString, JValue} +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import java.util.concurrent.ConcurrentHashMap import scala.collection.immutable diff --git a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerDefinitionsJSON.scala b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerDefinitionsJSON.scala index 67d1e0f4fe..553258f238 100644 --- a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerDefinitionsJSON.scala +++ b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerDefinitionsJSON.scala @@ -1,5 +1,6 @@ package code.api.ResourceDocs1_4_0 +import org.json4s._ import scala.language.implicitConversions import code.api.Constant import code.api.Constant._ @@ -30,7 +31,7 @@ import com.openbankproject.commons.model._ import com.openbankproject.commons.model.enums.TransactionRequestTypes._ import com.openbankproject.commons.model.enums.{AttributeCategory, CardAttributeType, ChallengeType, TransactionRequestStatus} import com.openbankproject.commons.util.{ApiVersion, FieldNameApiVersions, ReflectUtils} -import net.liftweb.json +import com.openbankproject.commons.util.json import java.net.URLEncoder import java.util.Date @@ -6423,7 +6424,7 @@ object SwaggerDefinitionsJSON { // Signal Channels swagger examples lazy val postSignalMessageJsonV600 = PostSignalMessageJsonV600( - payload = net.liftweb.json.parse("""{"agent_name": "my-agent", "capabilities": ["summarize", "search"]}"""), + payload = com.openbankproject.commons.util.JsonAliases.parse("""{"agent_name": "my-agent", "capabilities": ["summarize", "search"]}"""), message_type = Some("announce"), to_user_id = None ) @@ -6436,7 +6437,7 @@ object SwaggerDefinitionsJSON { to_user_id = None, timestamp = "2026-02-20T10:30:00Z", message_type = "announce", - payload = net.liftweb.json.parse("""{"agent_name": "my-agent", "capabilities": ["summarize", "search"]}""") + payload = com.openbankproject.commons.util.JsonAliases.parse("""{"agent_name": "my-agent", "capabilities": ["summarize", "search"]}""") ) lazy val signalMessagesJsonV600 = SignalMessagesJsonV600( diff --git a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerJSONFactory.scala b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerJSONFactory.scala index 18ecdc734f..cc7b83b7ae 100644 --- a/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerJSONFactory.scala +++ b/obp-api/src/main/scala/code/api/ResourceDocs1_4_0/SwaggerJSONFactory.scala @@ -6,9 +6,9 @@ import code.api.util.APIUtil.{HTTPParam, EmptyBody, JArrayBody, PrimaryDataBody, import code.api.util.ErrorMessages._ import code.api.util._ import com.openbankproject.commons.util.{ApiVersion, EnumValue, JsonAble, JsonUtils, OBPEnumeration, ReflectUtils, ScannedApiVersion} -import net.liftweb -import net.liftweb.json.JsonAST.JValue -import net.liftweb.json._ +import org.json4s.JsonAST.JValue +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import scala.collection.immutable.ListMap import scala.reflect.runtime.universe._ @@ -33,7 +33,7 @@ import com.openbankproject.commons.model.ListResult import code.util.Helper.MdcLoggable import net.liftweb.common.Box.tryo import net.liftweb.common.{EmptyBox, Full} -import net.liftweb.json +import com.openbankproject.commons.util.json import scala.collection.GenTraversableLike import scala.reflect.runtime.universe @@ -976,7 +976,7 @@ object SwaggerJSONFactory extends MdcLoggable { * } ... */ // link ->https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#definitionsObject - def loadDefinitions(resourceDocList: List[JSONFactory1_4_0.ResourceDocJson], allSwaggerDefinitionCaseClasses: Seq[AnyRef]): liftweb.json.JValue = { + def loadDefinitions(resourceDocList: List[JSONFactory1_4_0.ResourceDocJson], allSwaggerDefinitionCaseClasses: Seq[AnyRef]): org.json4s.JValue = { // filter function: not null and not type of EnumValue, PrimaryDataBody, JObject, JArray. val predicate: Any => Boolean = { diff --git a/obp-api/src/main/scala/code/api/STET/v1_4/AISPApi.scala b/obp-api/src/main/scala/code/api/STET/v1_4/AISPApi.scala index b6f37d8880..b7417fa8ec 100644 --- a/obp-api/src/main/scala/code/api/STET/v1_4/AISPApi.scala +++ b/obp-api/src/main/scala/code/api/STET/v1_4/AISPApi.scala @@ -18,8 +18,8 @@ //import com.openbankproject.commons.ExecutionContext.Implicits.global //import com.openbankproject.commons.model.{AccountId, BankId, BankIdAccountId} //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.mutable.ArrayBuffer //import scala.concurrent.Future diff --git a/obp-api/src/main/scala/code/api/STET/v1_4/CBPIIApi.scala b/obp-api/src/main/scala/code/api/STET/v1_4/CBPIIApi.scala index 2accece1a5..0f8dd42d53 100644 --- a/obp-api/src/main/scala/code/api/STET/v1_4/CBPIIApi.scala +++ b/obp-api/src/main/scala/code/api/STET/v1_4/CBPIIApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/STET/v1_4/PISPApi.scala b/obp-api/src/main/scala/code/api/STET/v1_4/PISPApi.scala index f3be004974..9aa80dd93b 100644 --- a/obp-api/src/main/scala/code/api/STET/v1_4/PISPApi.scala +++ b/obp-api/src/main/scala/code/api/STET/v1_4/PISPApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v2_0_0/Http4sUKOBv200AIS.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v2_0_0/Http4sUKOBv200AIS.scala index 4e263394c3..21d6358c85 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v2_0_0/Http4sUKOBv200AIS.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v2_0_0/Http4sUKOBv200AIS.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v2_0_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.APIFailureNewStyle @@ -19,7 +20,7 @@ import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model.{AccountId, BankIdAccountId} import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} import net.liftweb.common.Full -import net.liftweb.json.Formats +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/AccountAccessApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/AccountAccessApi.scala index f720dddc39..e68c42636b 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/AccountAccessApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/AccountAccessApi.scala @@ -13,8 +13,8 @@ //import com.openbankproject.commons.ExecutionContext.Implicits.global //import com.openbankproject.commons.model.User //import net.liftweb.common.{Empty, Full} -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer @@ -216,7 +216,7 @@ // consent <- Future(Consents.consentProvider.vend.getConsentByConsentId(consentId)) map { // unboxFullOrFail(_, callContext, s"$ConsentNotFound ($consentId)") // } -// consentViews <- Future(JwtUtil.getSignedPayloadAsJson(consent.jsonWebToken).map(net.liftweb.json.parse(_).extract[ConsentJWT].views.map(_.view_id))) map { +// consentViews <- Future(JwtUtil.getSignedPayloadAsJson(consent.jsonWebToken).map(com.openbankproject.commons.util.JsonAliases.parse(_).extract[ConsentJWT].views.map(_.view_id))) map { // unboxFullOrFail(_, callContext, s"$ConsentViewNotFund ($consentId)") // } // } yield { diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/AccountsApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/AccountsApi.scala index 5d7829e0ac..8ee7627984 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/AccountsApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/AccountsApi.scala @@ -11,8 +11,8 @@ //import com.github.dwickern.macros.NameOf.nameOf //import com.openbankproject.commons.model.{AccountAttribute, AccountId, BankAccount, BankIdAccountId, View, ViewId} //import net.liftweb.common.{Box, Empty, Full} -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/BalancesApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/BalancesApi.scala index bd6a8b43be..fd6cbda732 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/BalancesApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/BalancesApi.scala @@ -12,8 +12,8 @@ //import com.openbankproject.commons.ExecutionContext.Implicits.global //import com.openbankproject.commons.model.{AccountId, BankIdAccountId, View, ViewId} //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.mutable.ArrayBuffer // diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/BeneficiariesApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/BeneficiariesApi.scala index 984540c0ca..4c228f7cc6 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/BeneficiariesApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/BeneficiariesApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DirectDebitsApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DirectDebitsApi.scala index 55c90ae3dc..f124172e2f 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DirectDebitsApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DirectDebitsApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DomesticPaymentsApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DomesticPaymentsApi.scala index 83fd57cb02..e7f0323328 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DomesticPaymentsApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DomesticPaymentsApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DomesticScheduledPaymentsApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DomesticScheduledPaymentsApi.scala index cc9a30d21c..b15cc06406 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DomesticScheduledPaymentsApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DomesticScheduledPaymentsApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DomesticStandingOrdersApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DomesticStandingOrdersApi.scala index 78eb39ecc9..a3c5053fb4 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DomesticStandingOrdersApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/DomesticStandingOrdersApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/FilePaymentsApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/FilePaymentsApi.scala index 1b7bb6d736..81b00b5de0 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/FilePaymentsApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/FilePaymentsApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/FundsConfirmationsApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/FundsConfirmationsApi.scala index 0844f5fbdb..d8e4d0bf3a 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/FundsConfirmationsApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/FundsConfirmationsApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310AccountAccess.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310AccountAccess.scala index 138a4c05d5..705245375d 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310AccountAccess.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310AccountAccess.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.Constant @@ -17,7 +18,7 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model.User import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json.Formats +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -35,7 +36,7 @@ object Http4sUKOBv310AccountAccess extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion lazy val createAccountAccessConsents: HttpRoutes[IO] = HttpRoutes.of[IO] { @@ -51,7 +52,7 @@ object Http4sUKOBv310AccountAccess extends MdcLoggable { case None => Future.failed(new RuntimeException(AuthenticatedUserIsRequired)) } consentJson <- Future.fromTry(scala.util.Try( - net.liftweb.json.parse(cc.httpBody.getOrElse("{}")).extract[ConsentPostBodyUKV310] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("{}")).extract[ConsentPostBodyUKV310] )) consumerId = cc.consumer.map(_.consumerId.get) _ <- passesPsd2Aisp(Some(cc)) @@ -68,7 +69,7 @@ object Http4sUKOBv310AccountAccess extends MdcLoggable { apiVersion = Some("3.1.0") )) map { i => connectorEmptyResponse(i, Some(cc)) } } yield { - net.liftweb.json.parse(s"""{ + com.openbankproject.commons.util.JsonAliases.parse(s"""{ "Meta" : { "LastAvailableDateTime" : "2000-01-23T06:44:05.618Z", "FirstAvailableDateTime" : "2000-01-23T06:44:05.618Z", @@ -178,10 +179,10 @@ object Http4sUKOBv310AccountAccess extends MdcLoggable { unboxFullOrFail(_, Some(cc), s"$ConsentNotFound ($consentId)") } consentViews <- Future(JwtUtil.getSignedPayloadAsJson(consent.jsonWebToken).map( - net.liftweb.json.parse(_).extract[ConsentJWT].views.map(_.view_id) + com.openbankproject.commons.util.JsonAliases.parse(_).extract[ConsentJWT].views.map(_.view_id) )) map { unboxFullOrFail(_, Some(cc), s"$ConsentViewNotFund ($consentId)") } } yield { - net.liftweb.json.parse(s"""{ + com.openbankproject.commons.util.JsonAliases.parse(s"""{ "Meta" : { "LastAvailableDateTime" : "2000-01-23T06:44:05.618Z", "FirstAvailableDateTime" : "2000-01-23T06:44:05.618Z", diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Accounts.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Accounts.scala index 776ad426e0..2eb6f349a1 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Accounts.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Accounts.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.Constant @@ -16,8 +17,8 @@ import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model.{AccountId, BankAccount, BankIdAccountId, View, ViewId} import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} import net.liftweb.common.{Box, Empty, Full} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -34,7 +35,7 @@ object Http4sUKOBv310Accounts extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion lazy val getAccounts: HttpRoutes[IO] = HttpRoutes.of[IO] { diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Balances.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Balances.scala index 9aba7d293e..947f9148f7 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Balances.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Balances.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.Constant @@ -17,8 +18,8 @@ import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model.{AccountId, BankIdAccountId, ViewId} import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} import net.liftweb.common.Full -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -34,7 +35,7 @@ object Http4sUKOBv310Balances extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("Balances") :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Beneficiaries.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Beneficiaries.scala index 5caf67a1a8..381c3162e0 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Beneficiaries.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Beneficiaries.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -32,7 +33,7 @@ object Http4sUKOBv310Beneficiaries extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("Beneficiaries") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DirectDebits.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DirectDebits.scala index ee80a79628..c411eebb87 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DirectDebits.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DirectDebits.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -27,7 +28,7 @@ object Http4sUKOBv310DirectDebits extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("Direct Debits") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DomesticPayments.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DomesticPayments.scala index 13b2c207ce..9a2fc49028 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DomesticPayments.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DomesticPayments.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -27,7 +28,7 @@ object Http4sUKOBv310DomesticPayments extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("Domestic Payments") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DomesticScheduledPayments.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DomesticScheduledPayments.scala index 481776f60f..c75204660f 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DomesticScheduledPayments.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DomesticScheduledPayments.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -27,7 +28,7 @@ object Http4sUKOBv310DomesticScheduledPayments extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("Domestic Scheduled Payments") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DomesticStandingOrders.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DomesticStandingOrders.scala index 28841a4654..027bd62860 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DomesticStandingOrders.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310DomesticStandingOrders.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -27,7 +28,7 @@ object Http4sUKOBv310DomesticStandingOrders extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("Domestic Standing Orders") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310FilePayments.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310FilePayments.scala index fbb28182ea..c3f7ba5852 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310FilePayments.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310FilePayments.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -27,7 +28,7 @@ object Http4sUKOBv310FilePayments extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("File Payments") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310FundsConfirmations.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310FundsConfirmations.scala index c92c707745..4907147e05 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310FundsConfirmations.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310FundsConfirmations.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -31,7 +32,7 @@ object Http4sUKOBv310FundsConfirmations extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("Funds Confirmations") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310InternationalPayments.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310InternationalPayments.scala index e2fa27b7a5..7adabdfc9a 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310InternationalPayments.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310InternationalPayments.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -27,7 +28,7 @@ object Http4sUKOBv310InternationalPayments extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("International Payments") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310InternationalScheduledPayments.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310InternationalScheduledPayments.scala index 5bed4d829c..987e4e4f08 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310InternationalScheduledPayments.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310InternationalScheduledPayments.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -27,7 +28,7 @@ object Http4sUKOBv310InternationalScheduledPayments extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("International Scheduled Payments") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310InternationalStandingOrders.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310InternationalStandingOrders.scala index 3b7f19a6b8..c1b6fe38ce 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310InternationalStandingOrders.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310InternationalStandingOrders.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -27,7 +28,7 @@ object Http4sUKOBv310InternationalStandingOrders extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("International Standing Orders") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Offers.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Offers.scala index 7ee56d27a6..7e81ef94d4 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Offers.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Offers.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -27,7 +28,7 @@ object Http4sUKOBv310Offers extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("Offers") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Partys.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Partys.scala index 39e16850f4..4b830ea02e 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Partys.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Partys.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -27,7 +28,7 @@ object Http4sUKOBv310Partys extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("Partys") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Products.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Products.scala index c6669b331e..d9ef3ddb27 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Products.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Products.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,7 +14,7 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json.Formats +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -35,7 +36,7 @@ object Http4sUKOBv310Products extends MdcLoggable { val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310ScheduledPayments.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310ScheduledPayments.scala index 1312d06381..ac411887bb 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310ScheduledPayments.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310ScheduledPayments.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -27,7 +28,7 @@ object Http4sUKOBv310ScheduledPayments extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("Scheduled Payments") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310StandingOrders.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310StandingOrders.scala index adbc7167c3..f7344c3373 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310StandingOrders.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310StandingOrders.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -27,7 +28,7 @@ object Http4sUKOBv310StandingOrders extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("Standing Orders") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Statements.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Statements.scala index 29c7b98f4d..bee31cccda 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Statements.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Statements.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.util.APIUtil.{EmptyBody, ResourceDoc, mockedDataText} @@ -13,8 +14,8 @@ import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -31,7 +32,7 @@ object Http4sUKOBv310Statements extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion private val tag = ApiTag("Statements") :: apiTagMockedData :: Nil diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Transactions.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Transactions.scala index 49003d0597..5199414fde 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Transactions.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/Http4sUKOBv310Transactions.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.APIFailureNewStyle @@ -21,8 +22,8 @@ import com.openbankproject.commons.model.{AccountId, BankId, BankIdAccountId, Tr import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} import net.liftweb.common.Full import code.model.{BankAccountExtended, UserExtended} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -43,7 +44,7 @@ object Http4sUKOBv310Transactions extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats val implementedInApiVersion: ScannedApiVersion = ApiVersion.ukOpenBankingV31 val resourceDocs = ArrayBuffer[ResourceDoc]() - private def parseBody(s: String): net.liftweb.json.JObject = net.liftweb.json.parse(s).asInstanceOf[net.liftweb.json.JObject] + private def parseBody(s: String): org.json4s.JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[org.json4s.JObject] val ukV31Prefix = Root / ApiVersion.ukOpenBankingV31.urlPrefix / ApiVersion.ukOpenBankingV31.apiShortVersion // ----------------------------------------------------------------------- diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/InternationalPaymentsApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/InternationalPaymentsApi.scala index 3bda543769..1302ef7e41 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/InternationalPaymentsApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/InternationalPaymentsApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/InternationalScheduledPaymentsApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/InternationalScheduledPaymentsApi.scala index 65c8694e0d..0c1985c894 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/InternationalScheduledPaymentsApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/InternationalScheduledPaymentsApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/InternationalStandingOrdersApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/InternationalStandingOrdersApi.scala index 0d16bae532..5c4dad471c 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/InternationalStandingOrdersApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/InternationalStandingOrdersApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/JSONFactory_UKOpenBanking_310.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/JSONFactory_UKOpenBanking_310.scala index 5fb9be3daa..396aa2fdfc 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/JSONFactory_UKOpenBanking_310.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/JSONFactory_UKOpenBanking_310.scala @@ -1,5 +1,6 @@ package code.api.UKOpenBanking.v3_1_0 +import org.json4s._ import java.util.Date import code.api.Constant @@ -7,7 +8,7 @@ import code.api.util.APIUtil.DateWithDayExampleObject import code.api.util.CustomJsonFormats import code.model.{ModeratedBankAccount, ModeratedBankAccountCore, ModeratedTransaction} import com.openbankproject.commons.model.{AccountAttribute, AccountId, AmountOfMoneyJsonV121, BankAccount, BankId, TransactionAttribute, TransactionId, TransactionRequest, View} -import net.liftweb.json.JsonAST.JObject +import org.json4s.JsonAST.JObject import scala.collection.immutable.List diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/OffersApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/OffersApi.scala index 41f3cf2f28..cf3690a61a 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/OffersApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/OffersApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/PartysApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/PartysApi.scala index 4cd10cd039..119ba15dd7 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/PartysApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/PartysApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/ProductsApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/ProductsApi.scala index 082443c285..f674dfd624 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/ProductsApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/ProductsApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/ScheduledPaymentsApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/ScheduledPaymentsApi.scala index 85a4c492d2..9ac6de97bb 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/ScheduledPaymentsApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/ScheduledPaymentsApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/StandingOrdersApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/StandingOrdersApi.scala index 4975cb89d9..02c8a1c1ed 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/StandingOrdersApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/StandingOrdersApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/StatementsApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/StatementsApi.scala index 64297498a0..5db70bdff6 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/StatementsApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/StatementsApi.scala @@ -8,8 +8,8 @@ //import code.api.util.ErrorMessages._ //import com.github.dwickern.macros.NameOf.nameOf //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/TransactionsApi.scala b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/TransactionsApi.scala index 0aaa4f04f0..86c61df431 100644 --- a/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/TransactionsApi.scala +++ b/obp-api/src/main/scala/code/api/UKOpenBanking/v3_1_0/TransactionsApi.scala @@ -15,8 +15,8 @@ //import com.openbankproject.commons.ExecutionContext.Implicits.global //import com.openbankproject.commons.model._ //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.mutable.ArrayBuffer //import scala.concurrent.Future diff --git a/obp-api/src/main/scala/code/api/berlin/group/v1_3/AccountInformationServiceAISApi.scala b/obp-api/src/main/scala/code/api/berlin/group/v1_3/AccountInformationServiceAISApi.scala index 2a87bd31e1..ff34a31ce1 100644 --- a/obp-api/src/main/scala/code/api/berlin/group/v1_3/AccountInformationServiceAISApi.scala +++ b/obp-api/src/main/scala/code/api/berlin/group/v1_3/AccountInformationServiceAISApi.scala @@ -26,8 +26,8 @@ //import com.openbankproject.commons.model.enums.{ChallengeType, StrongCustomerAuthenticationStatus, SuppliedAnswerType} //import net.liftweb //import net.liftweb.common.{Empty, Full} -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.mutable.ArrayBuffer //import scala.concurrent.Future @@ -1247,7 +1247,7 @@ // for { // (Full(u), callContext) <- authenticatedAccess(cc) // } yield { -// (liftweb.json.parse( +// (com.openbankproject.commons.util.JsonAliases.parse( // """{ // "scaStatus": "received", // "psuMessage": "Please use your BankApp for transaction Authorisation.", @@ -1289,7 +1289,7 @@ // for { // (Full(u), callContext) <- authenticatedAccess(cc) // } yield { -// (liftweb.json.parse( +// (com.openbankproject.commons.util.JsonAliases.parse( // """{ // "scaStatus": "received", // "psuMessage": "Please use your BankApp for transaction Authorisation.", @@ -1425,7 +1425,7 @@ // (Full(u), callContext) <- authenticatedAccess(cc) // // } yield { -// (liftweb.json.parse( +// (com.openbankproject.commons.util.JsonAliases.parse( // """{ // | "scaStatus": "psuAuthenticated", // | "_links": { @@ -1470,7 +1470,7 @@ // (Full(u), callContext) <- authenticatedAccess(cc) // // } yield { -// (liftweb.json.parse( +// (com.openbankproject.commons.util.JsonAliases.parse( // """{ // | "scaStatus": "scaMethodSelected", // | "chosenScaMethod": { diff --git a/obp-api/src/main/scala/code/api/berlin/group/v1_3/CommonServicesApi.scala b/obp-api/src/main/scala/code/api/berlin/group/v1_3/CommonServicesApi.scala index 7f70636ea7..e21016c2fe 100644 --- a/obp-api/src/main/scala/code/api/berlin/group/v1_3/CommonServicesApi.scala +++ b/obp-api/src/main/scala/code/api/berlin/group/v1_3/CommonServicesApi.scala @@ -8,7 +8,7 @@ //import code.api.builder.SigningBasketsApi.APIMethods_SigningBasketsApi //import code.api.util.APIUtil._ //import com.openbankproject.commons.util.ApiVersion -//import net.liftweb.json._ +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/api/berlin/group/v1_3/ConfirmationOfFundsServicePIISApi.scala b/obp-api/src/main/scala/code/api/berlin/group/v1_3/ConfirmationOfFundsServicePIISApi.scala index 6c48249395..7de7433432 100644 --- a/obp-api/src/main/scala/code/api/berlin/group/v1_3/ConfirmationOfFundsServicePIISApi.scala +++ b/obp-api/src/main/scala/code/api/berlin/group/v1_3/ConfirmationOfFundsServicePIISApi.scala @@ -14,8 +14,8 @@ //import com.openbankproject.commons.ExecutionContext.Implicits.global //import com.openbankproject.commons.util.ApiVersion //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.immutable.Nil //import scala.collection.mutable.ArrayBuffer @@ -99,7 +99,7 @@ // fundsAvailable = (currentAccountBalance >= requestChangedCurrencyAmount) // // } yield { -// (net.liftweb.json.parse(s"""{ +// (com.openbankproject.commons.util.JsonAliases.parse(s"""{ // "fundsAvailable" : $fundsAvailable // }"""), // callContext) diff --git a/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13AIS.scala b/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13AIS.scala index 195c7fe285..026c07b293 100644 --- a/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13AIS.scala +++ b/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13AIS.scala @@ -1,5 +1,6 @@ package code.api.berlin.group.v1_3 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.APIFailureNewStyle @@ -27,10 +28,9 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model._ import com.openbankproject.commons.model.enums.{ChallengeType, StrongCustomerAuthenticationStatus, SuppliedAnswerType} -import net.liftweb import net.liftweb.common.{Empty, Full} -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -44,7 +44,7 @@ object Http4sBGv13AIS extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats - protected implicit def JvalueToSuper(what: net.liftweb.json.JValue): JvalueCaseClass = JvalueCaseClass(what) + protected implicit def JvalueToSuper(what: org.json4s.JValue): JvalueCaseClass = JvalueCaseClass(what) val implementedInApiVersion = ConstantsBG.berlinGroupVersion1 val resourceDocs = ArrayBuffer[ResourceDoc]() @@ -516,7 +516,7 @@ object Http4sBGv13AIS extends MdcLoggable { } } else { // mocked for updatePsuAuthentication and selectPsuAuthenticationMethod variants - Future.successful(liftweb.json.parse( + Future.successful(com.openbankproject.commons.util.JsonAliases.parse( """{ "scaStatus": "received", "psuMessage": "Please use your BankApp for transaction Authorisation.", @@ -582,7 +582,7 @@ object Http4sBGv13AIS extends MdcLoggable { createPutConsentResponseJson(consent.toList.head) } } else if (checkUpdatePsuAuthentication(parsedJson)) { - Future.successful(liftweb.json.parse( + Future.successful(com.openbankproject.commons.util.JsonAliases.parse( """{ | "scaStatus": "psuAuthenticated", | "_links": { @@ -590,7 +590,7 @@ object Http4sBGv13AIS extends MdcLoggable { | } |}""".stripMargin)) } else if (checkSelectPsuAuthenticationMethod(parsedJson)) { - Future.successful(liftweb.json.parse( + Future.successful(com.openbankproject.commons.util.JsonAliases.parse( """{ | "scaStatus": "scaMethodSelected", | "chosenScaMethod": { @@ -605,7 +605,7 @@ object Http4sBGv13AIS extends MdcLoggable { |}""".stripMargin)) } else { // authorisationConfirmation variant - Future.successful(liftweb.json.parse( + Future.successful(com.openbankproject.commons.util.JsonAliases.parse( """{ | "scaStatus": "finalised", | "_links":{ diff --git a/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13PIIS.scala b/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13PIIS.scala index 302f7db8ae..9a9f1258ac 100644 --- a/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13PIIS.scala +++ b/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13PIIS.scala @@ -1,5 +1,6 @@ package code.api.berlin.group.v1_3 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.berlin.group.ConstantsBG @@ -15,8 +16,8 @@ import code.util.Helper import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.ExecutionContext.Implicits.global -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -31,7 +32,7 @@ object Http4sBGv13PIIS extends MdcLoggable { // ResourceDoc example bodies are written as `json.parse(...)` (JValue); ResourceDoc requires // scala.Product, so wrap via the same implicit the Lift builder used (JvalueCaseClass is a Product). - protected implicit def JvalueToSuper(what: net.liftweb.json.JValue): JvalueCaseClass = JvalueCaseClass(what) + protected implicit def JvalueToSuper(what: org.json4s.JValue): JvalueCaseClass = JvalueCaseClass(what) val implementedInApiVersion = ConstantsBG.berlinGroupVersion1 val resourceDocs = ArrayBuffer[ResourceDoc]() @@ -78,7 +79,7 @@ object Http4sBGv13PIIS extends MdcLoggable { fundsAvailable = (currentAccountBalance >= requestChangedCurrencyAmount) } yield { - net.liftweb.json.parse(s"""{ + com.openbankproject.commons.util.JsonAliases.parse(s"""{ "fundsAvailable" : $fundsAvailable }""") } diff --git a/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13PIS.scala b/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13PIS.scala index 38b8c964ac..b0300f0bc2 100644 --- a/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13PIS.scala +++ b/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13PIS.scala @@ -1,5 +1,6 @@ package code.api.berlin.group.v1_3 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.berlin.group.ConstantsBG @@ -24,10 +25,10 @@ import com.openbankproject.commons.model.enums.TransactionRequestTypes._ import com.openbankproject.commons.model.enums.{ChallengeType, PaymentServiceTypes, StrongCustomerAuthenticationStatus, SuppliedAnswerType, TransactionRequestStatus, TransactionRequestTypes} import net.liftweb.common.Box.tryo import net.liftweb.common.Full -import net.liftweb.json -import net.liftweb.json.Formats -import net.liftweb.json.JsonAST.prettyRender -import net.liftweb.json.{Extraction => LiftExtraction} +import com.openbankproject.commons.util.json +import org.json4s.Formats +import com.openbankproject.commons.util.JsonAliases.prettyRender +import org.json4s.{Extraction => LiftExtraction} import org.http4s._ import org.http4s.dsl.io._ @@ -46,7 +47,7 @@ object Http4sBGv13PIS extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats - protected implicit def JvalueToSuper(what: net.liftweb.json.JValue): JvalueCaseClass = JvalueCaseClass(what) + protected implicit def JvalueToSuper(what: org.json4s.JValue): JvalueCaseClass = JvalueCaseClass(what) val implementedInApiVersion = ConstantsBG.berlinGroupVersion1 val resourceDocs = ArrayBuffer[ResourceDoc]() @@ -76,7 +77,7 @@ object Http4sBGv13PIS extends MdcLoggable { paymentService: String, paymentProduct: String, callContext: Option[CallContext] - ): Future[net.liftweb.json.JValue] = { + ): Future[org.json4s.JValue] = { val u = callContext.flatMap(_.user.toOption) val rawBody = callContext.flatMap(_.httpBody).getOrElse("") val bodyJson = scala.util.Try(json.parse(rawBody)).getOrElse(json.JNothing) @@ -323,7 +324,7 @@ object Http4sBGv13PIS extends MdcLoggable { case req @ GET -> `bgV13Prefix` / paymentService / paymentProduct / paymentId / "status" => EndpointHelpers.executeAndRespond(req) { cc => val callContext = Some(cc) - import net.liftweb.json.JsonDSL._ + import org.json4s.JsonDSL._ for { _ <- passesPsd2Pisp(callContext) _ <- NewStyle.function.tryons(checkPaymentServerTypeError(paymentService), 404, callContext) { diff --git a/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13SigningBaskets.scala b/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13SigningBaskets.scala index 7c8e3b581e..11028b61bc 100644 --- a/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13SigningBaskets.scala +++ b/obp-api/src/main/scala/code/api/berlin/group/v1_3/Http4sBGv13SigningBaskets.scala @@ -1,5 +1,6 @@ package code.api.berlin.group.v1_3 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.berlin.group.ConstantsBG @@ -20,8 +21,8 @@ import com.openbankproject.commons.model.enums.TransactionRequestStatus.{COMPLET import com.openbankproject.commons.model.enums.{ChallengeType, StrongCustomerAuthenticationStatus, SuppliedAnswerType} import com.openbankproject.commons.model.{ChallengeTrait, TransactionRequestId} import net.liftweb.common.Empty -import net.liftweb.json -import net.liftweb.json.Formats +import com.openbankproject.commons.util.json +import org.json4s.Formats import org.http4s._ import org.http4s.dsl.io._ @@ -35,7 +36,7 @@ object Http4sBGv13SigningBaskets extends MdcLoggable { implicit val formats: Formats = CustomJsonFormats.formats - protected implicit def JvalueToSuper(what: net.liftweb.json.JValue): JvalueCaseClass = JvalueCaseClass(what) + protected implicit def JvalueToSuper(what: org.json4s.JValue): JvalueCaseClass = JvalueCaseClass(what) val implementedInApiVersion = ConstantsBG.berlinGroupVersion1 val resourceDocs = ArrayBuffer[ResourceDoc]() diff --git a/obp-api/src/main/scala/code/api/berlin/group/v1_3/JSONFactory_BERLIN_GROUP_1_3.scala b/obp-api/src/main/scala/code/api/berlin/group/v1_3/JSONFactory_BERLIN_GROUP_1_3.scala index 78a7e747ab..3a36351c17 100644 --- a/obp-api/src/main/scala/code/api/berlin/group/v1_3/JSONFactory_BERLIN_GROUP_1_3.scala +++ b/obp-api/src/main/scala/code/api/berlin/group/v1_3/JSONFactory_BERLIN_GROUP_1_3.scala @@ -1,5 +1,6 @@ package code.api.berlin.group.v1_3 +import org.json4s._ import code.api.Constant.bgRemoveSignOfAmounts import code.api.berlin.group.ConstantsBG import code.api.berlin.group.v1_3.model.TransactionStatus.mapTransactionStatus @@ -15,7 +16,8 @@ import com.openbankproject.commons.model._ import com.openbankproject.commons.model.enums.{AccountRoutingScheme, TransactionRequestStatus} import net.liftweb.common.Box.tryo import net.liftweb.common.{Box, Full} -import net.liftweb.json.{JValue, parse} +import org.json4s.JValue +import com.openbankproject.commons.util.JsonAliases.parse import java.text.SimpleDateFormat import java.util.Date diff --git a/obp-api/src/main/scala/code/api/berlin/group/v1_3/PaymentInitiationServicePISApi.scala b/obp-api/src/main/scala/code/api/berlin/group/v1_3/PaymentInitiationServicePISApi.scala index 5333135d1a..07547cb1a9 100644 --- a/obp-api/src/main/scala/code/api/berlin/group/v1_3/PaymentInitiationServicePISApi.scala +++ b/obp-api/src/main/scala/code/api/berlin/group/v1_3/PaymentInitiationServicePISApi.scala @@ -22,8 +22,8 @@ //import net.liftweb //import net.liftweb.common.Box.tryo //import net.liftweb.common.Full -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.mutable.ArrayBuffer //import scala.concurrent.Future @@ -539,7 +539,7 @@ // $additionalInstructions // // """ -// def initiatePaymentImplementation(paymentService: String, paymentProduct: String, json: liftweb.json.JValue, cc: CallContext) = { +// def initiatePaymentImplementation(paymentService: String, paymentProduct: String, json: org.json4s.JValue, cc: CallContext) = { // for { // (u, callContext) <- applicationAccess(cc) // _ <- passesPsd2Pisp(callContext) @@ -824,7 +824,7 @@ // for { // (_, callContext) <- authenticatedAccess(cc) // } yield { -// (liftweb.json.parse("""{ +// (com.openbankproject.commons.util.JsonAliases.parse("""{ // "challengeData": { // "scaStatus": "received", // "authorisationId": "88695566-6642-46d5-9985-0d824624f507", @@ -867,7 +867,7 @@ // for { // (Full(u), callContext) <- authenticatedAccess(cc) // } yield { -// (liftweb.json.parse( +// (com.openbankproject.commons.util.JsonAliases.parse( // """{ // "challengeData": { // "scaStatus": "received", @@ -1073,7 +1073,7 @@ // for { // (Full(u), callContext) <- authenticatedAccess(cc) // } yield { -// (liftweb.json.parse( +// (com.openbankproject.commons.util.JsonAliases.parse( // """{ // "scaStatus": "received", // "authorisationId": "123auth456", @@ -1117,7 +1117,7 @@ // for { // (Full(u), callContext) <- authenticatedAccess(cc) // } yield { -// (liftweb.json.parse( +// (com.openbankproject.commons.util.JsonAliases.parse( // """{ // "scaStatus": "received", // "authorisationId": "123auth456", @@ -1281,7 +1281,7 @@ // for { // (_, callContext) <- authenticatedAccess(cc) // } yield { -// (net.liftweb.json.parse( +// (com.openbankproject.commons.util.JsonAliases.parse( // """{ // "scaStatus": "psuAuthenticated", // "_links": { @@ -1323,7 +1323,7 @@ // for { // (_, callContext) <- authenticatedAccess(cc) // } yield { -// (net.liftweb.json.parse( +// (com.openbankproject.commons.util.JsonAliases.parse( // """{ // "scaStatus": "scaMethodSelected", // "chosenScaMethod": { @@ -1365,7 +1365,7 @@ // for { // (_, callContext) <- authenticatedAccess(cc) // } yield { -// (net.liftweb.json.parse( +// (com.openbankproject.commons.util.JsonAliases.parse( // """{ // "scaStatus": "finalised", // "_links":{ @@ -1525,7 +1525,7 @@ // (Full(u), callContext) <- authenticatedAccess(cc) // // } yield { -// (liftweb.json.parse( +// (com.openbankproject.commons.util.JsonAliases.parse( // """{ // "scaStatus": "finalised", // "_links": { @@ -1569,7 +1569,7 @@ // (Full(u), callContext) <- authenticatedAccess(cc) // // } yield { -// (liftweb.json.parse( +// (com.openbankproject.commons.util.JsonAliases.parse( // """{ // "scaStatus": "scaMethodSelected", // "chosenScaMethod": { @@ -1613,7 +1613,7 @@ // (Full(u), callContext) <- authenticatedAccess(cc) // // } yield { -// (liftweb.json.parse( +// (com.openbankproject.commons.util.JsonAliases.parse( // """{ // "scaStatus": "finalised", // "_links":{ diff --git a/obp-api/src/main/scala/code/api/berlin/group/v1_3/SigningBasketsApi.scala b/obp-api/src/main/scala/code/api/berlin/group/v1_3/SigningBasketsApi.scala index fe19268bbc..7ced23e87c 100644 --- a/obp-api/src/main/scala/code/api/berlin/group/v1_3/SigningBasketsApi.scala +++ b/obp-api/src/main/scala/code/api/berlin/group/v1_3/SigningBasketsApi.scala @@ -20,8 +20,8 @@ //import com.openbankproject.commons.model.{ChallengeTrait, TransactionRequestId} //import com.openbankproject.commons.util.ApiVersion //import net.liftweb.common.{Box, Empty, Full} -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ // //import scala.collection.mutable.ArrayBuffer //import scala.concurrent.Future diff --git a/obp-api/src/main/scala/code/api/berlin/group/v2/Http4sBGv2AIS.scala b/obp-api/src/main/scala/code/api/berlin/group/v2/Http4sBGv2AIS.scala index 88bbe4794a..5e6ac0f690 100644 --- a/obp-api/src/main/scala/code/api/berlin/group/v2/Http4sBGv2AIS.scala +++ b/obp-api/src/main/scala/code/api/berlin/group/v2/Http4sBGv2AIS.scala @@ -1,5 +1,6 @@ package code.api.berlin.group.v2 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.berlin.group.ConstantsBG @@ -9,8 +10,8 @@ import code.api.util.ErrorMessages._ import code.api.util.CustomJsonFormats import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.JsonAST.prettyRender -import net.liftweb.json.{Extraction, Formats} +import com.openbankproject.commons.util.JsonAliases.prettyRender +import org.json4s.{Extraction, Formats} import org.http4s._ import org.http4s.dsl.io._ diff --git a/obp-api/src/main/scala/code/api/berlin/group/v2/Http4sBGv2PIIS.scala b/obp-api/src/main/scala/code/api/berlin/group/v2/Http4sBGv2PIIS.scala index 70df81864e..2ea9a911ce 100644 --- a/obp-api/src/main/scala/code/api/berlin/group/v2/Http4sBGv2PIIS.scala +++ b/obp-api/src/main/scala/code/api/berlin/group/v2/Http4sBGv2PIIS.scala @@ -1,5 +1,6 @@ package code.api.berlin.group.v2 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.berlin.group.ConstantsBG @@ -9,8 +10,8 @@ import code.api.util.ErrorMessages._ import code.api.util.CustomJsonFormats import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.JsonAST.prettyRender -import net.liftweb.json.{Extraction, Formats} +import com.openbankproject.commons.util.JsonAliases.prettyRender +import org.json4s.{Extraction, Formats} import org.http4s._ import org.http4s.dsl.io._ diff --git a/obp-api/src/main/scala/code/api/berlin/group/v2/Http4sBGv2PIS.scala b/obp-api/src/main/scala/code/api/berlin/group/v2/Http4sBGv2PIS.scala index bbb999f444..7e45ce483e 100644 --- a/obp-api/src/main/scala/code/api/berlin/group/v2/Http4sBGv2PIS.scala +++ b/obp-api/src/main/scala/code/api/berlin/group/v2/Http4sBGv2PIS.scala @@ -1,5 +1,6 @@ package code.api.berlin.group.v2 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.berlin.group.ConstantsBG @@ -9,8 +10,8 @@ import code.api.util.ErrorMessages._ import code.api.util.CustomJsonFormats import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.JsonAST.prettyRender -import net.liftweb.json.{Extraction, Formats} +import com.openbankproject.commons.util.JsonAliases.prettyRender +import org.json4s.{Extraction, Formats} import org.http4s._ import org.http4s.dsl.io._ diff --git a/obp-api/src/main/scala/code/api/cache/RedisLogger.scala b/obp-api/src/main/scala/code/api/cache/RedisLogger.scala index 2307f15bbf..19bcce2781 100644 --- a/obp-api/src/main/scala/code/api/cache/RedisLogger.scala +++ b/obp-api/src/main/scala/code/api/cache/RedisLogger.scala @@ -1,12 +1,13 @@ package code.api.cache +import org.json4s._ import code.api.util.ApiRole._ import code.api.util.{APIUtil, ApiRole} import code.logcache.LogCacheEventBus import net.liftweb.common.{Box, Empty, Failure => LiftFailure, Full, Logger} -import net.liftweb.json -import net.liftweb.json.Serialization.write +import com.openbankproject.commons.util.json +import org.json4s.native.Serialization.write import redis.clients.jedis.{Jedis, Pipeline} import java.util.concurrent.{Executors, ScheduledThreadPoolExecutor, TimeUnit} diff --git a/obp-api/src/main/scala/code/api/dauth.scala b/obp-api/src/main/scala/code/api/dauth.scala index 97a414dbd6..3dccf258ba 100755 --- a/obp-api/src/main/scala/code/api/dauth.scala +++ b/obp-api/src/main/scala/code/api/dauth.scala @@ -35,7 +35,8 @@ import code.util.Helper.MdcLoggable import com.nimbusds.jwt.JWTClaimsSet import com.openbankproject.commons.model.User import net.liftweb.common._ -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import com.openbankproject.commons.ExecutionContext.Implicits.global import code.api.util.APIUtil.HTTPParam @@ -65,7 +66,7 @@ object JSONFactoryDAuth { // of its own; the legacy `extends RestHelper` mixin was vestigial. object DAuth extends MdcLoggable { - // For lift-json `.extract[...]` calls below. + // For json4s `.extract[...]` calls below. private implicit val formats: Formats = DefaultFormats diff --git a/obp-api/src/main/scala/code/api/dynamic/endpoint/APIMethodsDynamicEndpoint.scala b/obp-api/src/main/scala/code/api/dynamic/endpoint/APIMethodsDynamicEndpoint.scala index 985c4fed9b..1e7aea223a 100644 --- a/obp-api/src/main/scala/code/api/dynamic/endpoint/APIMethodsDynamicEndpoint.scala +++ b/obp-api/src/main/scala/code/api/dynamic/endpoint/APIMethodsDynamicEndpoint.scala @@ -17,9 +17,10 @@ import com.openbankproject.commons.model.enums.DynamicEntityOperation._ import com.openbankproject.commons.model.enums._ import com.openbankproject.commons.util.{ApiVersion, JsonUtils} import net.liftweb.common._ -import net.liftweb.json.JsonAST.JValue -import net.liftweb.json.JsonDSL._ -import net.liftweb.json._ +import org.json4s.JsonAST.JValue +import org.json4s.JsonDSL._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.util.StringHelpers import org.apache.commons.lang3.StringUtils @@ -110,9 +111,9 @@ trait APIMethodsDynamicEndpoint { Future.successful((EndpointMappingCommons(None, "", "", "", None), callContext)) } requestMappingString = endpointMapping.requestMapping - requestMappingJvalue = net.liftweb.json.parse(requestMappingString) + requestMappingJvalue = com.openbankproject.commons.util.JsonAliases.parse(requestMappingString) responseMappingString = endpointMapping.responseMapping - responseMappingJvalue = net.liftweb.json.parse(responseMappingString) + responseMappingJvalue = com.openbankproject.commons.util.JsonAliases.parse(responseMappingString) responseBody <- if (method.value.equalsIgnoreCase("get")) { for { @@ -122,7 +123,7 @@ trait APIMethodsDynamicEndpoint { dynamicData <- Future { DynamicDataProvider.connectorMethodProvider.vend.getAll(bankId, entityName, None, false) } - dynamicJsonData = JArray(dynamicData.map(it => net.liftweb.json.parse(it.dataJson)).map(_.asInstanceOf[JObject])) + dynamicJsonData = JArray(dynamicData.map(it => com.openbankproject.commons.util.JsonAliases.parse(it.dataJson)).map(_.asInstanceOf[JObject])) // //We only get the value, but not sure the field name of it. // // we can get the field name from the mapping: `primary_query_key` // //requestBodyMapping --> Convert `RequestJson` --> `DynamicEntity Model.` @@ -162,7 +163,7 @@ trait APIMethodsDynamicEndpoint { DynamicEndpointHelper.getEntityNameKeyAndValue(responseMappingString, pathParams) } dynamicData = DynamicDataProvider.connectorMethodProvider.vend.getAll(bankId, entityName, None,false) - dynamicJsonData = JArray(dynamicData.map(it => net.liftweb.json.parse(it.dataJson)).map(_.asInstanceOf[JObject])) + dynamicJsonData = JArray(dynamicData.map(it => com.openbankproject.commons.util.JsonAliases.parse(it.dataJson)).map(_.asInstanceOf[JObject])) entityObject = DynamicEndpointHelper.getObjectByKeyValuePair(dynamicJsonData, entityIdKey, entityIdValueFromUrl.get) isDeleted <- NewStyle.function.tryons(s"$InvalidEndpointMapping `response_mapping` must be linked to at least one valid dynamic entity!", 400, cc.callContext) { val entityIdName = DynamicEntityHelper.createEntityId(entityName) @@ -178,7 +179,7 @@ trait APIMethodsDynamicEndpoint { DynamicEndpointHelper.getEntityNameKeyAndValue(responseMappingString, pathParams) } dynamicData = DynamicDataProvider.connectorMethodProvider.vend.getAll(bankId, entityName, None, false) - dynamicJsonData = JArray(dynamicData.map(it => net.liftweb.json.parse(it.dataJson)).map(_.asInstanceOf[JObject])) + dynamicJsonData = JArray(dynamicData.map(it => com.openbankproject.commons.util.JsonAliases.parse(it.dataJson)).map(_.asInstanceOf[JObject])) entityObject = DynamicEndpointHelper.getObjectByKeyValuePair(dynamicJsonData, entityIdKey, entityIdValueFromUrl.get) _ <- NewStyle.function.tryons(s"$InvalidEndpointMapping `response_mapping` must be linked to at least one valid dynamic entity!", 400, cc.callContext) { val entityIdName = DynamicEntityHelper.createEntityId(entityName) diff --git a/obp-api/src/main/scala/code/api/dynamic/endpoint/Http4sDynamicEndpoint.scala b/obp-api/src/main/scala/code/api/dynamic/endpoint/Http4sDynamicEndpoint.scala index 6168fa98a0..b1440d5af7 100644 --- a/obp-api/src/main/scala/code/api/dynamic/endpoint/Http4sDynamicEndpoint.scala +++ b/obp-api/src/main/scala/code/api/dynamic/endpoint/Http4sDynamicEndpoint.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.dynamic.endpoint +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect.IO import code.api.dynamic.endpoint.helper.{DynamicEndpointHelper, DynamicEndpoints} @@ -34,8 +35,8 @@ import code.api.util.http4s.{ErrorResponseConverter, Http4sCallContextBuilder, H import code.util.Helper.MdcLoggable import com.openbankproject.commons.util.{ApiShortVersions, ApiStandards} import net.liftweb.common.{Box, Empty, Full} -import net.liftweb.json.Formats -import net.liftweb.json.JsonAST.{JNothing, JValue} +import org.json4s.Formats +import org.json4s.JsonAST.{JNothing, JValue} import org.http4s.{HttpRoutes, Request, Response} /** @@ -93,7 +94,7 @@ object Http4sDynamicEndpoint extends MdcLoggable { OptionT { val partPath = req.uri.path.segments.drop(2).map(_.encoded).toList // segments after obp/dynamic-endpoint Http4sCallContextBuilder.fromRequest(req, apiVersionString).flatMap { cc0 => - val bodyJValue: JValue = cc0.httpBody.filter(_.nonEmpty).map(net.liftweb.json.parse).getOrElse(JNothing) + val bodyJValue: JValue = cc0.httpBody.filter(_.nonEmpty).map(com.openbankproject.commons.util.JsonAliases.parse).getOrElse(JNothing) DynamicEndpointHelper.DynamicReq.resolveProxyTarget(req.method.name, partPath, queryParams(req), bodyJValue) match { case None => IO.pure(Option.empty[Response[IO]]) case Some((url, json, method, params, pathParams, role, operationId, mockResponse, bankId)) => @@ -122,7 +123,7 @@ object Http4sDynamicEndpoint extends MdcLoggable { Http4sCallContextBuilder.fromRequest(req, apiVersionString).flatMap { cc0 => val cc = cc0.copy(resourceDocument = Some(doc), operationId = Some(doc.operationId)) val partPath = req.uri.path.segments.drop(2).map(_.encoded).toList - val bodyJValue: Box[JValue] = cc.httpBody.filter(_.nonEmpty).map(net.liftweb.json.parse) match { + val bodyJValue: Box[JValue] = cc.httpBody.filter(_.nonEmpty).map(com.openbankproject.commons.util.JsonAliases.parse) match { case Some(jv) => Full(jv) case None => Empty } diff --git a/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/DynamicCompileEndpoint.scala b/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/DynamicCompileEndpoint.scala index 47c104a49e..b910f7d394 100644 --- a/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/DynamicCompileEndpoint.scala +++ b/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/DynamicCompileEndpoint.scala @@ -1,5 +1,6 @@ package code.api.dynamic.endpoint.helper +import org.json4s._ import scala.language.implicitConversions import cats.effect.IO import code.api.util.APIUtil.{Http4sEndpointIO, OBPReturnType} @@ -47,8 +48,9 @@ trait DynamicCompileEndpoint { } object DynamicCompileEndpoint { - import net.liftweb.json.{Extraction, prettyRender} - import net.liftweb.json.JsonDSL._ + import org.json4s.Extraction + import com.openbankproject.commons.util.JsonAliases.prettyRender + import org.json4s.JsonDSL._ import org.http4s.Status /** diff --git a/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/DynamicEndpointHelper.scala b/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/DynamicEndpointHelper.scala index 76b66b6cad..efb6aae404 100644 --- a/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/DynamicEndpointHelper.scala +++ b/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/DynamicEndpointHelper.scala @@ -1,5 +1,6 @@ package code.api.dynamic.endpoint.helper +import org.json4s._ import scala.language.existentials import org.apache.pekko.http.scaladsl.model.{HttpMethods, HttpMethod => PekkoHttpMethod} import code.DynamicData.{DynamicDataProvider, DynamicDataT} @@ -17,11 +18,10 @@ import io.swagger.v3.oas.models.responses.{ApiResponse, ApiResponses} import io.swagger.v3.oas.models.{OpenAPI, Operation, PathItem} import io.swagger.v3.parser.OpenAPIV3Parser import net.liftweb.common.{Box, Full} -import net.liftweb.json -import net.liftweb.json.JsonAST.{JArray, JField, JNothing, JObject, JValue} -import net.liftweb.json.JsonAST._ -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.JsonParser.ParseException +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.{JArray, JField, JNothing, JObject, JValue} +import org.json4s.JsonDSL._ +import org.json4s.ParserUtil.ParseException import org.apache.commons.lang3.{StringUtils, Validate} import net.liftweb.util.{StringHelpers, ThreadGlobal} import org.apache.commons.io.FileUtils @@ -34,12 +34,13 @@ import java.util.regex.Pattern import java.util.{Date, UUID} import com.openbankproject.commons.model.enums.DynamicEntityOperation.GET_ALL import io.swagger.v3.oas.models.examples.Example -import net.liftweb.json.{Formats, JBool} +import org.json4s.{Formats, JBool} import scala.collection.JavaConverters._ import scala.collection.immutable.List import scala.collection.mutable import scala.collection.mutable.{ArrayBuffer, ListBuffer} +import com.openbankproject.commons.util.JsonAliases.RichJField object DynamicEndpointHelper { @@ -841,7 +842,7 @@ object DynamicEndpointHelper { // // } --> // "field1" val JvalueReplaced = JvalueRemoved transform { - case JObject(List(JField("entity",JNothing), JField("field",v), JField("query",JNothing)))=> v + case JObject(List(JField("field", v))) => v } JvalueReplaced } diff --git a/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/DynamicEndpoints.scala b/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/DynamicEndpoints.scala index 8ed2b20487..2294a82332 100644 --- a/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/DynamicEndpoints.scala +++ b/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/DynamicEndpoints.scala @@ -1,5 +1,6 @@ package code.api.dynamic.endpoint.helper +import org.json4s._ import cats.effect.IO import code.api.dynamic.endpoint.helper.practise.{DynamicEndpointCodeGenerator, PractiseEndpointGroup} import code.api.dynamic.endpoint.helper.practise.PractiseEndpointGroup @@ -7,8 +8,8 @@ import code.api.util.DynamicUtil.{Sandbox, Validation} import code.api.util.APIUtil.{BooleanBody, DoubleBody, EmptyBody, LongBody, Http4sEndpointIO, PrimaryDataBody, ResourceDoc, StringBody, getDisabledEndpointOperationIds} import code.api.util.{CallContext, DynamicUtil} import net.liftweb.common.{Box, Failure, Full} -import net.liftweb.json.{JNothing, JValue} -import net.liftweb.json.JsonAST.{JBool, JDouble, JInt, JString} +import org.json4s.{JNothing, JValue} +import org.json4s.JsonAST.{JBool, JDouble, JInt, JString} import org.apache.commons.lang3.StringUtils import org.http4s.{Request, Response} @@ -120,7 +121,7 @@ case class CompiledObjects(exampleRequestBody: Option[JValue], successResponseBo |import code.api.util.ErrorMessages.{InvalidJsonFormat, InvalidRequestPayload} |import code.api.util.NewStyle.HttpCode |import code.api.util.APIUtil.OBPReturnType - |import net.liftweb.json.MappingException + |import org.json4s.MappingException |import code.api.dynamic.endpoint.helper.DynamicCompileEndpoint._ | |import scala.concurrent.Future diff --git a/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/practise/DynamicEndpointCodeGenerator.scala b/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/practise/DynamicEndpointCodeGenerator.scala index b66faa99bd..63071be975 100644 --- a/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/practise/DynamicEndpointCodeGenerator.scala +++ b/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/practise/DynamicEndpointCodeGenerator.scala @@ -1,12 +1,13 @@ package code.api.dynamic.endpoint.helper.practise +import org.json4s._ import code.api.util.APIUtil.ResourceDoc import code.api.v4_0_0.ResourceDocFragment import com.google.common.base.CaseFormat import com.openbankproject.commons.util.JsonUtils -import net.liftweb.json -import net.liftweb.json.JsonAST.{JBool, JDouble, JInt, JString} -import net.liftweb.json.{JArray, JObject, JValue} +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.{JBool, JDouble, JInt, JString} +import org.json4s.{JArray, JObject, JValue} import org.apache.commons.lang3.{ArrayUtils, StringUtils} object DynamicEndpointCodeGenerator { diff --git a/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/practise/PractiseEndpoint.scala b/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/practise/PractiseEndpoint.scala index 62b62a233e..cb1f400bdd 100644 --- a/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/practise/PractiseEndpoint.scala +++ b/obp-api/src/main/scala/code/api/dynamic/endpoint/helper/practise/PractiseEndpoint.scala @@ -1,5 +1,6 @@ package code.api.dynamic.endpoint.helper.practise +import org.json4s._ import code.api.dynamic.endpoint.helper.DynamicCompileEndpoint // any import statement here need be moved into the process method body @@ -24,7 +25,7 @@ object PractiseEndpoint extends DynamicCompileEndpoint { import cats.effect.IO import org.http4s.{Request, Response} - import net.liftweb.json.MappingException + import org.json4s.MappingException import scala.concurrent.Future import com.openbankproject.commons.ExecutionContext.Implicits.global @@ -66,7 +67,7 @@ object PractiseEndpoint extends DynamicCompileEndpoint { val requestEntity = callContext.httpBody.filter(_.nonEmpty) match { case Some(rawBody) => try { - net.liftweb.json.parse(rawBody).extract[RequestRootJsonClass] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[RequestRootJsonClass] } catch { case e: MappingException => return errorResponse(s"$InvalidJsonFormat ${e.msg}") diff --git a/obp-api/src/main/scala/code/api/dynamic/entity/APIMethodsDynamicEntity.scala b/obp-api/src/main/scala/code/api/dynamic/entity/APIMethodsDynamicEntity.scala index 8c54c55380..b1f172d46f 100644 --- a/obp-api/src/main/scala/code/api/dynamic/entity/APIMethodsDynamicEntity.scala +++ b/obp-api/src/main/scala/code/api/dynamic/entity/APIMethodsDynamicEntity.scala @@ -14,9 +14,10 @@ import com.openbankproject.commons.model.enums.DynamicEntityOperation._ import com.openbankproject.commons.model.enums._ import com.openbankproject.commons.util.{ApiVersion, JsonUtils} import net.liftweb.common._ -import net.liftweb.json.JsonAST.JValue -import net.liftweb.json.JsonDSL._ -import net.liftweb.json._ +import org.json4s.JsonAST.JValue +import org.json4s.JsonDSL._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.util.StringHelpers import org.apache.commons.lang3.StringUtils diff --git a/obp-api/src/main/scala/code/api/dynamic/entity/Http4sDynamicEntity.scala b/obp-api/src/main/scala/code/api/dynamic/entity/Http4sDynamicEntity.scala index 0e773699c6..82f248cdeb 100644 --- a/obp-api/src/main/scala/code/api/dynamic/entity/Http4sDynamicEntity.scala +++ b/obp-api/src/main/scala/code/api/dynamic/entity/Http4sDynamicEntity.scala @@ -46,9 +46,10 @@ import com.openbankproject.commons.model.enums.DynamicEntityOperation import com.openbankproject.commons.model.enums.DynamicEntityOperation._ import com.openbankproject.commons.util.{ApiShortVersions, ApiStandards, JsonUtils} import net.liftweb.common._ -import net.liftweb.json.JsonAST.{JArray, JBool, JObject, JValue} -import net.liftweb.json.JsonDSL._ -import net.liftweb.json._ +import org.json4s.JsonAST.{JArray, JBool, JObject, JValue} +import org.json4s.JsonDSL._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.util.StringHelpers import org.apache.commons.lang3.StringUtils import org.http4s.{HttpRoutes, Method, Request, Response} @@ -349,7 +350,7 @@ object Http4sDynamicEntity extends MdcLoggable { _ <- if (isPersonalEntity && !personalRequiresRole) Future.successful(true) else NewStyle.function.hasEntitlement(bankId.getOrElse(""), u.userId, DynamicEntityInfo.canCreateRole(entityName, bankId), callContext) _ <- failIf(afterIntercept(callContext, operationId), callContext) - json <- NewStyle.function.tryons(InvalidJsonFormat, 400, callContext) { net.liftweb.json.parse(cc.httpBody.getOrElse("")) } + json <- NewStyle.function.tryons(InvalidJsonFormat, 400, callContext) { com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")) } // Write-restricted fields are never set via POST; strip them before persisting. createJson = stripFields(json.asInstanceOf[JObject], writeRestrictedFieldsOf(bankId, entityName)) (box, _) <- NewStyle.function.invokeDynamicConnector(CREATE, entityName, Some(createJson), None, bankId, None, Some(u.userId), isPersonalEntity, Some(cc)) @@ -369,7 +370,7 @@ object Http4sDynamicEntity extends MdcLoggable { _ <- if (isPersonalEntity && !personalRequiresRole) Future.successful(true) else NewStyle.function.hasEntitlement(bankId.getOrElse(""), u.userId, DynamicEntityInfo.canUpdateRole(entityName, bankId), callContext) _ <- failIf(afterIntercept(callContext, operationId), callContext) - json <- NewStyle.function.tryons(InvalidJsonFormat, 400, callContext) { net.liftweb.json.parse(cc.httpBody.getOrElse("")) } + json <- NewStyle.function.tryons(InvalidJsonFormat, 400, callContext) { com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")) } (existing, _) <- NewStyle.function.invokeDynamicConnector(GET_ONE, entityName, None, Some(id), bankId, None, Some(u.userId), isPersonalEntity, Some(cc)) _ <- Helper.booleanToFuture(notFoundMsg(entityName, id, bankId), 404, cc = callContext) { existing.isDefined } // Write-restricted fields are not updated via PUT; preserve their existing values. @@ -389,7 +390,7 @@ object Http4sDynamicEntity extends MdcLoggable { (_, callContext) <- bankCheck(bankId, callContext) personalRequiresRole = DynamicEntityHelper.definitionsMap.get((bankId, entityName)).exists(_.personalRequiresRole) _ <- failIf(afterIntercept(callContext, operationId), callContext) - json <- NewStyle.function.tryons(InvalidJsonFormat, 400, callContext) { net.liftweb.json.parse(cc.httpBody.getOrElse("")) } + json <- NewStyle.function.tryons(InvalidJsonFormat, 400, callContext) { com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")) } bodyObj = json.asInstanceOf[JObject] // Per-field authorisation: each field present in the body needs the role that governs it — its field // write role if write-restricted, otherwise the entity update role. No blanket entity-update precondition. @@ -421,8 +422,8 @@ object Http4sDynamicEntity extends MdcLoggable { (existing, _) <- NewStyle.function.invokeDynamicConnector(GET_ONE, entityName, None, Some(id), bankId, None, Some(u.userId), isPersonalEntity, Some(cc)) _ <- Helper.booleanToFuture(notFoundMsg(entityName, id, bankId), 404, cc = callContext) { existing.isDefined } (box, _) <- NewStyle.function.invokeDynamicConnector(DELETE, entityName, None, Some(id), bankId, None, Some(u.userId), isPersonalEntity, Some(cc)) - deleteResult: JBool = unboxResult(box.asInstanceOf[Box[JBool]], entityName) - } yield deleteResult + _: JBool = unboxResult(box.asInstanceOf[Box[JBool]], entityName) + } yield JObject(Nil) } // ----- public endpoint (anonymous, read-only; before-interceptors only, no role) ----- @@ -478,7 +479,7 @@ object Http4sDynamicEntity extends MdcLoggable { } else { val singleResult = DynamicDataProvider.connectorMethodProvider.vend.getCommunity(bankId, entityName, id) val singleObject: JValue = singleResult match { - case Full(data) => net.liftweb.json.parse(data.dataJson) + case Full(data) => com.openbankproject.commons.util.JsonAliases.parse(data.dataJson) case _ => throw new RuntimeException(notFoundMsg(entityName, id, bankId)) } wrapBankId(bankId, (singleName(entityName) -> applyReadRestrictions(singleObject, bankId, entityName, Some(u.userId)))) diff --git a/obp-api/src/main/scala/code/api/dynamic/entity/helper/DynamicEntityHelper.scala b/obp-api/src/main/scala/code/api/dynamic/entity/helper/DynamicEntityHelper.scala index a68b537e9e..2ba96a112e 100644 --- a/obp-api/src/main/scala/code/api/dynamic/entity/helper/DynamicEntityHelper.scala +++ b/obp-api/src/main/scala/code/api/dynamic/entity/helper/DynamicEntityHelper.scala @@ -7,8 +7,9 @@ import code.api.util.ErrorMessages.{InvalidJsonFormat, UnknownError, UserHasMiss import code.api.util._ import com.openbankproject.commons.model.enums.{DynamicEntityFieldType, DynamicEntityOperation} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonDSL._ -import net.liftweb.json._ +import org.json4s.JsonDSL._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.util.StringHelpers import org.apache.commons.lang3.StringUtils @@ -725,7 +726,7 @@ object DynamicEntityHelper { } case class DynamicEntityInfo(definition: String, entityName: String, bankId: Option[String], hasPersonalEntity: Boolean, hasPublicAccess: Boolean = false, hasCommunityAccess: Boolean = false, personalRequiresRole: Boolean = false) { - import net.liftweb.json + import com.openbankproject.commons.util.json import code.api.dynamic.entity.query.FieldSpec val subEntities: List[DynamicEntityInfo] = Nil diff --git a/obp-api/src/main/scala/code/api/dynamic/entity/projection/PostgresProjectionBackend.scala b/obp-api/src/main/scala/code/api/dynamic/entity/projection/PostgresProjectionBackend.scala index 2c983e5956..de9356af05 100644 --- a/obp-api/src/main/scala/code/api/dynamic/entity/projection/PostgresProjectionBackend.scala +++ b/obp-api/src/main/scala/code/api/dynamic/entity/projection/PostgresProjectionBackend.scala @@ -5,7 +5,7 @@ import code.api.dynamic.entity.helper.DynamicEntityHelper import code.api.dynamic.entity.query.{DynamicEntityQueryBackend, QueryPlan} import doobie._ import doobie.implicits._ -import net.liftweb.json.JsonAST.JObject +import org.json4s.JsonAST.JObject /** * Approach A query backend (DE_indexing, Phase 3): serves a validated [[QueryPlan]] from the entity's @@ -42,7 +42,7 @@ object PostgresProjectionBackend extends DynamicEntityQueryBackend { fr"JOIN" ++ Fragment.const(s"${ProjectionStore.blobTable} $D") ++ fr"ON" ++ Fragment.const(s"$D.${ProjectionStore.idColumn} = $P.data_id") ++ whereAll ++ ords ++ ProjectionSql.limitOffset(plan) - ProjectionDb.run(q.query[String].to[List]).map(_.map(s => net.liftweb.json.parse(s).asInstanceOf[JObject])) + ProjectionDb.run(q.query[String].to[List]).map(_.map(s => com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[JObject])) case _ => IO.raiseError(new RuntimeException(s"PostgresProjectionBackend: unresolved field in query plan for $entityName")) } diff --git a/obp-api/src/main/scala/code/api/dynamic/entity/projection/ProjectionCoerce.scala b/obp-api/src/main/scala/code/api/dynamic/entity/projection/ProjectionCoerce.scala index 2b51062f10..e00359f116 100644 --- a/obp-api/src/main/scala/code/api/dynamic/entity/projection/ProjectionCoerce.scala +++ b/obp-api/src/main/scala/code/api/dynamic/entity/projection/ProjectionCoerce.scala @@ -1,7 +1,7 @@ package code.api.dynamic.entity.projection import com.openbankproject.commons.model.enums.DynamicEntityFieldType -import net.liftweb.json.JsonAST._ +import org.json4s.JsonAST._ import java.time.LocalDate import scala.util.Try diff --git a/obp-api/src/main/scala/code/api/dynamic/entity/projection/ProjectionDualWrite.scala b/obp-api/src/main/scala/code/api/dynamic/entity/projection/ProjectionDualWrite.scala index 76cb2707c4..d59fb43ab9 100644 --- a/obp-api/src/main/scala/code/api/dynamic/entity/projection/ProjectionDualWrite.scala +++ b/obp-api/src/main/scala/code/api/dynamic/entity/projection/ProjectionDualWrite.scala @@ -4,7 +4,7 @@ import code.api.dynamic.entity.helper.DynamicEntityHelper import code.api.dynamic.entity.query.OperatorMatrix import code.api.util.DoobieUtil import code.util.Helper.MdcLoggable -import net.liftweb.json.JsonAST.JObject +import org.json4s.JsonAST.JObject /** * Keeps a record's projection row in sync on the write path (DE_indexing, Phase 3). Guarded by diff --git a/obp-api/src/main/scala/code/api/dynamic/entity/projection/ProjectionProvisioner.scala b/obp-api/src/main/scala/code/api/dynamic/entity/projection/ProjectionProvisioner.scala index bad34b49c7..048aac9d95 100644 --- a/obp-api/src/main/scala/code/api/dynamic/entity/projection/ProjectionProvisioner.scala +++ b/obp-api/src/main/scala/code/api/dynamic/entity/projection/ProjectionProvisioner.scala @@ -66,7 +66,7 @@ object ProjectionProvisioner extends MdcLoggable { for { rows <- ProjectionDb.run(ProjectionStore.readBlobRows(bankId, entityName, isPersonalEntity, userId)) _ <- rows.traverse_ { case (id, jsonStr) => - val obj = net.liftweb.json.parse(jsonStr) + val obj = com.openbankproject.commons.util.JsonAliases.parse(jsonStr) val cols = fields.map { case (f, spec) => ProjectionStore.ColumnValue( ProjectionNaming.columnName(f), diff --git a/obp-api/src/main/scala/code/api/dynamic/entity/query/DynamicEntityQueryBackend.scala b/obp-api/src/main/scala/code/api/dynamic/entity/query/DynamicEntityQueryBackend.scala index 6c6bcff6b4..eb8205ecf6 100644 --- a/obp-api/src/main/scala/code/api/dynamic/entity/query/DynamicEntityQueryBackend.scala +++ b/obp-api/src/main/scala/code/api/dynamic/entity/query/DynamicEntityQueryBackend.scala @@ -1,7 +1,7 @@ package code.api.dynamic.entity.query import cats.effect.IO -import net.liftweb.json.JsonAST.JObject +import org.json4s.JsonAST.JObject /** * The Shape B seam: one query contract, swappable implementations. diff --git a/obp-api/src/main/scala/code/api/dynamic/entity/query/InMemoryQueryExecutor.scala b/obp-api/src/main/scala/code/api/dynamic/entity/query/InMemoryQueryExecutor.scala index 60e1f21211..5d0edc15ec 100644 --- a/obp-api/src/main/scala/code/api/dynamic/entity/query/InMemoryQueryExecutor.scala +++ b/obp-api/src/main/scala/code/api/dynamic/entity/query/InMemoryQueryExecutor.scala @@ -1,7 +1,7 @@ package code.api.dynamic.entity.query import com.openbankproject.commons.model.enums.DynamicEntityFieldType -import net.liftweb.json.JsonAST._ +import org.json4s.JsonAST._ import scala.util.Try diff --git a/obp-api/src/main/scala/code/api/openidconnect.scala b/obp-api/src/main/scala/code/api/openidconnect.scala index b8c491d9ab..cb3b2d67e2 100644 --- a/obp-api/src/main/scala/code/api/openidconnect.scala +++ b/obp-api/src/main/scala/code/api/openidconnect.scala @@ -39,8 +39,8 @@ //import com.openbankproject.commons.model.User //import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus} //import net.liftweb.common._ -//import net.liftweb.json -//import net.liftweb.json.JValue +//import com.openbankproject.commons.util.json +//import org.json4s.JValue //import net.liftweb.mapper.By //import net.liftweb.util.Helpers //import net.liftweb.util.Helpers._ diff --git a/obp-api/src/main/scala/code/api/sandbox/SandboxApiCalls.scala b/obp-api/src/main/scala/code/api/sandbox/SandboxApiCalls.scala index 8390eb2dd5..1452ecf721 100644 --- a/obp-api/src/main/scala/code/api/sandbox/SandboxApiCalls.scala +++ b/obp-api/src/main/scala/code/api/sandbox/SandboxApiCalls.scala @@ -8,7 +8,7 @@ //import code.util.Helper //import code.util.Helper.MdcLoggable //import com.openbankproject.commons.util.ApiVersion -//import net.liftweb.json.Extraction +//import org.json4s.Extraction //import net.liftweb.util.Helpers._ // // diff --git a/obp-api/src/main/scala/code/api/util/APIUtil.scala b/obp-api/src/main/scala/code/api/util/APIUtil.scala index 9981d6168b..753e622488 100644 --- a/obp-api/src/main/scala/code/api/util/APIUtil.scala +++ b/obp-api/src/main/scala/code/api/util/APIUtil.scala @@ -80,13 +80,13 @@ import com.openbankproject.commons.util.Functions.Implicits._ import com.openbankproject.commons.util._ import javassist.expr.{ExprEditor, MethodCall} import javassist.{CannotCompileException, ClassPool, LoaderClassPath} -import net.liftweb.actor.LAFuture import net.liftweb.common._ import code.api.JsonResponse -import net.liftweb.json -import net.liftweb.json.JsonAST.{JField, JNothing, JObject, JString, JValue} -import net.liftweb.json.JsonParser.ParseException -import net.liftweb.json._ +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.{JField, JNothing, JObject, JString, JValue} +import org.json4s.ParserUtil.ParseException +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.mapper.By import net.liftweb.util.Helpers._ import net.liftweb.util._ @@ -706,7 +706,7 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{ val responseHeaders = getRequestHeadersNewStyle(callContext,httpBody).list JsonResponse(JNull, getHeaders() ::: headers.list ::: jwsHeaders ::: responseHeaders, Nil, 204) case Some(c) if c.httpCode.isDefined => - val httpBody = Full(JsonAST.compactRender(jsonValue)) + val httpBody = Full(com.openbankproject.commons.util.JsonAliases.compactRender(jsonValue)) val jwsHeaders = getSignRequestHeadersNewStyle(callContext,httpBody).list val responseHeaders = getRequestHeadersNewStyle(callContext,httpBody).list val code = checkConditionalRequest(callContext, c.verb, c.httpCode.get, httpBody) @@ -720,7 +720,7 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{ val responseHeaders = getRequestHeadersNewStyle(callContext,httpBody).list JsonResponse(JNull, getHeaders() ::: headers.list ::: jwsHeaders ::: responseHeaders, Nil, 204) case _ => - val httpBody = Full(JsonAST.compactRender(jsonValue)) + val httpBody = Full(com.openbankproject.commons.util.JsonAliases.compactRender(jsonValue)) val jwsHeaders = getSignRequestHeadersNewStyle(callContext,httpBody).list val responseHeaders = getRequestHeadersNewStyle(callContext,httpBody).list JsonResponse(jsonValue, getHeaders() ::: headers.list ::: jwsHeaders ::: responseHeaders, Nil, httpCode) @@ -782,7 +782,7 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{ } } val errorMessageAst: json.JValue = composeErrorMessage() - val httpBody = JsonAST.compactRender(errorMessageAst) + val httpBody = com.openbankproject.commons.util.JsonAliases.compactRender(errorMessageAst) val jwsHeaders: CustomResponseHeaders = getSignRequestHeadersError(callContextLight, httpBody) JsonResponse(errorMessageAst, responseHeaders ::: jwsHeaders.list, Nil, code) } @@ -2666,23 +2666,6 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{ } } - def scalaFutureToLaFuture[T](scf: Future[T])(implicit m: Manifest[T]): LAFuture[T] = { - val laf = new LAFuture[T] - scf.onSuccess { - case v: T => laf.satisfy(v) - case _ => laf.abort - } - scf.onFailure { - case e: AccessControlException => - laf.fail(Failure(s"$DynamicResourceDocMethodPermission No permission of: ${e.getPermission.toString}", Full(e), Empty)) - - case e: Throwable => - laf.fail(Failure(e.getMessage(), Full(e), Empty)) - } - laf - } - - def extractAPIFailureNewStyle(msg: String): Option[APIFailureNewStyle] = { try { parse(msg).extractOpt[APIFailureNewStyle] match { @@ -3178,11 +3161,11 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{ val failuresMsg = filterMessage(obj) val callContext = af.ccl.map(_.copy(httpCode = Some(af.failCode))) val apiFailure = af.copy(failMsg = failuresMsg).copy(ccl = callContext) - throw new Exception(JsonAST.compactRender(Extraction.decompose(apiFailure))) + throw new Exception(com.openbankproject.commons.util.JsonAliases.compactRender(Extraction.decompose(apiFailure))) case ParamFailure(_, _, _, failure : APIFailure) => val callContext = CallContextLight() val apiFailure = APIFailureNewStyle(failMsg = failure.msg, failCode = failure.responseCode, ccl = Some(callContext)) - throw new Exception(JsonAST.compactRender(Extraction.decompose(apiFailure))) + throw new Exception(com.openbankproject.commons.util.JsonAliases.compactRender(Extraction.decompose(apiFailure))) case ParamFailure(msg,_,_,_) => throw new Exception(msg) case obj@Failure(_, _, _) => @@ -4499,7 +4482,7 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{ } else { AuthenticationTypeValidationProvider.validationProvider.vend.getByOperationId(operationId) match { case Full(v) if !v.authTypes.contains(callContext.authType)=> - import net.liftweb.json.JsonDSL._ + import org.json4s.JsonDSL._ val errorMsg = s"""$AuthenticationTypeIllegal allowed authentication types: ${v.authTypes.mkString("[", ", ", "]")}, current request auth type: $authType""" val errorCode = 400 val errorResponse = ("code", errorCode) ~ ("message", errorMsg) @@ -4547,7 +4530,7 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{ } def createErrorJsonResponse(errorMsg: String, errorCode: Int, correlationId: String): JsonResponse = { - import net.liftweb.json.JsonDSL._ + import org.json4s.JsonDSL._ val errorResponse = ("code", errorCode) ~ ("message", errorMsg) val jsonResponse = JsonResponse(errorResponse, errorCode).asInstanceOf[JsonResponse] // add correlatedId to header @@ -4558,7 +4541,7 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{ object JsonResponseExtractor { def unapply(jsonResponse: JsonResponse): Option[(String, Int)] = jsonResponse match { case JsonResponse(bodyJson, _, _, code) => - val responseBody = net.liftweb.json.compactRender(bodyJson) + val responseBody = com.openbankproject.commons.util.JsonAliases.compactRender(bodyJson) (parse(responseBody) \ "message") match { case JString(message) => Some(message -> code) diff --git a/obp-api/src/main/scala/code/api/util/ApiRole.scala b/obp-api/src/main/scala/code/api/util/ApiRole.scala index 10773999b5..fad2f98b0d 100644 --- a/obp-api/src/main/scala/code/api/util/ApiRole.scala +++ b/obp-api/src/main/scala/code/api/util/ApiRole.scala @@ -1,11 +1,12 @@ package code.api.util +import org.json4s._ import code.api.dynamic.endpoint.helper.DynamicEndpointHelper import code.api.dynamic.entity.helper.DynamicEntityHelper import code.util.Helper.MdcLoggable import com.openbankproject.commons.util.{JsonAble, ReflectUtils} -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.{Formats, JsonAST} +import org.json4s.JsonDSL._ +import org.json4s.{Formats, JsonAST} import java.util.concurrent.ConcurrentHashMap diff --git a/obp-api/src/main/scala/code/api/util/ApiSession.scala b/obp-api/src/main/scala/code/api/util/ApiSession.scala index a9d6e0517f..470ff8c66c 100644 --- a/obp-api/src/main/scala/code/api/util/ApiSession.scala +++ b/obp-api/src/main/scala/code/api/util/ApiSession.scala @@ -1,5 +1,6 @@ package code.api.util +import org.json4s._ import code.api.JSONFactoryDAuth import java.util.{Date, UUID} import code.api.JSONFactoryGateway.PayloadOfJwtJSON @@ -16,7 +17,7 @@ import code.views.Views import com.openbankproject.commons.model._ import com.openbankproject.commons.util.{EnumValue, OBPEnumeration} import net.liftweb.common.{Box, Empty} -import net.liftweb.json.JsonAST.JValue +import org.json4s.JsonAST.JValue import net.liftweb.util.Helpers import net.liftweb.util.Helpers.tryo diff --git a/obp-api/src/main/scala/code/api/util/ConsentUtil.scala b/obp-api/src/main/scala/code/api/util/ConsentUtil.scala index 6bbccf001c..6628bbf141 100644 --- a/obp-api/src/main/scala/code/api/util/ConsentUtil.scala +++ b/obp-api/src/main/scala/code/api/util/ConsentUtil.scala @@ -1,5 +1,6 @@ package code.api.util +import org.json4s._ import code.accountholders.AccountHolders import code.api.berlin.group.ConstantsBG import code.api.berlin.group.v1_3.JSONFactory_BERLIN_GROUP_1_3.{ConsentAccessJson, PostConsentJson} @@ -29,8 +30,9 @@ import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model._ import com.openbankproject.commons.util.ApiStandards import net.liftweb.common._ -import net.liftweb.json.JsonParser.ParseException -import net.liftweb.json.{Extraction, MappingException, compactRender, parse} +import org.json4s.ParserUtil.ParseException +import org.json4s.{Extraction, MappingException} +import com.openbankproject.commons.util.JsonAliases.{compactRender, parse} import net.liftweb.mapper.By import net.liftweb.util.Props import sh.ory.hydra.model.OAuth2TokenIntrospection @@ -421,9 +423,9 @@ object Consent extends MdcLoggable { JwtUtil.getSignedPayloadAsJson(consentIdAsJwt) match { case Full(jsonAsString) => try { - logger.debug(s"applyConsentRulesCommonOldStyle.getSignedPayloadAsJson.Start of net.liftweb.json.parse(jsonAsString).extract[ConsentJWT]: $jsonAsString") - val consent = net.liftweb.json.parse(jsonAsString).extract[ConsentJWT] - logger.debug(s"applyConsentRulesCommonOldStyle.getSignedPayloadAsJson.End of net.liftweb.json.parse(jsonAsString).extract[ConsentJWT]: $consent") + logger.debug(s"applyConsentRulesCommonOldStyle.getSignedPayloadAsJson.Start of com.openbankproject.commons.util.JsonAliases.parse(jsonAsString).extract[ConsentJWT]: $jsonAsString") + val consent = com.openbankproject.commons.util.JsonAliases.parse(jsonAsString).extract[ConsentJWT] + logger.debug(s"applyConsentRulesCommonOldStyle.getSignedPayloadAsJson.End of com.openbankproject.commons.util.JsonAliases.parse(jsonAsString).extract[ConsentJWT]: $consent") checkConsent(consent, consentIdAsJwt, calContext) match { // Check is it Consent-JWT expired case (Full(true)) => // OK applyConsentRules(consent) @@ -501,9 +503,9 @@ object Consent extends MdcLoggable { JwtUtil.getSignedPayloadAsJson(consentAsJwt) match { case Full(jsonAsString) => try { - logger.debug(s"applyConsentRulesCommon.Start of net.liftweb.json.parse(jsonAsString).extract[ConsentJWT]: $jsonAsString") - val consent = net.liftweb.json.parse(jsonAsString).extract[ConsentJWT] - logger.debug(s"applyConsentRulesCommon.End of net.liftweb.json.parse(jsonAsString).extract[ConsentJWT]: $consent") + logger.debug(s"applyConsentRulesCommon.Start of com.openbankproject.commons.util.JsonAliases.parse(jsonAsString).extract[ConsentJWT]: $jsonAsString") + val consent = com.openbankproject.commons.util.JsonAliases.parse(jsonAsString).extract[ConsentJWT] + logger.debug(s"applyConsentRulesCommon.End of com.openbankproject.commons.util.JsonAliases.parse(jsonAsString).extract[ConsentJWT]: $consent") checkConsent(consent, consentAsJwt, callContext) match { // Check is it Consent-JWT expired case (Full(true)) => // OK applyConsentRules(consent) @@ -628,11 +630,11 @@ object Consent extends MdcLoggable { JwtUtil.getSignedPayloadAsJson(storedConsent.jsonWebToken) match { case Full(jsonAsString) => try { - logger.debug(s"applyBerlinGroupConsentRulesCommon.Start of net.liftweb.json.parse(jsonAsString).extract[ConsentJWT]: $jsonAsString") - val consent = net.liftweb.json.parse(jsonAsString).extract[ConsentJWT] - logger.debug(s"applyBerlinGroupConsentRulesCommon.End of net.liftweb.json.parse(jsonAsString).extract[ConsentJWT]: $consent") + logger.debug(s"applyBerlinGroupConsentRulesCommon.Start of com.openbankproject.commons.util.JsonAliases.parse(jsonAsString).extract[ConsentJWT]: $jsonAsString") + val consent = com.openbankproject.commons.util.JsonAliases.parse(jsonAsString).extract[ConsentJWT] + logger.debug(s"applyBerlinGroupConsentRulesCommon.End of com.openbankproject.commons.util.JsonAliases.parse(jsonAsString).extract[ConsentJWT]: $consent") val consentBox = checkConsent(consent, storedConsent.jsonWebToken, updatedCallContext) - logger.debug(s"End of net.liftweb.json.parse(jsonAsString).extract[ConsentJWT].checkConsent.consentBox: $consent") + logger.debug(s"End of com.openbankproject.commons.util.JsonAliases.parse(jsonAsString).extract[ConsentJWT].checkConsent.consentBox: $consent") consentBox match { // Check is it Consent-JWT expired case (Full(true)) => // OK if(BerlinGroupCheck.isTppRequestsWithoutPsuInvolvement(callContext.requestHeaders)) { @@ -887,7 +889,7 @@ object Consent extends MdcLoggable { callContext: Option[CallContext]): Future[Box[String]] = { implicit val dateFormats = CustomJsonFormats.formats val payloadToUpdate: Box[ConsentJWT] = JwtUtil.getSignedPayloadAsJson(consent.jsonWebToken) // Payload as JSON string - .map(net.liftweb.json.parse(_).extract[ConsentJWT]) // Extract case class + .map(com.openbankproject.commons.util.JsonAliases.parse(_).extract[ConsentJWT]) // Extract case class // 1. Add access @@ -947,7 +949,7 @@ object Consent extends MdcLoggable { callContext: Option[CallContext]): Future[Box[MappedConsent]] = { implicit val dateFormats = CustomJsonFormats.formats val payloadToUpdate: Box[ConsentJWT] = JwtUtil.getSignedPayloadAsJson(consent.jsonWebToken) // Payload as JSON string - .map(net.liftweb.json.parse(_).extract[ConsentJWT]) // Extract case class + .map(com.openbankproject.commons.util.JsonAliases.parse(_).extract[ConsentJWT]) // Extract case class val availableAccountsUserIbans: List[String] = payloadToUpdate match { case Full(consentJwt) => @@ -1008,7 +1010,7 @@ object Consent extends MdcLoggable { callContext: Option[CallContext]): Box[String] = { implicit val dateFormats = CustomJsonFormats.formats val payloadToUpdate: Box[ConsentJWT] = JwtUtil.getSignedPayloadAsJson(consent.jsonWebToken) // Payload as JSON string - .map(net.liftweb.json.parse(_).extract[ConsentJWT]) // Extract case class + .map(com.openbankproject.commons.util.JsonAliases.parse(_).extract[ConsentJWT]) // Extract case class val updatedPayload = payloadToUpdate.map(i => i.copy(createdByUserId = createdByUserId)) // Update only the field "createdByUserId" val jwtPayloadAsJson = compactRender(Extraction.decompose(updatedPayload)) diff --git a/obp-api/src/main/scala/code/api/util/CurrencyUtil.scala b/obp-api/src/main/scala/code/api/util/CurrencyUtil.scala index 959bb67755..4dfab24b64 100644 --- a/obp-api/src/main/scala/code/api/util/CurrencyUtil.scala +++ b/obp-api/src/main/scala/code/api/util/CurrencyUtil.scala @@ -1,6 +1,7 @@ package code.api.util -import net.liftweb.json.parse +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases.parse object CurrencyUtil { implicit val formats = CustomJsonFormats.formats diff --git a/obp-api/src/main/scala/code/api/util/CustomJsonFormats.scala b/obp-api/src/main/scala/code/api/util/CustomJsonFormats.scala index 46e3f0bd7d..4e3b77e382 100644 --- a/obp-api/src/main/scala/code/api/util/CustomJsonFormats.scala +++ b/obp-api/src/main/scala/code/api/util/CustomJsonFormats.scala @@ -1,14 +1,16 @@ package code.api.util +import org.json4s._ import code.api.util.APIUtil.{BooleanBody, DoubleBody, EmptyBody, JArrayBody, LongBody, PrimaryDataBody, StringBody} import code.api.util.ApiRole.rolesMappedToClasses import com.openbankproject.commons.dto.InBoundTrait import com.openbankproject.commons.model.TopicTrait import com.openbankproject.commons.util.Functions.Memo import com.openbankproject.commons.util.{JsonUtils, _} -import net.liftweb.json -import net.liftweb.json.JsonAST.JValue -import net.liftweb.json.{TypeInfo, _} +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.JValue +import org.json4s.{TypeInfo, _} +import com.openbankproject.commons.util.JsonAliases._ import org.apache.commons.lang3.StringUtils import java.text.SimpleDateFormat @@ -25,14 +27,14 @@ object CustomJsonFormats { val formats: Formats = JsonSerializers.commonFormats + PrimaryDataBodySerializer + ToStringDeSerializer + TupleSerializer - val losslessFormats: Formats = net.liftweb.json.DefaultFormats.lossless ++ JsonSerializers.serializers + val losslessFormats: Formats = org.json4s.DefaultFormats.lossless ++ JsonSerializers.serializers val emptyHintFormats = DefaultFormats.withHints(ShortTypeHints(List())) ++ JsonSerializers.serializers implicit val nullTolerateFormats = JsonSerializers.nullTolerateFormats lazy val rolesMappedToClassesFormats: Formats = new Formats { - val dateFormat = net.liftweb.json.DefaultFormats.dateFormat + val dateFormat = org.json4s.DefaultFormats.dateFormat override val typeHints = ShortTypeHints(rolesMappedToClasses) } ++ JsonSerializers.serializers @@ -149,7 +151,7 @@ object ToStringDeSerializer extends ObpDeSerializer[String] { private val IntervalClass = classOf[String] override def deserialize(implicit format: Formats): PartialFunction[(TypeInfo, json.JValue), String] = { - case (TypeInfo(IntervalClass, _), json) if !json.isInstanceOf[JString] && json != JNothing => + case (TypeInfo(IntervalClass, _), json) if !json.isInstanceOf[JString] && json != JNothing && json != JNull => compactRender(json) } } @@ -158,7 +160,7 @@ object ToStringDeSerializer extends ObpDeSerializer[String] { * deserialize jvalue to string, even if jvalue is not JString type, it can deserialize successfully. */ object TupleSerializer extends ObpSerializer[(String, Any)] { - import net.liftweb.json.JsonDSL._ + import org.json4s.JsonDSL._ override def serialize(implicit format: Formats): PartialFunction[Any, json.JValue] = { case (name: String, value: Any) => name -> json.Extraction.decompose(value) diff --git a/obp-api/src/main/scala/code/api/util/DiagnosticDynamicEntityCheck.scala b/obp-api/src/main/scala/code/api/util/DiagnosticDynamicEntityCheck.scala index 2589ab8651..a450aeb856 100644 --- a/obp-api/src/main/scala/code/api/util/DiagnosticDynamicEntityCheck.scala +++ b/obp-api/src/main/scala/code/api/util/DiagnosticDynamicEntityCheck.scala @@ -3,7 +3,8 @@ package code.api.util import code.api.dynamic.entity.helper.DynamicEntityInfo import code.DynamicData.{DynamicData, DynamicDataT} import code.dynamicEntity.DynamicEntityT -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import org.apache.commons.lang3.StringUtils /** diff --git a/obp-api/src/main/scala/code/api/util/DynamicUtil.scala b/obp-api/src/main/scala/code/api/util/DynamicUtil.scala index c5c185f991..a3fcf8780e 100644 --- a/obp-api/src/main/scala/code/api/util/DynamicUtil.scala +++ b/obp-api/src/main/scala/code/api/util/DynamicUtil.scala @@ -1,5 +1,6 @@ package code.api.util +import org.json4s._ import code.api.Constant.SHOW_USED_CONNECTOR_METHODS import code.api.{APIFailureNewStyle, JsonResponseException} import code.api.util.ErrorMessages.DynamicResourceDocMethodDependency @@ -10,7 +11,8 @@ import com.openbankproject.commons.util.Functions.Memo import com.openbankproject.commons.util.{JsonUtils, ReflectUtils} import javassist.{ClassPool, LoaderClassPath} import net.liftweb.common.{Box, Empty, Failure, Full, ParamFailure} -import net.liftweb.json.{Extraction, JValue, prettyRender} +import org.json4s.{Extraction, JValue} +import com.openbankproject.commons.util.JsonAliases.prettyRender import org.apache.commons.lang3.StringUtils import org.graalvm.polyglot.{Context, Engine, HostAccess, PolyglotAccess} @@ -128,12 +130,12 @@ object DynamicUtil extends MdcLoggable{ s""" | $caseClasses | - | // throws exception: net.liftweb.json.MappingException: + | // throws exception: org.json4s.MappingException: | //No usable value for name | //Did not find value which can be converted into java.lang.String | |implicit val formats = code.api.util.CustomJsonFormats.formats - |(jValue: net.liftweb.json.JsonAST.JValue) => { + |(jValue: org.json4s.JsonAST.JValue) => { | jValue.extract[RootJsonClass] |} |""".stripMargin @@ -286,11 +288,12 @@ object DynamicUtil extends MdcLoggable{ |import com.openbankproject.commons.util.{JsonUtils, ReflectUtils} |// import com.tesobe.{CacheKeyFromArguments, CacheKeyOmit} |import net.liftweb.common.{Box, Empty, _} - |import net.liftweb.json - |import net.liftweb.json.Extraction.decompose - |import net.liftweb.json.JsonDSL._ - |import net.liftweb.json.JsonParser.ParseException - |import net.liftweb.json.{JValue, _} + |import com.openbankproject.commons.util.json + |import org.json4s.Extraction.decompose + |import org.json4s.JsonDSL._ + |import org.json4s.ParserUtil.ParseException + |import org.json4s.{JValue, _} + |import com.openbankproject.commons.util.JsonAliases._ |import net.liftweb.util.Helpers.tryo |import org.apache.commons.lang3.StringUtils | @@ -478,7 +481,7 @@ object DynamicUtil extends MdcLoggable{ def createJavaFunction(methodBody:String): Box[DynamicFunction] = memoDynamicFunction.memoize("java:" + methodBody) { import com.openbankproject.commons.ExecutionContext.Implicits.global - import net.liftweb.json.compactRender + import com.openbankproject.commons.util.JsonAliases.compactRender Box tryo { val packageExp = UUID.randomUUID().toString.replaceAll("^|-", "_") diff --git a/obp-api/src/main/scala/code/api/util/ErrorMessages.scala b/obp-api/src/main/scala/code/api/util/ErrorMessages.scala index 17034f6a6e..6d78b396cc 100644 --- a/obp-api/src/main/scala/code/api/util/ErrorMessages.scala +++ b/obp-api/src/main/scala/code/api/util/ErrorMessages.scala @@ -1,9 +1,10 @@ package code.api.util +import org.json4s._ import code.api.APIFailureNewStyle import code.api.util.ApiRole.{CanCreateAnyTransactionRequest, canCreateEntitlementAtAnyBank, canCreateEntitlementAtOneBank} import com.openbankproject.commons.model.enums.TransactionRequestStatus._ -import net.liftweb.json.{Extraction, JsonAST} +import org.json4s.{Extraction, JsonAST} import java.util.Objects import java.util.regex.Pattern @@ -20,7 +21,7 @@ object ErrorMessages { // 7) Since the existence of "OBP-..." in a message is used to determine if we should display to a user if display_internal_errors=false, do *not* concatenate internal or core banking system error messages to these strings. - def apiFailureToString(code: Int, message: String, context: Option[CallContext]): String = JsonAST.compactRender( + def apiFailureToString(code: Int, message: String, context: Option[CallContext]): String = com.openbankproject.commons.util.JsonAliases.compactRender( Extraction.decompose( APIFailureNewStyle(failMsg = message, failCode = code, context.map(_.toLight)) ) diff --git a/obp-api/src/main/scala/code/api/util/ErrorUtil.scala b/obp-api/src/main/scala/code/api/util/ErrorUtil.scala index a077a41f19..a1735f7821 100644 --- a/obp-api/src/main/scala/code/api/util/ErrorUtil.scala +++ b/obp-api/src/main/scala/code/api/util/ErrorUtil.scala @@ -4,7 +4,8 @@ import code.api.APIFailureNewStyle import code.api.util.APIUtil.fullBoxOrException import com.openbankproject.commons.model.User import net.liftweb.common.{Box, Empty, Failure} -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ object ErrorUtil { diff --git a/obp-api/src/main/scala/code/api/util/ExampleValue.scala b/obp-api/src/main/scala/code/api/util/ExampleValue.scala index f8549a2f9b..64c304e94e 100644 --- a/obp-api/src/main/scala/code/api/util/ExampleValue.scala +++ b/obp-api/src/main/scala/code/api/util/ExampleValue.scala @@ -1,6 +1,7 @@ package code.api.util +import org.json4s._ import code.api.Constant import code.api.Constant._ import code.api.util.APIUtil.{DateWithMs, DateWithMsExampleString, formatDate, oneYearAgoDate, parseDate} @@ -11,10 +12,10 @@ import code.dynamicEntity._ import com.openbankproject.commons.model.CardAction import com.openbankproject.commons.model.enums.{CustomerAttributeType, DynamicEntityFieldType, TransactionRequestStatus, UserInvitationPurpose} import com.openbankproject.commons.util.ReflectUtils -import net.liftweb.json -import net.liftweb.json.JObject -import net.liftweb.json.JsonAST.JField -import net.liftweb.json.JsonDSL._ +import com.openbankproject.commons.util.json +import org.json4s.JObject +import org.json4s.JsonAST.JField +import org.json4s.JsonDSL._ case class ConnectorField(value: String, description: String) { @@ -497,7 +498,7 @@ object ExampleValue { "ams.get(%22BANK_ID%22)%20will%20get%20Option(%22bank_x%22)%20value%0A%0A%20%20%20%20val%20myUserId%20%3D%20pat" + "hParams(%22MY_USER_ID%22)%0A%0A%0A%20%20%20%20val%20requestEntity%20%3D%20callContext.httpBody.filter(_.nonEmp" + "ty)%20match%20%7B%0A%20%20%20%20%20%20case%20Some(rawBody)%20%3D%3E%0A%20%20%20%20%20%20%20%20try%20%7B%0A%20%" + - "20%20%20%20%20%20%20%20%20net.liftweb.json.parse(rawBody).extract%5BRequestRootJsonClass%5D%0A%20%20%20%20%20%" + + "20%20%20%20%20%20%20%20%20com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract%5BRequestRootJsonClass%5D%0A%20%20%20%20%20%" + "20%20%20%7D%20catch%20%7B%0A%20%20%20%20%20%20%20%20%20%20case%20e%3A%20MappingException%20%3D%3E%0A%20%20%20%" + "20%20%20%20%20%20%20%20%20return%20errorResponse(s%22%24InvalidJsonFormat%20%24%7Be.msg%7D%22)%0A%20%20%20%20%" + "20%20%20%20%7D%0A%20%20%20%20%20%20case%20None%20%3D%3E%0A%20%20%20%20%20%20%20%20return%20errorResponse(s%22%" + diff --git a/obp-api/src/main/scala/code/api/util/FutureUtil.scala b/obp-api/src/main/scala/code/api/util/FutureUtil.scala index 4129ae1a85..8e821a974f 100644 --- a/obp-api/src/main/scala/code/api/util/FutureUtil.scala +++ b/obp-api/src/main/scala/code/api/util/FutureUtil.scala @@ -1,10 +1,11 @@ package code.api.util +import org.json4s._ import java.util.concurrent.TimeoutException import java.util.{Timer, TimerTask} import code.api.{APIFailureNewStyle, Constant} -import net.liftweb.json.{Extraction, JsonAST} +import org.json4s.{Extraction, JsonAST} import code.api.util.APIUtil.{decrementFutureCounter, incrementFutureCounter} import scala.concurrent.{ExecutionContext, Future, Promise} diff --git a/obp-api/src/main/scala/code/api/util/JsonSchemaGenerator.scala b/obp-api/src/main/scala/code/api/util/JsonSchemaGenerator.scala index 6e095fb989..d29ce1c2f1 100644 --- a/obp-api/src/main/scala/code/api/util/JsonSchemaGenerator.scala +++ b/obp-api/src/main/scala/code/api/util/JsonSchemaGenerator.scala @@ -1,9 +1,9 @@ package code.api.util +import org.json4s._ import code.api.util.APIUtil.MessageDoc import com.openbankproject.commons.util.ReflectUtils -import net.liftweb.json.JsonAST._ -import net.liftweb.json.JsonDSL._ +import org.json4s.JsonDSL._ import scala.reflect.runtime.universe._ diff --git a/obp-api/src/main/scala/code/api/util/JwsUtil.scala b/obp-api/src/main/scala/code/api/util/JwsUtil.scala index 8cc1b090e8..d7c979e665 100644 --- a/obp-api/src/main/scala/code/api/util/JwsUtil.scala +++ b/obp-api/src/main/scala/code/api/util/JwsUtil.scala @@ -1,5 +1,6 @@ package code.api.util +import org.json4s._ import code.api.{CertificateConstants, Constant} import code.util.Helper.MdcLoggable import com.nimbusds.jose.crypto.RSASSAVerifier @@ -9,7 +10,7 @@ import com.nimbusds.jose.{JWSAlgorithm, JWSHeader, JWSObject, Payload} import com.openbankproject.commons.model.User import net.liftweb.common.{Box, Failure, Full} import code.api.util.APIUtil.HTTPParam -import net.liftweb.json +import com.openbankproject.commons.util.json import net.liftweb.util.SecurityHelpers import java.security.interfaces.RSAPublicKey diff --git a/obp-api/src/main/scala/code/api/util/NewStyle.scala b/obp-api/src/main/scala/code/api/util/NewStyle.scala index d1c6b00cfe..20fc3ac49c 100644 --- a/obp-api/src/main/scala/code/api/util/NewStyle.scala +++ b/obp-api/src/main/scala/code/api/util/NewStyle.scala @@ -56,8 +56,9 @@ import com.openbankproject.commons.util.JsonUtils import com.tesobe.CacheKeyFromArguments import net.liftweb.common._ import code.api.JsonResponse -import net.liftweb.json.JsonDSL._ -import net.liftweb.json._ +import org.json4s.JsonDSL._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.util.Helpers.tryo import net.liftweb.util.Props import org.apache.commons.lang3.StringUtils diff --git a/obp-api/src/main/scala/code/api/util/WriteMetricUtil.scala b/obp-api/src/main/scala/code/api/util/WriteMetricUtil.scala index 202d5930f7..2f1e59201c 100644 --- a/obp-api/src/main/scala/code/api/util/WriteMetricUtil.scala +++ b/obp-api/src/main/scala/code/api/util/WriteMetricUtil.scala @@ -1,6 +1,7 @@ package code.api.util -import code.api.util.APIUtil.{buildOperationId, getCorrelationId, getPropsValue} +import org.json4s._ +import code.api.util.APIUtil.{buildOperationId, getCorrelationId, getPropsAsBoolValue, getPropsValue} import code.metrics.APIMetrics import code.metricsstream.MetricsEventBus import code.util.Helper.MdcLoggable @@ -9,8 +10,9 @@ import java.util.Date import scala.collection.immutable import scala.concurrent.Future import com.openbankproject.commons.ExecutionContext.Implicits.global -import net.liftweb.json.{Extraction, JValue, compactRender} -import net.liftweb.json.Serialization.write +import org.json4s.{Extraction, JValue} +import com.openbankproject.commons.util.JsonAliases.compactRender +import org.json4s.native.Serialization.write object WriteMetricUtil extends MdcLoggable { @@ -91,7 +93,7 @@ object WriteMetricUtil extends MdcLoggable { } - private val metricFormats = net.liftweb.json.DefaultFormats + private val metricFormats = org.json4s.DefaultFormats /** * Publish a metric event to the gRPC pub/sub channel. No-op when the diff --git a/obp-api/src/main/scala/code/api/util/YAMLUtils.scala b/obp-api/src/main/scala/code/api/util/YAMLUtils.scala index 16714ee50e..58838881a2 100644 --- a/obp-api/src/main/scala/code/api/util/YAMLUtils.scala +++ b/obp-api/src/main/scala/code/api/util/YAMLUtils.scala @@ -28,9 +28,10 @@ package code.api.util import com.fasterxml.jackson.databind.{JsonNode, ObjectMapper} import com.fasterxml.jackson.dataformat.yaml.YAMLFactory -import net.liftweb.json.JsonAST.JValue -import net.liftweb.json._ -import net.liftweb.json.compactRender +import org.json4s.JsonAST.JValue +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ +import com.openbankproject.commons.util.JsonAliases.compactRender import code.util.Helper.MdcLoggable import scala.util.{Try, Success, Failure} diff --git a/obp-api/src/main/scala/code/api/util/http4s/ErrorResponseConverter.scala b/obp-api/src/main/scala/code/api/util/http4s/ErrorResponseConverter.scala index 1d838a7a08..8d1b870795 100644 --- a/obp-api/src/main/scala/code/api/util/http4s/ErrorResponseConverter.scala +++ b/obp-api/src/main/scala/code/api/util/http4s/ErrorResponseConverter.scala @@ -1,5 +1,6 @@ package code.api.util.http4s +import org.json4s._ import cats.effect._ import code.api.APIFailureNewStyle import code.api.JsonResponseException @@ -10,9 +11,10 @@ import code.api.util.BerlinGroupError import code.api.util.ErrorMessages._ import code.api.util.CallContext import net.liftweb.common.{Failure => LiftFailure} -import net.liftweb.json.JsonParser.parse -import net.liftweb.json.{Extraction, compactRender} -import net.liftweb.json.JsonDSL._ +import com.openbankproject.commons.util.JsonAliases.parse +import org.json4s.Extraction +import com.openbankproject.commons.util.JsonAliases.compactRender +import org.json4s.JsonDSL._ import org.http4s._ import org.http4s.headers.`Content-Type` import org.typelevel.ci.CIString @@ -32,7 +34,7 @@ import org.slf4j.LoggerFactory * - Appropriate HTTP status code */ object ErrorResponseConverter { - import net.liftweb.json.Formats + import org.json4s.Formats import code.api.util.CustomJsonFormats private val logger = LoggerFactory.getLogger(getClass) diff --git a/obp-api/src/main/scala/code/api/util/http4s/Http4sResourceDocs.scala b/obp-api/src/main/scala/code/api/util/http4s/Http4sResourceDocs.scala index 1372b03613..650118815b 100644 --- a/obp-api/src/main/scala/code/api/util/http4s/Http4sResourceDocs.scala +++ b/obp-api/src/main/scala/code/api/util/http4s/Http4sResourceDocs.scala @@ -1,5 +1,6 @@ package code.api.util.http4s +import org.json4s._ import cats.effect.IO import code.api.Constant.HostName import code.api.ResourceDocs1_4_0.{ResourceDocs140, ResourceDocs300, ResourceDocsAPIMethodsUtil} @@ -18,9 +19,10 @@ import com.openbankproject.commons.model.enums.ContentParam import com.openbankproject.commons.model.enums.ContentParam.{DYNAMIC, STATIC} import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.{Box, Empty, Full} -import net.liftweb.json -import net.liftweb.json.JsonAST.{JField, JObject, JString, JValue} -import net.liftweb.json.{Extraction, prettyRender} +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.{JField, JObject, JString, JValue} +import org.json4s.Extraction +import com.openbankproject.commons.util.JsonAliases.prettyRender import org.http4s.dsl.io._ import org.http4s.headers.`Content-Type` import org.http4s._ diff --git a/obp-api/src/main/scala/code/api/util/http4s/Http4sSupport.scala b/obp-api/src/main/scala/code/api/util/http4s/Http4sSupport.scala index e57a0d88a5..70677f5070 100644 --- a/obp-api/src/main/scala/code/api/util/http4s/Http4sSupport.scala +++ b/obp-api/src/main/scala/code/api/util/http4s/Http4sSupport.scala @@ -1,5 +1,6 @@ package code.api.util.http4s +import org.json4s._ import cats.effect._ import code.api.util.APIUtil.{HTTPParam, ResourceDoc} import code.api.util.ErrorMessages.{AuthenticatedUserIsRequired, InvalidJsonFormat} @@ -101,8 +102,8 @@ object Http4sRequestAttributes { * - Ok response creation */ object EndpointHelpers extends MdcLoggable { - import net.liftweb.json.JsonAST.prettyRender - import net.liftweb.json.{Extraction, Formats} + import com.openbankproject.commons.util.JsonAliases.prettyRender + import org.json4s.{Extraction, Formats} // OBP responses are always JSON. Passing a raw String to http4s' Ok/Created uses the // default EntityEncoder[String], which sets `Content-Type: text/plain`. Override it so @@ -201,7 +202,7 @@ object Http4sRequestAttributes { cc.httpBody match { case None | Some("") => Left(s"$InvalidJsonFormat Missing request body.") case Some(raw) => - scala.util.Try(net.liftweb.json.parse(raw).extract[B]).toEither.left.map(_ => s"$InvalidJsonFormat ${mf.runtimeClass.getSimpleName}") + scala.util.Try(com.openbankproject.commons.util.JsonAliases.parse(raw).extract[B]).toEither.left.map(_ => s"$InvalidJsonFormat ${mf.runtimeClass.getSimpleName}") } /** diff --git a/obp-api/src/main/scala/code/api/util/http4s/IdempotencyMiddleware.scala b/obp-api/src/main/scala/code/api/util/http4s/IdempotencyMiddleware.scala index cc9a09c462..544c393b1b 100644 --- a/obp-api/src/main/scala/code/api/util/http4s/IdempotencyMiddleware.scala +++ b/obp-api/src/main/scala/code/api/util/http4s/IdempotencyMiddleware.scala @@ -1,12 +1,13 @@ package code.api.util.http4s +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.cache.Redis import code.util.Helper.MdcLoggable -import net.liftweb.json.{compactRender, parse} -import net.liftweb.json.JsonAST.{JField, JInt, JObject, JString} -import net.liftweb.json.JsonDSL._ +import com.openbankproject.commons.util.JsonAliases.{compactRender, parse} +import org.json4s.JsonAST.{JField, JInt, JObject, JString} +import org.json4s.JsonDSL._ import org.http4s._ import org.http4s.headers.`Content-Type` import org.typelevel.ci.CIString diff --git a/obp-api/src/main/scala/code/api/util/http4s/ResourceDocMiddleware.scala b/obp-api/src/main/scala/code/api/util/http4s/ResourceDocMiddleware.scala index bc3c71a362..145275cc99 100644 --- a/obp-api/src/main/scala/code/api/util/http4s/ResourceDocMiddleware.scala +++ b/obp-api/src/main/scala/code/api/util/http4s/ResourceDocMiddleware.scala @@ -1,5 +1,6 @@ package code.api.util.http4s +import org.json4s._ import cats.data.{EitherT, Kleisli, OptionT} import cats.effect._ import code.api.Constant @@ -312,8 +313,8 @@ object ResourceDocMiddleware extends MdcLoggable { // Old Style endpoints (v1.x, v2.0.0) keep 400 to match Lift Old Style behavior. // New Style endpoints (v2.1.0+) use the original failCode from the exception. val (failMsg, parsedCode) = scala.util.Try { - implicit val formats = net.liftweb.json.DefaultFormats - val parsed = net.liftweb.json.parse(e.getMessage).extract[APIFailureNewStyle] + implicit val formats = org.json4s.DefaultFormats + val parsed = com.openbankproject.commons.util.JsonAliases.parse(e.getMessage).extract[APIFailureNewStyle] (parsed.failMsg, parsed.failCode) }.getOrElse(($AuthenticatedUserIsRequired, 401)) val oldStyleShortVersions = Set("v1.2.1", "v1.3.0", "v1.4.0", "v2.0.0") @@ -473,8 +474,8 @@ object ResourceDocMiddleware extends MdcLoggable { val paramNames = queryString.split("&").map(s => s.split("=", 2)(0)).filter(_.nonEmpty) val hasDuplicates = paramNames.groupBy(identity).exists(_._2.length > 1) if (hasDuplicates) { - import net.liftweb.json.JsonDSL._ - import net.liftweb.json.compactRender + import org.json4s.JsonDSL._ + import com.openbankproject.commons.util.JsonAliases.compactRender // Match Lift's createErrorJsonResponse: {"code": 400, "message": "OBP-XXXXX: ..."} // The test asserts extract[ErrorMessage].message where ErrorMessage(code: Int, message: String). val body = compactRender(("code" -> 400) ~ ("message" -> code.api.util.ErrorMessages.DuplicateQueryParameters)) diff --git a/obp-api/src/main/scala/code/api/v1_2/OBPAPI1.2.scala b/obp-api/src/main/scala/code/api/v1_2/OBPAPI1.2.scala index 03309d4277..bdb3710a3c 100644 --- a/obp-api/src/main/scala/code/api/v1_2/OBPAPI1.2.scala +++ b/obp-api/src/main/scala/code/api/v1_2/OBPAPI1.2.scala @@ -32,8 +32,8 @@ //package code.api.v1_2 // //import code.api.util.APIUtil -//import net.liftweb.json.Extraction -//import net.liftweb.json.JsonAST._ +//import org.json4s.Extraction +//import org.json4s.JsonAST._ //import net.liftweb.common.{Box, Empty, Failure, Full} //import net.liftweb.mongodb._ //import _root_.java.math.MathContext diff --git a/obp-api/src/main/scala/code/api/v1_2_1/APIMethods121.scala b/obp-api/src/main/scala/code/api/v1_2_1/APIMethods121.scala index 91b79858d9..809b210ea3 100644 --- a/obp-api/src/main/scala/code/api/v1_2_1/APIMethods121.scala +++ b/obp-api/src/main/scala/code/api/v1_2_1/APIMethods121.scala @@ -29,8 +29,8 @@ object APIMethods121 { //import com.openbankproject.commons.util.ApiVersion //import com.tesobe.CacheKeyFromArguments //import net.liftweb.common._ -//import net.liftweb.json.Extraction -//import net.liftweb.json.JsonAST.JValue +//import org.json4s.Extraction +//import org.json4s.JsonAST.JValue //import net.liftweb.util.Helpers._ // //import java.net.URL diff --git a/obp-api/src/main/scala/code/api/v1_2_1/Http4s121.scala b/obp-api/src/main/scala/code/api/v1_2_1/Http4s121.scala index 559081d765..3d7ceb4127 100644 --- a/obp-api/src/main/scala/code/api/v1_2_1/Http4s121.scala +++ b/obp-api/src/main/scala/code/api/v1_2_1/Http4s121.scala @@ -1,5 +1,6 @@ package code.api.v1_2_1 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.Constant._ @@ -22,7 +23,7 @@ import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model._ import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus, ScannedApiVersion} import net.liftweb.common.{Box, Full} -import net.liftweb.json.{Extraction, Formats} +import org.json4s.{Extraction, Formats} import net.liftweb.util.Helpers._ import org.http4s._ import org.http4s.dsl.io._ @@ -457,7 +458,7 @@ object Http4s121 { case _ => Future.failed(new RuntimeException(AuthenticatedUserIsRequired)) } json <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(bodyStr).extract[UpdateAccountJSON] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[UpdateAccountJSON] } (account, callContext) <- NewStyle.function.checkBankAccountExists(BankId(bankId), AccountId(accountId), Some(cc)) permission <- NewStyle.function.permission(account.bankId, account.accountId, user, callContext) @@ -561,7 +562,7 @@ object Http4s121 { (rawAccountBox, _) <- Connector.connector.vend.checkBankAccountExists(BankId(bankId), AccountId(accountId), Some(cc)) account <- Future { unboxFullOrFail(rawAccountBox, Some(cc), s"$BankAccountNotFound Current BankId is $bankId and Current AccountId is $accountId") } createViewJsonV121 <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(bodyStr).extract[CreateViewJsonV121] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[CreateViewJsonV121] } _ <- Helper.booleanToFuture(InvalidCustomViewFormat + s"Current view_name (${createViewJsonV121.name})", cc = Some(cc)) { isValidCustomViewName(createViewJsonV121.name) @@ -793,7 +794,7 @@ object Http4s121 { (_, callContext) <- NewStyle.function.getBank(BankId(bankId), Some(cc)) (account, callContext) <- NewStyle.function.getBankAccount(BankId(bankId), AccountId(accountId), callContext) viewIds <- NewStyle.function.tryons("wrong format JSON", 400, callContext) { - net.liftweb.json.parse(bodyStr).extract[ViewIdsJson] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[ViewIdsJson] } (addedViews, callContext) <- ViewNewStyle.grantAccessToMultipleViews( account, user, @@ -1053,7 +1054,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow adding a public alias", cc = Some(cc))(otherBankAccount.metadata.get.addPublicAlias.isDefined) - aliasJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[AliasJSON] } + aliasJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[AliasJSON] } added <- Future(Counterparties.counterparties.vend.addPublicAlias(otherAccountId, aliasJson.alias)) map { unboxFullOrFail(_, Some(cc), "Alias cannot be added", 400) } _ <- Helper.booleanToFuture("Alias cannot be added", 400, Some(cc))(added) } yield SuccessMessage("public alias added") @@ -1097,7 +1098,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow updating a public alias", cc = Some(cc))(otherBankAccount.metadata.get.addPublicAlias.isDefined) - aliasJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[AliasJSON] } + aliasJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[AliasJSON] } updated <- Future(Counterparties.counterparties.vend.addPublicAlias(otherAccountId, aliasJson.alias)) map { unboxFullOrFail(_, Some(cc), "Alias cannot be updated", 400) } _ <- Helper.booleanToFuture("Alias cannot be updated", 400, Some(cc))(updated) } yield SuccessMessage("public alias updated") @@ -1190,7 +1191,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow adding a private alias", cc = Some(cc))(otherBankAccount.metadata.get.addPrivateAlias.isDefined) - aliasJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[AliasJSON] } + aliasJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[AliasJSON] } added <- Future(Counterparties.counterparties.vend.addPrivateAlias(otherAccountId, aliasJson.alias)) map { unboxFullOrFail(_, Some(cc), "Alias cannot be added", 400) } _ <- Helper.booleanToFuture("Alias cannot be added", 400, Some(cc))(added) } yield SuccessMessage("private alias added") @@ -1220,7 +1221,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow updating a private alias", cc = Some(cc))(otherBankAccount.metadata.get.addPrivateAlias.isDefined) - aliasJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[AliasJSON] } + aliasJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[AliasJSON] } updated <- Future(Counterparties.counterparties.vend.addPrivateAlias(otherAccountId, aliasJson.alias)) map { unboxFullOrFail(_, Some(cc), "Alias cannot be updated", 400) } _ <- Helper.booleanToFuture("Alias cannot be updated", 400, Some(cc))(updated) } yield SuccessMessage("private alias updated") @@ -1280,7 +1281,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow adding more info", cc = Some(cc))(otherBankAccount.metadata.get.addMoreInfo.isDefined) - moreInfoJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[MoreInfoJSON] } + moreInfoJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[MoreInfoJSON] } added <- Future(Counterparties.counterparties.vend.addMoreInfo(otherAccountId, moreInfoJson.more_info)) map { unboxFullOrFail(_, Some(cc), "More Info cannot be added", 400) } _ <- Helper.booleanToFuture("More Info cannot be added", 400, Some(cc))(added) } yield SuccessMessage("more info added") @@ -1318,7 +1319,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow updating more info", cc = Some(cc))(otherBankAccount.metadata.get.addMoreInfo.isDefined) - moreInfoJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[MoreInfoJSON] } + moreInfoJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[MoreInfoJSON] } updated <- Future(Counterparties.counterparties.vend.addMoreInfo(otherAccountId, moreInfoJson.more_info)) map { unboxFullOrFail(_, Some(cc), "More Info cannot be updated", 400) } _ <- Helper.booleanToFuture("More Info cannot be updated", 400, Some(cc))(updated) } yield SuccessMessage("more info updated") @@ -1375,7 +1376,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow adding a url", cc = Some(cc))(otherBankAccount.metadata.get.addURL.isDefined) - urlJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[UrlJSON] } + urlJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[UrlJSON] } added <- Future(Counterparties.counterparties.vend.addURL(otherAccountId, urlJson.URL)) map { unboxFullOrFail(_, Some(cc), "URL cannot be added", 400) } _ <- Helper.booleanToFuture("URL cannot be added", 400, Some(cc))(added) } yield SuccessMessage("url added") @@ -1402,7 +1403,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow updating a url", cc = Some(cc))(otherBankAccount.metadata.get.addURL.isDefined) - urlJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[UrlJSON] } + urlJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[UrlJSON] } updated <- Future(Counterparties.counterparties.vend.addURL(otherAccountId, urlJson.URL)) map { unboxFullOrFail(_, Some(cc), "URL cannot be updated", 400) } _ <- Helper.booleanToFuture("URL cannot be updated", 400, Some(cc))(updated) } yield SuccessMessage("url updated") @@ -1456,7 +1457,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow adding an image url", cc = Some(cc))(otherBankAccount.metadata.get.addImageURL.isDefined) - imageUrlJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[ImageUrlJSON] } + imageUrlJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[ImageUrlJSON] } added <- Future(Counterparties.counterparties.vend.addImageURL(otherAccountId, imageUrlJson.image_URL)) map { unboxFullOrFail(_, Some(cc), "URL cannot be added", 400) } _ <- Helper.booleanToFuture("URL cannot be added", 400, Some(cc))(added) } yield SuccessMessage("image url added") @@ -1483,7 +1484,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow updating an image url", cc = Some(cc))(otherBankAccount.metadata.get.addImageURL.isDefined) - imageUrlJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[ImageUrlJSON] } + imageUrlJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[ImageUrlJSON] } updated <- Future(Counterparties.counterparties.vend.addImageURL(otherAccountId, imageUrlJson.image_URL)) map { unboxFullOrFail(_, Some(cc), "URL cannot be updated", 400) } _ <- Helper.booleanToFuture("URL cannot be updated", 400, Some(cc))(updated) } yield SuccessMessage("image url updated") @@ -1546,7 +1547,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow adding an open corporate url", cc = Some(cc))(otherBankAccount.metadata.get.addOpenCorporatesURL.isDefined) - openCorpUrl <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[OpenCorporateUrlJSON] } + openCorpUrl <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[OpenCorporateUrlJSON] } added <- Future(Counterparties.counterparties.vend.addOpenCorporatesURL(otherAccountId, openCorpUrl.open_corporates_URL)) map { unboxFullOrFail(_, Some(cc), "URL cannot be added", 400) } _ <- Helper.booleanToFuture("URL cannot be added", 400, Some(cc))(added) } yield SuccessMessage("open corporate url added") @@ -1580,7 +1581,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow updating an open corporate url", cc = Some(cc))(otherBankAccount.metadata.get.addOpenCorporatesURL.isDefined) - openCorpUrl <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[OpenCorporateUrlJSON] } + openCorpUrl <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[OpenCorporateUrlJSON] } updated <- Future(Counterparties.counterparties.vend.addOpenCorporatesURL(otherAccountId, openCorpUrl.open_corporates_URL)) map { unboxFullOrFail(_, Some(cc), "URL cannot be updated", 400) } _ <- Helper.booleanToFuture("URL cannot be updated", 400, Some(cc))(updated) } yield SuccessMessage("open corporate url updated") @@ -1634,7 +1635,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow adding a corporate location", cc = Some(cc))(otherBankAccount.metadata.get.addCorporateLocation.isDefined) - corpLocationJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[CorporateLocationJSON] } + corpLocationJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[CorporateLocationJSON] } _ <- Helper.booleanToFuture("Coordinates not possible", 400, Some(cc)) { checkIfLocationPossible(corpLocationJson.corporate_location.latitude, corpLocationJson.corporate_location.longitude) } added <- Future(Counterparties.counterparties.vend.addCorporateLocation(otherAccountId, user.userPrimaryKey, (now: TimeSpan), corpLocationJson.corporate_location.longitude, corpLocationJson.corporate_location.latitude)) map { unboxFullOrFail(_, Some(cc), "Corporate Location cannot be added", 400) } _ <- Helper.booleanToFuture("Corporate Location cannot be added", 400, Some(cc))(added) @@ -1662,7 +1663,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow updating a corporate location", cc = Some(cc))(otherBankAccount.metadata.get.addCorporateLocation.isDefined) - corpLocationJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[CorporateLocationJSON] } + corpLocationJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[CorporateLocationJSON] } _ <- Helper.booleanToFuture("Coordinates not possible", 400, Some(cc)) { checkIfLocationPossible(corpLocationJson.corporate_location.latitude, corpLocationJson.corporate_location.longitude) } updated <- Future(Counterparties.counterparties.vend.addCorporateLocation(otherAccountId, user.userPrimaryKey, (now: TimeSpan), corpLocationJson.corporate_location.longitude, corpLocationJson.corporate_location.latitude)) map { unboxFullOrFail(_, Some(cc), "Corporate Location cannot be updated", 400) } _ <- Helper.booleanToFuture("Corporate Location cannot be updated", 400, Some(cc))(updated) @@ -1717,7 +1718,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow adding a physical location", cc = Some(cc))(otherBankAccount.metadata.get.addPhysicalLocation.isDefined) - physicalLocationJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[PhysicalLocationJSON] } + physicalLocationJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[PhysicalLocationJSON] } _ <- Helper.booleanToFuture("Coordinates not possible", 400, Some(cc)) { checkIfLocationPossible(physicalLocationJson.physical_location.latitude, physicalLocationJson.physical_location.longitude) } added <- Future(Counterparties.counterparties.vend.addPhysicalLocation(otherAccountId, user.userPrimaryKey, (now: TimeSpan), physicalLocationJson.physical_location.longitude, physicalLocationJson.physical_location.latitude)) map { unboxFullOrFail(_, Some(cc), "Physical Location cannot be added", 400) } _ <- Helper.booleanToFuture("Physical Location cannot be added", 400, Some(cc))(added) @@ -1745,7 +1746,7 @@ object Http4s121 { (otherBankAccount, _) <- NewStyle.function.moderatedOtherBankAccount(account, otherAccountId, view, Full(user), Some(cc)) _ <- Helper.booleanToFuture(s"$NoViewPermission can_see_other_account_metadata. Current ViewId(${view.viewId})", cc = Some(cc))(otherBankAccount.metadata.isDefined) _ <- Helper.booleanToFuture(s"the view ${view.viewId} does not allow updating a physical location", cc = Some(cc))(otherBankAccount.metadata.get.addPhysicalLocation.isDefined) - physicalLocationJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { net.liftweb.json.parse(bodyStr).extract[PhysicalLocationJSON] } + physicalLocationJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[PhysicalLocationJSON] } _ <- Helper.booleanToFuture("Coordinates not possible", 400, Some(cc)) { checkIfLocationPossible(physicalLocationJson.physical_location.latitude, physicalLocationJson.physical_location.longitude) } updated <- Future(Counterparties.counterparties.vend.addPhysicalLocation(otherAccountId, user.userPrimaryKey, (now: TimeSpan), physicalLocationJson.physical_location.longitude, physicalLocationJson.physical_location.latitude)) map { unboxFullOrFail(_, Some(cc), "Physical Location cannot be updated", 400) } _ <- Helper.booleanToFuture("Physical Location cannot be updated", 400, Some(cc))(updated) @@ -1912,7 +1913,7 @@ object Http4s121 { case None => Future.failed(new RuntimeException(ViewNotFound)) } narrativeJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(bodyStr).extract[TransactionNarrativeJSON] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[TransactionNarrativeJSON] } metadata <- moderatedTransactionMetadataFuture(account.bankId, account.accountId, view.viewId, TransactionId(transactionId), Full(user), Some(cc)) addNarrative <- Future(metadata.addOwnerComment) map { @@ -1975,7 +1976,7 @@ object Http4s121 { case None => Future.failed(new RuntimeException(ViewNotFound)) } narrativeJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(bodyStr).extract[TransactionNarrativeJSON] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[TransactionNarrativeJSON] } metadata <- moderatedTransactionMetadataFuture(account.bankId, account.accountId, view.viewId, TransactionId(transactionId), Full(user), Some(cc)) addNarrative <- Future(metadata.addOwnerComment) map { @@ -2084,7 +2085,7 @@ object Http4s121 { case None => Future.failed(new RuntimeException(ViewNotFound)) } commentJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(bodyStr).extract[PostTransactionCommentJSON] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[PostTransactionCommentJSON] } metadata <- moderatedTransactionMetadataFuture(account.bankId, account.accountId, view.viewId, TransactionId(transactionId), Full(user), Some(cc)) addCommentFunc <- Future(metadata.addComment) map { @@ -2195,7 +2196,7 @@ object Http4s121 { case None => Future.failed(new RuntimeException(ViewNotFound)) } tagJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(bodyStr).extract[PostTransactionTagJSON] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[PostTransactionTagJSON] } metadata <- moderatedTransactionMetadataFuture(account.bankId, account.accountId, view.viewId, TransactionId(transactionId), Full(user), Some(cc)) addTagFunc <- Future(metadata.addTag) map { @@ -2305,7 +2306,7 @@ object Http4s121 { case None => Future.failed(new RuntimeException(ViewNotFound)) } imageJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(bodyStr).extract[PostTransactionImageJSON] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[PostTransactionImageJSON] } metadata <- moderatedTransactionMetadataFuture(account.bankId, account.accountId, view.viewId, TransactionId(transactionId), Full(user), Some(cc)) addImageFunc <- Future(metadata.addImage) map { @@ -2441,7 +2442,7 @@ object Http4s121 { unboxFullOrFail(_, Some(cc), s"$NoViewPermission can_add_where_tag. Current ViewId(${view.viewId})") } whereJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(bodyStr).extract[PostTransactionWhereJSON] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[PostTransactionWhereJSON] } _ <- Helper.booleanToFuture("Coordinates not possible", 400, Some(cc)) { checkIfLocationPossible(whereJson.where.latitude, whereJson.where.longitude) @@ -2493,7 +2494,7 @@ object Http4s121 { unboxFullOrFail(_, Some(cc), s"$NoViewPermission can_add_where_tag. Current ViewId(${view.viewId})") } whereJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(bodyStr).extract[PostTransactionWhereJSON] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[PostTransactionWhereJSON] } _ <- Helper.booleanToFuture("Coordinates not possible", 400, Some(cc)) { checkIfLocationPossible(whereJson.where.latitude, whereJson.where.longitude) diff --git a/obp-api/src/main/scala/code/api/v1_2_1/JSONFactory1.2.1.scala b/obp-api/src/main/scala/code/api/v1_2_1/JSONFactory1.2.1.scala index 7d83131501..a8d8aa1682 100644 --- a/obp-api/src/main/scala/code/api/v1_2_1/JSONFactory1.2.1.scala +++ b/obp-api/src/main/scala/code/api/v1_2_1/JSONFactory1.2.1.scala @@ -26,6 +26,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v1_2_1 +import org.json4s._ import code.api.Constant._ import code.api.util.APIUtil import code.api.util.APIUtil._ @@ -34,8 +35,8 @@ import code.model._ import com.openbankproject.commons.model._ import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.{Box, Full} -import net.liftweb.json.Extraction -import net.liftweb.json.JsonAST.JValue +import org.json4s.Extraction +import org.json4s.JsonAST.JValue import java.util.Date diff --git a/obp-api/src/main/scala/code/api/v1_4_0/APIMethods140.scala b/obp-api/src/main/scala/code/api/v1_4_0/APIMethods140.scala index 733d0e626d..62267f0f46 100644 --- a/obp-api/src/main/scala/code/api/v1_4_0/APIMethods140.scala +++ b/obp-api/src/main/scala/code/api/v1_4_0/APIMethods140.scala @@ -30,8 +30,8 @@ object APIMethods140 { //import com.openbankproject.commons.model._ //import com.openbankproject.commons.util.ApiVersion //import net.liftweb.common.{Box, Full} -//import net.liftweb.json.Extraction -//import net.liftweb.json.JsonAST.JValue +//import org.json4s.Extraction +//import org.json4s.JsonAST.JValue //import net.liftweb.util.Helpers.tryo //import net.liftweb.util.Props // diff --git a/obp-api/src/main/scala/code/api/v1_4_0/JSONFactory1_4_0.scala b/obp-api/src/main/scala/code/api/v1_4_0/JSONFactory1_4_0.scala index 3428153c80..7b432420bf 100644 --- a/obp-api/src/main/scala/code/api/v1_4_0/JSONFactory1_4_0.scala +++ b/obp-api/src/main/scala/code/api/v1_4_0/JSONFactory1_4_0.scala @@ -1,5 +1,6 @@ package code.api.v1_4_0 +import org.json4s._ import code.api.Constant.{CREATE_LOCALISED_RESOURCE_DOC_JSON_TTL, LOCALISED_RESOURCE_DOC_PREFIX} import code.api.berlin.group.v1_3.JvalueCaseClass import code.api.cache.Caching @@ -17,10 +18,10 @@ import com.openbankproject.commons.model.{Product, _} import com.openbankproject.commons.model.enums.I18NResourceDocField import com.openbankproject.commons.util.{EnumValue, JsonUtils, OBPEnumeration, ReflectUtils} import net.liftweb.common.Full -import net.liftweb.json -import net.liftweb.json.Extraction.decompose -import net.liftweb.json.{Extraction, Formats, JDouble, JInt, JString} -import net.liftweb.json.JsonAST.{JArray, JBool, JNothing, JObject, JValue} +import com.openbankproject.commons.util.json +import org.json4s.Extraction.decompose +import org.json4s.{Extraction, Formats, JDouble, JInt, JString} +import org.json4s.JsonAST.{JArray, JBool, JNothing, JObject, JValue} import net.liftweb.util.StringHelpers import code.util.Helper.MdcLoggable import com.github.dwickern.macros.NameOf.nameOf @@ -32,6 +33,7 @@ import java.util.regex.Pattern import java.lang.reflect.Field import java.util.UUID.randomUUID import scala.concurrent.duration._ +import com.openbankproject.commons.util.JsonAliases.RichJField object JSONFactory1_4_0 extends MdcLoggable{ implicit def formats: Formats = CustomJsonFormats.formats diff --git a/obp-api/src/main/scala/code/api/v2_0_0/APIMethods200.scala b/obp-api/src/main/scala/code/api/v2_0_0/APIMethods200.scala index 7277fedacc..5dcce7af6c 100644 --- a/obp-api/src/main/scala/code/api/v2_0_0/APIMethods200.scala +++ b/obp-api/src/main/scala/code/api/v2_0_0/APIMethods200.scala @@ -40,7 +40,7 @@ object APIMethods200 { //import com.openbankproject.commons.model._ //import com.openbankproject.commons.util.ApiVersion //import net.liftweb.common._ -//import net.liftweb.json.JsonAST.JValue +//import org.json4s.JsonAST.JValue //import net.liftweb.mapper.By //import net.liftweb.util.Helpers.tryo //import net.liftweb.util.StringHelpers @@ -52,7 +52,7 @@ object APIMethods200 { //import code.api.util.ApiRole._ //import code.api.util.ErrorMessages._ //import com.openbankproject.commons.model.{AmountOfMoneyJsonV121 => AmountOfMoneyJSON121} -//import net.liftweb.json.Extraction +//import org.json4s.Extraction // //trait APIMethods200 { // //needs to be a RestHelper to get access to JsonGet, JsonPost, etc. @@ -1291,8 +1291,8 @@ object APIMethods200 { // } // // -// import net.liftweb.json.Extraction._ -// import net.liftweb.json.JsonAST._ +// import org.json4s.Extraction._ +// import org.json4s.JsonAST._ // val exchangeRates = prettyRender(decompose(fx.fallbackExchangeRates)) // // resourceDocs += ResourceDoc( diff --git a/obp-api/src/main/scala/code/api/v2_0_0/Http4s200.scala b/obp-api/src/main/scala/code/api/v2_0_0/Http4s200.scala index 7b35f7dba1..197d6bbec8 100644 --- a/obp-api/src/main/scala/code/api/v2_0_0/Http4s200.scala +++ b/obp-api/src/main/scala/code/api/v2_0_0/Http4s200.scala @@ -1,5 +1,6 @@ package code.api.v2_0_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.TransactionTypes.TransactionType @@ -33,8 +34,8 @@ import com.openbankproject.commons.model.{AccountId, AmountOfMoneyJsonV121, Bank import com.openbankproject.commons.model.{AmountOfMoneyJsonV121 => AmountOfMoneyJSON121} import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus, ScannedApiVersion} import net.liftweb.common._ -import net.liftweb.json.JsonAST.JValue -import net.liftweb.json.{Extraction, Formats} +import org.json4s.JsonAST.JValue +import org.json4s.{Extraction, Formats} import net.liftweb.mapper.By import org.http4s._ import org.http4s.dsl.io._ @@ -125,7 +126,7 @@ object Http4s200 { val (privateViewsUserCanAccess, privateAccountAccess) = Views.views.vend.privateViewsUserCanAccess(user) val privateAccounts = BankAccountX.privateAccounts(privateAccountAccess) privateAccounts.map { account => - createCoreAccountJSON(account, net.liftweb.json.JObject(Nil)) + createCoreAccountJSON(account, org.json4s.JObject(Nil)) } } } @@ -179,7 +180,7 @@ object Http4s200 { def processAccounts(privateViews: List[com.openbankproject.commons.model.View], accounts: List[com.openbankproject.commons.model.BankAccount] - ): net.liftweb.json.JsonAST.JValue = { + ): org.json4s.JsonAST.JValue = { val accJson = accounts.map { account => val viewsAvailable = privateViews .filter(v => v.bankId == account.bankId && v.accountId == account.accountId && v.isPrivate) @@ -187,7 +188,7 @@ object Http4s200 { .distinct createBasicAccountJSON(account, viewsAvailable) } - net.liftweb.json.Extraction.decompose(accJson) + org.json4s.Extraction.decompose(accJson) } // ─── getPrivateAccountsAtOneBank ────────────────────────────────────────── @@ -241,7 +242,7 @@ object Http4s200 { } (privateAccountsForOneBank, _) <- BankExtended(bank).privateAccountsFuture(privateAccountAccess, Some(cc)) } yield privateAccountsForOneBank.map(account => - createCoreAccountJSON(account, net.liftweb.json.JObject(Nil))) + createCoreAccountJSON(account, org.json4s.JObject(Nil))) } case req @ GET -> `prefixPath` / "my" / "banks" / _ / "accounts" / "private" => EndpointHelpers.withUserAndBank(req) { (user, bank, cc) => @@ -251,7 +252,7 @@ object Http4s200 { } (privateAccountsForOneBank, _) <- BankExtended(bank).privateAccountsFuture(privateAccountAccess, Some(cc)) } yield privateAccountsForOneBank.map(account => - createCoreAccountJSON(account, net.liftweb.json.JObject(Nil))) + createCoreAccountJSON(account, org.json4s.JObject(Nil))) } case req @ GET -> `prefixPath` / "bank" / "accounts" => EndpointHelpers.withUser(req) { (user, cc) => @@ -262,7 +263,7 @@ object Http4s200 { } (availablePrivateAccounts, _) <- BankExtended(bank).privateAccountsFuture(privateAccountAccess, Some(cc)) } yield availablePrivateAccounts.map(account => - createCoreAccountJSON(account, net.liftweb.json.JObject(Nil))) + createCoreAccountJSON(account, org.json4s.JObject(Nil))) } } @@ -867,7 +868,7 @@ object Http4s200 { initialBalanceAsNumber, postedOrLoggedInUser.name, "", List.empty, cc2) _ <- BankAccountCreation.setAccountHolderAndRefreshUserAccountAccess( bank.bankId, accountId, postedOrLoggedInUser, cc3) - } yield createCoreAccountJSON(bankAccount, net.liftweb.json.JObject(Nil)) + } yield createCoreAccountJSON(bankAccount, org.json4s.JObject(Nil)) } } diff --git a/obp-api/src/main/scala/code/api/v2_0_0/JSONFactory2.0.0.scala b/obp-api/src/main/scala/code/api/v2_0_0/JSONFactory2.0.0.scala index d649a206a1..3fb0fccd30 100644 --- a/obp-api/src/main/scala/code/api/v2_0_0/JSONFactory2.0.0.scala +++ b/obp-api/src/main/scala/code/api/v2_0_0/JSONFactory2.0.0.scala @@ -26,6 +26,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v2_0_0 +import org.json4s._ import java.util.Date import code.TransactionTypes.TransactionType.TransactionType @@ -41,8 +42,8 @@ import code.users.Users import code.views.Views import com.openbankproject.commons.model.{BankAccount, _} import net.liftweb.common.{Box, Full} -import net.liftweb.json.Extraction -import net.liftweb.json.JsonAST.JValue +import org.json4s.Extraction +import org.json4s.JsonAST.JValue diff --git a/obp-api/src/main/scala/code/api/v2_1_0/APIMethods210.scala b/obp-api/src/main/scala/code/api/v2_1_0/APIMethods210.scala index 727bf21a26..d2b2163d6d 100644 --- a/obp-api/src/main/scala/code/api/v2_1_0/APIMethods210.scala +++ b/obp-api/src/main/scala/code/api/v2_1_0/APIMethods210.scala @@ -40,7 +40,7 @@ object APIMethods210 { //import com.openbankproject.commons.model.enums.TransactionRequestTypes._ //import com.openbankproject.commons.model.enums.{ChallengeType, SuppliedAnswerType, TransactionRequestTypes} //import com.openbankproject.commons.util.ApiVersion -//import net.liftweb.json.Extraction +//import org.json4s.Extraction //import net.liftweb.util.Helpers.tryo //import net.liftweb.util.StringHelpers // @@ -57,8 +57,8 @@ object APIMethods210 { //import code.util.Helper //import com.openbankproject.commons.ExecutionContext.Implicits.global //import net.liftweb.common.{Box, Full} -//import net.liftweb.json.Serialization.write -//import net.liftweb.json._ +//import org.json4s.native.Serialization.write +//import org.json4s._ // //trait APIMethods210 { // //needs to be a RestHelper to get access to JsonGet, JsonPost, etc. @@ -207,8 +207,8 @@ object APIMethods210 { // } // // -// import net.liftweb.json.Extraction._ -// import net.liftweb.json.JsonAST._ +// import org.json4s.Extraction._ +// import org.json4s.JsonAST._ // val exchangeRates = prettyRender(decompose(fx.fallbackExchangeRates)) // // diff --git a/obp-api/src/main/scala/code/api/v2_1_0/Http4s210.scala b/obp-api/src/main/scala/code/api/v2_1_0/Http4s210.scala index 0add9393cd..4081ac34b4 100644 --- a/obp-api/src/main/scala/code/api/v2_1_0/Http4s210.scala +++ b/obp-api/src/main/scala/code/api/v2_1_0/Http4s210.scala @@ -1,5 +1,6 @@ package code.api.v2_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.TransactionTypes.TransactionType @@ -38,10 +39,11 @@ import com.openbankproject.commons.model.enums.TransactionRequestTypes._ import com.openbankproject.commons.model.enums.{ChallengeType, SuppliedAnswerType, TransactionRequestTypes} import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus, ScannedApiVersion} import net.liftweb.common.{Failure, Full} -import net.liftweb.json.JsonAST.{compactRender, prettyRender} -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.{Extraction, Formats, Serialization} -import net.liftweb.json.Serialization.{write => liftWrite} +import com.openbankproject.commons.util.JsonAliases.{compactRender, prettyRender} +import org.json4s.JsonDSL._ +import org.json4s.{Extraction, Formats} +import org.json4s.native.Serialization +import org.json4s.native.Serialization.{write => liftWrite} import org.http4s._ import org.http4s.dsl.io._ @@ -289,7 +291,7 @@ object Http4s210 { _ <- NewStyle.function.checkAuthorisationToCreateTransactionRequest(viewId, account, user, Some(cc)) transDetailsJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the $TransactionRequestBodyCommonJSON", 400, Some(cc)) { - net.liftweb.json.parse(jsonBody).extract[TransactionRequestBodyCommonJSON] + com.openbankproject.commons.util.JsonAliases.parse(jsonBody).extract[TransactionRequestBodyCommonJSON] } isValidAmountNumber <- NewStyle.function.tryons( s"$InvalidNumber Current input is ${transDetailsJson.value.amount}", 400, Some(cc)) { @@ -308,7 +310,7 @@ object Http4s210 { cc = Some(cc)) { transDetailsJson.value.currency == fromAccount.currency } - parsedJson = net.liftweb.json.parse(jsonBody) + parsedJson = com.openbankproject.commons.util.JsonAliases.parse(jsonBody) (createdTransactionRequest, _) <- TransactionRequestTypes.withName(transactionRequestTypeStr) match { case SANDBOX_TAN => for { @@ -320,7 +322,7 @@ object Http4s210 { toAccountId = AccountId(body.to.account_id) (toAccount, _) <- NewStyle.function.checkBankAccountExists(toBankId, toAccountId, Some(cc)) serialized <- NewStyle.function.tryons(UnknownError, 400, Some(cc)) { - liftWrite(body)(Serialization.formats(net.liftweb.json.NoTypeHints)) + liftWrite(body)(Serialization.formats(org.json4s.NoTypeHints)) } result <- NewStyle.function.createTransactionRequestv210( user, viewId, fromAccount, toAccount, @@ -343,7 +345,7 @@ object Http4s210 { code.api.ChargePolicy.values.contains(code.api.ChargePolicy.withName(body.charge_policy)) } serialized <- NewStyle.function.tryons(UnknownError, 400, Some(cc)) { - liftWrite(body)(Serialization.formats(net.liftweb.json.NoTypeHints)) + liftWrite(body)(Serialization.formats(org.json4s.NoTypeHints)) } result <- NewStyle.function.createTransactionRequestv210( user, viewId, fromAccount, toAccount, @@ -365,7 +367,7 @@ object Http4s210 { code.api.ChargePolicy.values.contains(code.api.ChargePolicy.withName(body.charge_policy)) } serialized <- NewStyle.function.tryons(UnknownError, 400, Some(cc)) { - liftWrite(body)(Serialization.formats(net.liftweb.json.NoTypeHints)) + liftWrite(body)(Serialization.formats(org.json4s.NoTypeHints)) } result <- NewStyle.function.createTransactionRequestv210( user, viewId, fromAccount, toAccount, @@ -379,7 +381,7 @@ object Http4s210 { parsedJson.extract[TransactionRequestBodyFreeFormJSON] } serialized <- NewStyle.function.tryons(UnknownError, 400, Some(cc)) { - liftWrite(body)(Serialization.formats(net.liftweb.json.NoTypeHints)) + liftWrite(body)(Serialization.formats(org.json4s.NoTypeHints)) } result <- NewStyle.function.createTransactionRequestv210( user, viewId, fromAccount, fromAccount, @@ -393,7 +395,7 @@ object Http4s210 { // APIFailureNewStyle JSON so ErrorResponseConverter maps it to 400, // not 500. val af = code.api.APIFailureNewStyle(s"$InvalidTransactionRequestType: '$transactionRequestTypeStr'", 400, Some(cc.toLight)) - Future.failed(new Exception(net.liftweb.json.JsonAST.compactRender(net.liftweb.json.Extraction.decompose(af)))) + Future.failed(new Exception(com.openbankproject.commons.util.JsonAliases.compactRender(org.json4s.Extraction.decompose(af)))) } } yield JSONFactory210.createTransactionRequestWithChargeJSON(createdTransactionRequest) } @@ -491,7 +493,7 @@ object Http4s210 { _ <- code.util.Helper.booleanToFuture(InvalidBankIdFormat, cc = Some(cc)) { isValidID(fromAccount.bankId.value) } challengeAnswerJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ChallengeAnswerJSON", 400, Some(cc)) { - net.liftweb.json.parse(jsonBody).extract[code.api.v1_4_0.JSONFactory1_4_0.ChallengeAnswerJSON] + com.openbankproject.commons.util.JsonAliases.parse(jsonBody).extract[code.api.v1_4_0.JSONFactory1_4_0.ChallengeAnswerJSON] } account = BankIdAccountId(fromAccount.bankId, fromAccount.accountId) viewId <- Future { diff --git a/obp-api/src/main/scala/code/api/v2_2_0/APIMethods220.scala b/obp-api/src/main/scala/code/api/v2_2_0/APIMethods220.scala index b1dfca58bf..51b5957035 100644 --- a/obp-api/src/main/scala/code/api/v2_2_0/APIMethods220.scala +++ b/obp-api/src/main/scala/code/api/v2_2_0/APIMethods220.scala @@ -40,7 +40,7 @@ object APIMethods220 { //import com.openbankproject.commons.model._ //import com.openbankproject.commons.util.ApiVersion //import net.liftweb.common.Full -//import net.liftweb.json.Extraction +//import org.json4s.Extraction //import net.liftweb.util.Helpers.tryo //import net.liftweb.util.StringHelpers // diff --git a/obp-api/src/main/scala/code/api/v2_2_0/Http4s220.scala b/obp-api/src/main/scala/code/api/v2_2_0/Http4s220.scala index b2b18f3cd6..f62b53c99a 100644 --- a/obp-api/src/main/scala/code/api/v2_2_0/Http4s220.scala +++ b/obp-api/src/main/scala/code/api/v2_2_0/Http4s220.scala @@ -1,5 +1,6 @@ package code.api.v2_2_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.Constant._ @@ -30,8 +31,9 @@ import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model._ import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus, ScannedApiVersion} import net.liftweb.common.Full -import net.liftweb.json.JsonAST.prettyRender -import net.liftweb.json.{Extraction, Formats, Serialization} +import com.openbankproject.commons.util.JsonAliases.prettyRender +import org.json4s.{Extraction, Formats} +import org.json4s.native.Serialization import net.liftweb.util.StringHelpers import org.http4s._ import org.http4s.dsl.io._ @@ -180,7 +182,7 @@ object Http4s220 { private def createViewImpl(user: User, account: BankAccount, body: String, cc: CallContext): Future[ViewJSONV220] = { for { createBodyJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(body).extract[CreateViewJsonV121] + com.openbankproject.commons.util.JsonAliases.parse(body).extract[CreateViewJsonV121] } _ <- code.util.Helper.booleanToFuture( s"$InvalidCustomViewFormat Current view_name (${createBodyJson.name})", cc = Some(cc)) { @@ -242,7 +244,7 @@ object Http4s220 { private def updateViewImpl(user: User, account: BankAccount, viewId: ViewId, body: String, cc: CallContext): Future[ViewJSONV220] = { for { updateBodyJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(body).extract[UpdateViewJsonV121] + com.openbankproject.commons.util.JsonAliases.parse(body).extract[UpdateViewJsonV121] } _ <- code.util.Helper.booleanToFuture( s"$InvalidCustomViewFormat Current view_name (${viewId.value})", cc = Some(cc)) { @@ -980,7 +982,7 @@ object Http4s220 { _ <- code.util.Helper.booleanToFuture(InvalidBankIdFormat, cc = Some(cc)) { isValidID(account.bankId.value) } postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the $PostCounterpartyJSON", 400, Some(cc)) { - net.liftweb.json.parse(body).extract[PostCounterpartyJSON] + com.openbankproject.commons.util.JsonAliases.parse(body).extract[PostCounterpartyJSON] } _ <- code.util.Helper.booleanToFuture( s"${NoViewPermission} You need the `${CAN_ADD_COUNTERPARTY}` permission on the View(${view.viewId.value})", diff --git a/obp-api/src/main/scala/code/api/v2_2_0/JSONFactory2.2.0.scala b/obp-api/src/main/scala/code/api/v2_2_0/JSONFactory2.2.0.scala index dcc955b3fb..14e1f90cc0 100644 --- a/obp-api/src/main/scala/code/api/v2_2_0/JSONFactory2.2.0.scala +++ b/obp-api/src/main/scala/code/api/v2_2_0/JSONFactory2.2.0.scala @@ -26,6 +26,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v2_2_0 +import org.json4s._ import code.actorsystem.ObpActorConfig import code.api.Constant._ import code.api.util.APIUtil.{EndpointInfo, MessageDoc, getPropsValue} @@ -43,8 +44,8 @@ import code.util.Helper import com.openbankproject.commons.model._ import com.openbankproject.commons.util.{ReflectUtils, RequiredFields} import net.liftweb.common.{Box, Full} -import net.liftweb.json.Extraction.decompose -import net.liftweb.json.JsonAST.JValue +import org.json4s.Extraction.decompose +import org.json4s.JsonAST.JValue import java.util.Date diff --git a/obp-api/src/main/scala/code/api/v3_0_0/APIMethods300.scala b/obp-api/src/main/scala/code/api/v3_0_0/APIMethods300.scala index da3eba185a..ce949a6f91 100644 --- a/obp-api/src/main/scala/code/api/v3_0_0/APIMethods300.scala +++ b/obp-api/src/main/scala/code/api/v3_0_0/APIMethods300.scala @@ -58,8 +58,8 @@ object APIMethods300 { //import com.openbankproject.commons.model._ //import com.openbankproject.commons.util.ApiVersion //import net.liftweb.common._ -//import net.liftweb.json.JsonAST.JField -//import net.liftweb.json.compactRender +//import org.json4s.JsonAST.JField +//import com.openbankproject.commons.util.JsonAliases.compactRender //import net.liftweb.util.Helpers.tryo // //import java.util.regex.Pattern diff --git a/obp-api/src/main/scala/code/api/v3_0_0/Http4s300.scala b/obp-api/src/main/scala/code/api/v3_0_0/Http4s300.scala index 4559165e42..4641e6ab44 100644 --- a/obp-api/src/main/scala/code/api/v3_0_0/Http4s300.scala +++ b/obp-api/src/main/scala/code/api/v3_0_0/Http4s300.scala @@ -1,5 +1,6 @@ package code.api.v3_0_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.Constant @@ -34,9 +35,10 @@ import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model._ import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus, ScannedApiVersion} import net.liftweb.common.{Empty, Failure, Full, ParamFailure} -import net.liftweb.json.JsonAST.JField -import net.liftweb.json.compactRender -import net.liftweb.json.{Extraction, Formats, Serialization} +import org.json4s.JsonAST.JField +import com.openbankproject.commons.util.JsonAliases.compactRender +import org.json4s.{Extraction, Formats} +import org.json4s.native.Serialization import net.liftweb.util.Helpers.tryo import org.http4s._ import org.http4s.dsl.io._ @@ -44,6 +46,7 @@ import org.http4s.dsl.io._ import java.util.regex.Pattern import scala.collection.mutable.ArrayBuffer import scala.concurrent.Future +import com.openbankproject.commons.util.JsonAliases.RichJField object Http4s300 { val implementedInApiVersion: ScannedApiVersion = ApiVersion.v3_0_0 @@ -161,7 +164,7 @@ object Http4s300 { } yield result io.attempt.flatMap { case Right(result) => - Created(net.liftweb.json.prettyRender(Extraction.decompose(result))) + Created(com.openbankproject.commons.util.JsonAliases.prettyRender(Extraction.decompose(result))) case Left(err) => code.api.util.http4s.ErrorResponseConverter.toHttp4sResponse(err, cc) } @@ -202,7 +205,7 @@ object Http4s300 { private def createViewImpl300(user: User, account: BankAccount, body: String, cc: CallContext): Future[ViewJsonV300] = { for { createBodyJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $CreateViewJsonV300", 400, Some(cc)) { - net.liftweb.json.parse(body).extract[CreateViewJsonV300] + com.openbankproject.commons.util.JsonAliases.parse(body).extract[CreateViewJsonV300] } _ <- code.util.Helper.booleanToFuture( s"$InvalidCustomViewFormat Current view_name (${createBodyJson.name})", cc = Some(cc)) { @@ -231,7 +234,7 @@ object Http4s300 { } yield result io.attempt.flatMap { case Right(result) => - Ok(net.liftweb.json.prettyRender(Extraction.decompose(result))) + Ok(com.openbankproject.commons.util.JsonAliases.prettyRender(Extraction.decompose(result))) case Left(err) => code.api.util.http4s.ErrorResponseConverter.toHttp4sResponse(err, cc) } @@ -260,7 +263,7 @@ object Http4s300 { private def updateViewImpl300(user: User, account: BankAccount, viewId: ViewId, body: String, cc: CallContext): Future[ViewJsonV300] = { for { updateBodyJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $UpdateViewJsonV300", 400, Some(cc)) { - net.liftweb.json.parse(body).extract[UpdateViewJsonV300] + com.openbankproject.commons.util.JsonAliases.parse(body).extract[UpdateViewJsonV300] } _ <- code.util.Helper.booleanToFuture( s"$InvalidCustomViewFormat Current view_name (${viewId.value})", cc = Some(cc)) { @@ -755,7 +758,7 @@ object Http4s300 { result <- code.api.util.http4s.RequestScopeConnection.fromFuture { for { _ <- code.util.Helper.booleanToFuture(ElasticSearchDisabled, cc = Some(cc)) { esw.isEnabled() } - json <- Future { unboxFullOrFail(tryo(net.liftweb.json.parse(bodyText)), Some(cc), ElasticSearchEmptyQueryBody) } + json <- Future { unboxFullOrFail(tryo(com.openbankproject.commons.util.JsonAliases.parse(bodyText)), Some(cc), ElasticSearchEmptyQueryBody) } maximumSize = APIUtil.getPropsAsIntValue("es.warehouse.allowed.maximum.pagesize", 10000) _ <- code.util.Helper.booleanToFuture( maximumLimitExceeded.replace("Maximum number is 10000.", s"Please check query body, the maximum size is $maximumSize."), @@ -770,7 +773,7 @@ object Http4s300 { } } yield result io.attempt.flatMap { - case Right(r) => Ok(net.liftweb.json.prettyRender(net.liftweb.json.Extraction.decompose(r))) + case Right(r) => Ok(com.openbankproject.commons.util.JsonAliases.prettyRender(org.json4s.Extraction.decompose(r))) case Left(e) => code.api.util.http4s.ErrorResponseConverter.toHttp4sResponse(e, cc) } } @@ -829,7 +832,7 @@ object Http4s300 { result <- code.api.util.http4s.RequestScopeConnection.fromFuture { for { _ <- code.util.Helper.booleanToFuture(ElasticSearchDisabled, cc = Some(cc)) { esw.isEnabled() } - json <- Future { unboxFullOrFail(tryo(net.liftweb.json.parse(bodyText)), Some(cc), ElasticSearchEmptyQueryBody) } + json <- Future { unboxFullOrFail(tryo(com.openbankproject.commons.util.JsonAliases.parse(bodyText)), Some(cc), ElasticSearchEmptyQueryBody) } maximumSize = APIUtil.getPropsAsIntValue("es.warehouse.allowed.maximum.pagesize", 10000) _ <- code.util.Helper.booleanToFuture( maximumLimitExceeded.replace("Maximum number is 10000.", s"Please check query body, the maximum size is $maximumSize."), @@ -844,7 +847,7 @@ object Http4s300 { } } yield result io.attempt.flatMap { - case Right(r) => Ok(net.liftweb.json.prettyRender(net.liftweb.json.Extraction.decompose(r))) + case Right(r) => Ok(com.openbankproject.commons.util.JsonAliases.prettyRender(org.json4s.Extraction.decompose(r))) case Left(e) => code.api.util.http4s.ErrorResponseConverter.toHttp4sResponse(e, cc) } } @@ -1813,7 +1816,7 @@ object Http4s300 { result <- EntitlementRequest.entitlementRequest.vend.deleteEntitlementRequestFuture(entitlementRequestIdStr) map { connectorEmptyResponse(_, Some(cc)) } - } yield net.liftweb.json.JBool(result) + } yield org.json4s.JBool(result) } } @@ -2107,7 +2110,7 @@ object Http4s300 { } _ <- code.util.Helper.booleanToFuture(ConsumerDoesNotHaveScope, cc = Some(cc)) { scope.scopeId == scopeIdStr } _ <- Future { Scope.scope.vend.deleteScope(Full(scope)) } - } yield net.liftweb.json.JObject(Nil) + } yield org.json4s.JObject(Nil) } } diff --git a/obp-api/src/main/scala/code/api/v3_1_0/APIMethods310.scala b/obp-api/src/main/scala/code/api/v3_1_0/APIMethods310.scala index 1608d4bac2..831c065761 100644 --- a/obp-api/src/main/scala/code/api/v3_1_0/APIMethods310.scala +++ b/obp-api/src/main/scala/code/api/v3_1_0/APIMethods310.scala @@ -67,8 +67,8 @@ object APIMethods310 { //import com.openbankproject.commons.model.enums.{AccountAttributeType, CardAttributeType, ProductAttributeType, StrongCustomerAuthentication} //import com.openbankproject.commons.util.{ApiVersion, ReflectUtils} //import net.liftweb.common.{Box, Empty, Full} -//import net.liftweb.json -//import net.liftweb.json._ +//import com.openbankproject.commons.util.json +//import org.json4s._ //import net.liftweb.mapper.By //import net.liftweb.util.Helpers.tryo //import net.liftweb.util.{Helpers, Props} diff --git a/obp-api/src/main/scala/code/api/v3_1_0/Http4s310.scala b/obp-api/src/main/scala/code/api/v3_1_0/Http4s310.scala index ef3e4bdd6c..b5d4e85d19 100644 --- a/obp-api/src/main/scala/code/api/v3_1_0/Http4s310.scala +++ b/obp-api/src/main/scala/code/api/v3_1_0/Http4s310.scala @@ -1,5 +1,6 @@ package code.api.v3_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.Constant._ @@ -46,7 +47,7 @@ import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model._ import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus, ScannedApiVersion} import net.liftweb.common.{Empty, Full} -import net.liftweb.json.Formats +import org.json4s.Formats import net.liftweb.mapper.By import net.liftweb.util.{Helpers, Props} import org.apache.commons.lang3.StringUtils @@ -1140,7 +1141,7 @@ object Http4s310 { val getServerJWK: HttpRoutes[IO] = HttpRoutes.of[IO] { case req @ GET -> `prefixPath` / "certs" => EndpointHelpers.executeAndRespond(req) { _ => - Future.successful(net.liftweb.json.parse(CertificateUtil.convertRSAPublicKeyToAnRSAJWK())) + Future.successful(com.openbankproject.commons.util.JsonAliases.parse(CertificateUtil.convertRSAPublicKeyToAnRSAJWK())) } } @@ -3385,7 +3386,7 @@ object Http4s310 { for { createMeetingJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[code.api.v2_0_0.CreateMeetingJson].getSimpleName} ", - 400, Some(cc)) { net.liftweb.json.parse(rawBody).extract[CreateMeetingJsonV310] } + 400, Some(cc)) { com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[CreateMeetingJsonV310] } creator = ContactDetails( createMeetingJson.creator.name, createMeetingJson.creator.mobile_phone, @@ -4443,7 +4444,7 @@ object Http4s310 { for { postConsentEmailJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the $PostConsentEmailJsonV310", 400, Some(cc)) { - net.liftweb.json.parse(raw).extract[PostConsentEmailJsonV310] + com.openbankproject.commons.util.JsonAliases.parse(raw).extract[PostConsentEmailJsonV310] } _ <- NewStyle.function.sendCustomerNotification( StrongCustomerAuthentication.EMAIL, @@ -4454,7 +4455,7 @@ object Http4s310 { for { postConsentPhoneJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the $PostConsentPhoneJsonV310", 400, Some(cc)) { - net.liftweb.json.parse(raw).extract[PostConsentPhoneJsonV310] + com.openbankproject.commons.util.JsonAliases.parse(raw).extract[PostConsentPhoneJsonV310] } _ <- NewStyle.function.sendCustomerNotification( StrongCustomerAuthentication.SMS, diff --git a/obp-api/src/main/scala/code/api/v4_0_0/APIMethods400.scala b/obp-api/src/main/scala/code/api/v4_0_0/APIMethods400.scala index 2bd8cc0752..97bf38fe57 100644 --- a/obp-api/src/main/scala/code/api/v4_0_0/APIMethods400.scala +++ b/obp-api/src/main/scala/code/api/v4_0_0/APIMethods400.scala @@ -90,9 +90,9 @@ trait APIMethods400 //import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} //import deletion._ //import net.liftweb.common._ -//import net.liftweb.json.JsonAST.JValue -//import net.liftweb.json.JsonDSL._ -//import net.liftweb.json._ +//import org.json4s.JsonAST.JValue +//import org.json4s.JsonDSL._ +//import org.json4s._ //import net.liftweb.util.Helpers.{now, tryo} //import net.liftweb.util.{Helpers, StringHelpers} //import org.apache.commons.lang3.StringUtils diff --git a/obp-api/src/main/scala/code/api/v4_0_0/Http4s400.scala b/obp-api/src/main/scala/code/api/v4_0_0/Http4s400.scala index 7aa688438f..1eaa92c6a1 100644 --- a/obp-api/src/main/scala/code/api/v4_0_0/Http4s400.scala +++ b/obp-api/src/main/scala/code/api/v4_0_0/Http4s400.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.Constant._ @@ -63,8 +64,8 @@ import code.api.v2_0_0.CreateEntitlementJSON import code.metadata.counterparties.MappedCounterparty import code.model.AppType import code.webuiprops.MappedWebUiPropsProvider.getWebUiPropsValue -import net.liftweb.json.JsonAST.{JNothing, JString} -import net.liftweb.json.Extraction +import org.json4s.JsonAST.{JNothing, JString} +import org.json4s.Extraction import net.liftweb.util.{Helpers => LiftHelpers, StringHelpers} import java.net.URLEncoder import java.text.SimpleDateFormat @@ -84,10 +85,10 @@ import com.openbankproject.commons.model.enums.{ChallengeType, SuppliedAnswerTyp import com.openbankproject.commons.model.enums.TransactionRequestTypes._ import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus, ScannedApiVersion} import net.liftweb.common.{Box, Failure, Full} -import net.liftweb.json.Formats -import net.liftweb.json.JsonAST.{JArray, JObject, JValue} -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.{compactRender, parse, prettyRender} +import org.json4s.Formats +import org.json4s.JsonAST.{JArray, JObject, JValue} +import org.json4s.JsonDSL._ +import com.openbankproject.commons.util.JsonAliases.{compactRender, parse, prettyRender} import org.apache.commons.lang3.StringUtils import org.http4s._ import org.http4s.dsl.io._ @@ -429,7 +430,7 @@ object Http4s400 { for { bank <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the $BankJson400 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[BankJson400] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[BankJson400] } _ <- code.util.Helper.booleanToFuture( failMsg = InvalidConsumerCredentials, cc = Some(cc)) { @@ -739,7 +740,7 @@ object Http4s400 { atmJsonV400 <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[AtmJsonV400]}", 400, Some(cc)) { - val atm = net.liftweb.json.parse(rawBody).extract[AtmJsonV400] + val atm = com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[AtmJsonV400] atm.id.get atm } @@ -786,7 +787,7 @@ object Http4s400 { product <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the $PutProductJsonV400 ", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PutProductJsonV400] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PutProductJsonV400] } (parentProduct, _) <- product.parent_product_code.trim.nonEmpty match { case false => Future((net.liftweb.common.Empty, Some(cc))) @@ -1620,8 +1621,8 @@ object Http4s400 { try f catch { case e: IllegalArgumentException => val apiFailure = code.api.APIFailureNewStyle(e.getMessage, failCode, Some(cc.toLight)) - throw new Exception(net.liftweb.json.JsonAST.compactRender( - net.liftweb.json.Extraction.decompose(apiFailure))) + throw new Exception(com.openbankproject.commons.util.JsonAliases.compactRender( + org.json4s.Extraction.decompose(apiFailure))) } } @@ -1693,7 +1694,7 @@ object Http4s400 { val rawBody = cc.httpBody.getOrElse("") for { jsonObj <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).asInstanceOf[JObject] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).asInstanceOf[JObject] } dynamicEntity <- tryOrApiFail(cc) { DynamicEntityCommons(jsonObj, None, cc.userId, None) @@ -1729,7 +1730,7 @@ object Http4s400 { val rawBody = cc.httpBody.getOrElse("") for { jsonObj <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).asInstanceOf[JObject] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).asInstanceOf[JObject] } dynamicEntity <- tryOrApiFail(cc) { DynamicEntityCommons(jsonObj, None, cc.userId, Some(bank.bankId.value)) @@ -1763,7 +1764,7 @@ object Http4s400 { val rawBody = cc.httpBody.getOrElse("") for { json <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody) + com.openbankproject.commons.util.JsonAliases.parse(rawBody) } result <- updateDynamicEntityImpl(None, dynamicEntityId, json, cc) } yield result @@ -1792,7 +1793,7 @@ object Http4s400 { val rawBody = cc.httpBody.getOrElse("") for { json <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody) + com.openbankproject.commons.util.JsonAliases.parse(rawBody) } result <- updateDynamicEntityImpl(Some(bank.bankId.value), dynamicEntityId, json, cc) } yield result @@ -1818,7 +1819,7 @@ object Http4s400 { lazy val deleteSystemDynamicEntity: HttpRoutes[IO] = HttpRoutes.of[IO] { case req @ DELETE -> `prefixPath` / "management" / "system-dynamic-entities" / dynamicEntityId => EndpointHelpers.withUser(req) { (_, cc) => - deleteDynamicEntityImpl(None, dynamicEntityId, cc).map(Full(_)) + deleteDynamicEntityImpl(None, dynamicEntityId, cc).map(_ => JObject(Nil)) } } @@ -1852,7 +1853,7 @@ object Http4s400 { lazy val deleteBankLevelDynamicEntity: HttpRoutes[IO] = HttpRoutes.of[IO] { case req @ DELETE -> `prefixPath` / "management" / "banks" / _ / "dynamic-entities" / dynamicEntityId => EndpointHelpers.withUserAndBank(req) { (_, bank, cc) => - deleteDynamicEntityImpl(Some(bank.bankId.value), dynamicEntityId, cc).map(Full(_)) + deleteDynamicEntityImpl(Some(bank.bankId.value), dynamicEntityId, cc).map(_ => JObject(Nil)) } } @@ -1902,7 +1903,7 @@ object Http4s400 { resultList.arr.isEmpty } jsonObj <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).asInstanceOf[JObject] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).asInstanceOf[JObject] } dynamicEntity <- tryOrApiFail(cc) { DynamicEntityCommons(jsonObj, Some(dynamicEntityId), user.userId, myEntity.bankId) @@ -1946,8 +1947,8 @@ object Http4s400 { _ <- code.util.Helper.booleanToFuture(DynamicEntityOperationNotAllowed, cc = Some(cc)) { resultList.arr.isEmpty } - deleted: Box[Boolean] <- NewStyle.function.deleteDynamicEntity(myEntity.bankId, dynamicEntityId) - } yield deleted + _ <- NewStyle.function.deleteDynamicEntity(myEntity.bankId, dynamicEntityId) + } yield JObject(Nil) } } @@ -2034,7 +2035,7 @@ object Http4s400 { ("user_id", cc.userId) ~ ("dynamic_endpoint_id", dynamicEndpoint.dynamicEndpointId) ~ ("swagger_string", swaggerJson) } - net.liftweb.json.Extraction.decompose(ListResult("dynamic_endpoints", resultList)) + org.json4s.Extraction.decompose(ListResult("dynamic_endpoints", resultList)) } private def getDynamicEndpointImpl(bankId: Option[String], dynamicEndpointId: String, cc: CallContext): Future[JObject] = @@ -2810,7 +2811,7 @@ object Http4s400 { _ <- code.util.Helper.booleanToFuture(InvalidBankIdFormat, cc = Some(cc)) { isValidID(account.bankId.value) } postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostCounterpartyJson400", 400, Some(cc)) { - net.liftweb.json.parse(bodyStr).extract[PostCounterpartyJson400] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[PostCounterpartyJson400] } _ <- code.util.Helper.booleanToFuture( failMsg = s"$NoViewPermission can_add_counterparty. Please use a view with that permission or add the permission to this view.", @@ -3044,7 +3045,7 @@ object Http4s400 { account <- Future { cc.bankAccount.getOrElse(throw new RuntimeException(BankAccountNotFound)) } json <- NewStyle.function.tryons( s"$InvalidJsonFormat Empty or invalid request body.", 400, Some(cc)) { - net.liftweb.json.parse(bodyStr) + com.openbankproject.commons.util.JsonAliases.parse(bodyStr) } transactionRequestType = TransactionRequestType(transactionRequestTypeStr) view <- Future { @@ -3377,7 +3378,7 @@ object Http4s400 { user <- Future { cc.user.openOrThrowException(AuthenticatedUserIsRequired) } json <- NewStyle.function.tryons( s"$InvalidJsonFormat Empty or invalid request body.", 400, Some(cc)) { - net.liftweb.json.parse(bodyStr) + com.openbankproject.commons.util.JsonAliases.parse(bodyStr) } transactionRequestType = TransactionRequestType("CARD") innerResult <- APIUtil.SS.init(Full(user), @@ -3469,7 +3470,7 @@ object Http4s400 { _ <- code.util.Helper.booleanToFuture(InvalidBankIdFormat, cc = Some(cc)) { isValidID(bankIdStr) } challengeAnswerJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ChallengeAnswerJson400", 400, Some(cc)) { - net.liftweb.json.parse(jsonBody).extract[ChallengeAnswerJson400] + com.openbankproject.commons.util.JsonAliases.parse(jsonBody).extract[ChallengeAnswerJson400] } _ <- NewStyle.function.checkAuthorisationToCreateTransactionRequest( viewId, BankIdAccountId(fromAccount.bankId, fromAccount.accountId), user, Some(cc)) @@ -4015,7 +4016,7 @@ object Http4s400 { tagJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[code.api.v1_2_1.PostTransactionTagJSON].getSimpleName} ", 400, Some(cc)) { - net.liftweb.json.parse(bodyStr).extract[code.api.v1_2_1.PostTransactionTagJSON] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[code.api.v1_2_1.PostTransactionTagJSON] } postedTag <- Future( code.metadata.tags.Tags.tags.vend.addTagOnAccount(account.bankId, account.accountId)( @@ -5450,7 +5451,7 @@ object Http4s400 { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[PostDirectDebitJsonV400].getSimpleName} ", 400, Some(cc)) { - net.liftweb.json.parse(bodyStr).extract[PostDirectDebitJsonV400] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[PostDirectDebitJsonV400] } result <- directDebitImpl(bankIdStr, accountIdStr, postJson, cc) } yield result @@ -5504,7 +5505,7 @@ object Http4s400 { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[PostStandingOrderJsonV400].getSimpleName} ", 400, Some(cc)) { - net.liftweb.json.parse(bodyStr).extract[PostStandingOrderJsonV400] + com.openbankproject.commons.util.JsonAliases.parse(bodyStr).extract[PostStandingOrderJsonV400] } result <- standingOrderImpl(bankIdStr, accountIdStr, postJson, cc) } yield result @@ -7977,7 +7978,7 @@ object Http4s400 { cc: CallContext): Future[JValue] = { for { (defs, _) <- code.api.util.newstyle.AttributeDefinition.getAttributeDefinition(category, Some(cc)) - } yield net.liftweb.json.Extraction.decompose(JSONFactory400.createAttributeDefinitionsJson(defs)) + } yield org.json4s.Extraction.decompose(JSONFactory400.createAttributeDefinitionsJson(defs)) } lazy val getProductAttributeDefinition: HttpRoutes[IO] = HttpRoutes.of[IO] { @@ -8731,7 +8732,7 @@ object Http4s400 { endpointMapping <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[EndpointMappingCommons]}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[EndpointMappingCommons].copy(bankId = bankId) + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[EndpointMappingCommons].copy(bankId = bankId) } (created, _) <- NewStyle.function.createOrUpdateEndpointMapping( bankId, @@ -8748,7 +8749,7 @@ object Http4s400 { endpointMappingBody <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[EndpointMappingCommons]}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[EndpointMappingCommons].copy(bankId = bankId) + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[EndpointMappingCommons].copy(bankId = bankId) } (existing, callContext) <- NewStyle.function.getEndpointMappingById(bankId, endpointMappingId, Some(cc)) _ <- code.util.Helper.booleanToFuture( @@ -8882,7 +8883,7 @@ object Http4s400 { endpointTag <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[EndpointTagJson400].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[EndpointTagJson400] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[EndpointTagJson400] } (exists, callContext) <- NewStyle.function.checkSystemLevelEndpointTagExists( operationId, endpointTag.tag_name, Some(cc)) @@ -8909,7 +8910,7 @@ object Http4s400 { endpointTag <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[EndpointTagJson400].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[EndpointTagJson400] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[EndpointTagJson400] } (_, callContext) <- NewStyle.function.getEndpointTag(endpointTagId, Some(cc)) (exists, callContext2) <- NewStyle.function.checkSystemLevelEndpointTagExists( @@ -8937,7 +8938,7 @@ object Http4s400 { endpointTag <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[EndpointTagJson400].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[EndpointTagJson400] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[EndpointTagJson400] } (exists, callContext) <- NewStyle.function.checkBankLevelEndpointTagExists( bankIdStr, operationId, endpointTag.tag_name, Some(cc)) @@ -8965,7 +8966,7 @@ object Http4s400 { endpointTag <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[EndpointTagJson400].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[EndpointTagJson400] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[EndpointTagJson400] } (_, callContext) <- NewStyle.function.getEndpointTag(endpointTagId, Some(cc)) (exists, callContext2) <- NewStyle.function.checkBankLevelEndpointTagExists( @@ -9124,7 +9125,7 @@ object Http4s400 { authTypes <- NewStyle.function.tryons( s"$AuthenticationTypeNameIllegal Allowed Authentication Type names: ${allowedAuthTypes.mkString("[", ", ", "]")}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[List[AuthenticationType]] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[List[AuthenticationType]] } (isExists, callContext) <- NewStyle.function.isAuthenticationTypeValidationExists(operationId, Some(cc)) _ <- code.util.Helper.booleanToFuture(OperationIdExistsError, cc = callContext) { !isExists } @@ -9142,7 +9143,7 @@ object Http4s400 { authTypes <- NewStyle.function.tryons( s"$AuthenticationTypeNameIllegal Allowed AuthenticationType names: ${allowedAuthTypes.mkString("[", ", ", "]")}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[List[AuthenticationType]] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[List[AuthenticationType]] } (isExists, callContext) <- NewStyle.function.isAuthenticationTypeValidationExists(operationId, Some(cc)) _ <- code.util.Helper.booleanToFuture(AuthenticationTypeValidationNotFound, cc = callContext) { isExists } @@ -9161,7 +9162,7 @@ object Http4s400 { jsonConnectorMethod <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[JsonConnectorMethod].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JsonConnectorMethod] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JsonConnectorMethod] } (isExists, callContext) <- NewStyle.function.connectorMethodNameExists(jsonConnectorMethod.methodName, Some(cc)) _ <- code.util.Helper.booleanToFuture( @@ -9190,7 +9191,7 @@ object Http4s400 { connectorMethodBody <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[JsonConnectorMethod].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JsonConnectorMethodMethodBody] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JsonConnectorMethodMethodBody] } (cm, callContext) <- NewStyle.function.getJsonConnectorMethodById(connectorMethodId, Some(cc)) connectorMethod = InternalConnector.createFunction( @@ -9371,7 +9372,7 @@ object Http4s400 { body <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[JsonDynamicResourceDoc].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JsonDynamicResourceDoc] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JsonDynamicResourceDoc] } _ <- validateDynamicResourceDocBody(body, cc) _ = compileDynamicResourceDoc(body, cc) @@ -9389,7 +9390,7 @@ object Http4s400 { body <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[JsonDynamicResourceDoc].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JsonDynamicResourceDoc] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JsonDynamicResourceDoc] } _ <- validateDynamicResourceDocBody(body, cc) _ = compileDynamicResourceDoc(body, cc) @@ -9669,7 +9670,7 @@ object Http4s400 { body <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[JsonDynamicMessageDoc].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JsonDynamicMessageDoc] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JsonDynamicMessageDoc] } (exists, callContext) <- NewStyle.function.isJsonDynamicMessageDocExists(bankId, body.process, Some(cc)) _ <- code.util.Helper.booleanToFuture( @@ -9691,7 +9692,7 @@ object Http4s400 { body <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[JsonDynamicMessageDoc].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JsonDynamicMessageDoc] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JsonDynamicMessageDoc] } connectorMethod = DynamicConnector.createFunction(body.programmingLang, body.decodedMethodBody) errorMsg = @@ -9973,7 +9974,7 @@ object Http4s400 { fragment <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[code.api.v4_0_0.ResourceDocFragment].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[code.api.v4_0_0.ResourceDocFragment] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[code.api.v4_0_0.ResourceDocFragment] } _ <- code.util.Helper.booleanToFuture( s"""$InvalidJsonFormat The request_verb must be one of ["POST", "PUT", "GET", "DELETE"]""", @@ -10107,7 +10108,7 @@ object Http4s400 { s"$InvalidJsonFormat The Json body should be the ${prettyRender(Extraction.decompose(createAccountRequestJsonV310))} " for { createAccountJson <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[code.api.v3_1_0.CreateAccountRequestJsonV310] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[code.api.v3_1_0.CreateAccountRequestJsonV310] } loggedInUserId = cc.userId userIdAccountOwner = @@ -10177,7 +10178,7 @@ object Http4s400 { s"$InvalidJsonFormat The Json body should be the ${prettyRender(Extraction.decompose(settlementAccountRequestJson))}" for { createAccountJson <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[SettlementAccountRequestJson] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[SettlementAccountRequestJson] } loggedInUserId = cc.userId userIdAccountOwner = @@ -10245,7 +10246,7 @@ object Http4s400 { val rawBody = cc.httpBody.getOrElse("") for { postedJsonAndAppType <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - val consumerPostJSON = net.liftweb.json.parse(rawBody).extract[code.api.v2_1_0.ConsumerPostJSON] + val consumerPostJSON = com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[code.api.v2_1_0.ConsumerPostJSON] val appType = if (consumerPostJSON.app_type.equals("Confidential")) AppType.valueOf("Confidential") else AppType.valueOf("Public") @@ -10283,7 +10284,7 @@ object Http4s400 { val rawBody = cc.httpBody.getOrElse("") for { postJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostCounterpartyJson400] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostCounterpartyJson400] } _ <- code.util.Helper.booleanToFuture( s"$InvalidValueLength. The maximum length of `description` field is ${MappedCounterparty.mDescription.maxLen}", @@ -10367,7 +10368,7 @@ object Http4s400 { transDetailsJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[PostHistoricalTransactionAtBankJson].getSimpleName} ", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostHistoricalTransactionAtBankJson] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostHistoricalTransactionAtBankJson] } (fromAccount, callContext) <- NewStyle.function.checkBankAccountExists( bankId, AccountId(transDetailsJson.from_account_id), Some(cc)) @@ -10420,7 +10421,7 @@ object Http4s400 { val failMsg = s"$InvalidJsonFormat The Json body should be the ${classOf[PostCreateUserWithRolesJsonV400].getSimpleName} " for { postedData <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostCreateUserWithRolesJsonV400] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostCreateUserWithRolesJsonV400] } _ <- code.util.Helper.booleanToFuture( s"$InvalidUserProvider The user.provider must be start with 'dauth.'", @@ -10453,7 +10454,7 @@ object Http4s400 { val failMsg = s"$InvalidJsonFormat The Json body should be the ${classOf[PostCreateUserAccountAccessJsonV400].getSimpleName} " for { postJson <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostCreateUserAccountAccessJsonV400] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostCreateUserAccountAccessJsonV400] } _ <- code.util.Helper.booleanToFuture( s"$InvalidUserProvider The user.provider must be start with 'dauth.'", @@ -10490,7 +10491,7 @@ object Http4s400 { val failMsg = s"$InvalidJsonFormat The Json body should be the ${classOf[PostUserInvitationJsonV400].getSimpleName} " for { postedData <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostUserInvitationJsonV400] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostUserInvitationJsonV400] } _ <- NewStyle.function.tryons( s"$InvalidJsonValue postedData.purpose only support ${com.openbankproject.commons.model.enums.UserInvitationPurpose.values.toString()}", diff --git a/obp-api/src/main/scala/code/api/v4_0_0/JSONFactory4.0.0.scala b/obp-api/src/main/scala/code/api/v4_0_0/JSONFactory4.0.0.scala index 721ebbca9a..440bed7dbf 100644 --- a/obp-api/src/main/scala/code/api/v4_0_0/JSONFactory4.0.0.scala +++ b/obp-api/src/main/scala/code/api/v4_0_0/JSONFactory4.0.0.scala @@ -26,6 +26,7 @@ */ package code.api.v4_0_0 +import org.json4s._ import code.api.Constant import code.api.attributedefinition.AttributeDefinition import code.api.util.APIUtil.{DateWithDay, DateWithSeconds, gitCommit, stringOptionOrNull, stringOrNull} @@ -59,7 +60,7 @@ import com.openbankproject.commons.model._ import com.openbankproject.commons.model.enums.ChallengeType import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.{Box, Full} -import net.liftweb.json.JValue +import org.json4s.JValue import java.text.SimpleDateFormat import java.util.Date diff --git a/obp-api/src/main/scala/code/api/v5_0_0/APIMethods500.scala b/obp-api/src/main/scala/code/api/v5_0_0/APIMethods500.scala index 4a5c6602d4..f5a3ae64c2 100644 --- a/obp-api/src/main/scala/code/api/v5_0_0/APIMethods500.scala +++ b/obp-api/src/main/scala/code/api/v5_0_0/APIMethods500.scala @@ -50,8 +50,8 @@ trait APIMethods500 //import com.openbankproject.commons.model.enums.StrongCustomerAuthentication //import com.openbankproject.commons.util.ApiVersion //import net.liftweb.common.{Empty, Full} -//import net.liftweb.json -//import net.liftweb.json.{Extraction, compactRender, prettyRender} +//import com.openbankproject.commons.util.json +//import org.json4s.{Extraction, compactRender, prettyRender} //import net.liftweb.mapper.By //import net.liftweb.util.Helpers.tryo //import net.liftweb.util.{Helpers, Props, StringHelpers} diff --git a/obp-api/src/main/scala/code/api/v5_0_0/Http4s500.scala b/obp-api/src/main/scala/code/api/v5_0_0/Http4s500.scala index 308fc06f16..72592fdc80 100644 --- a/obp-api/src/main/scala/code/api/v5_0_0/Http4s500.scala +++ b/obp-api/src/main/scala/code/api/v5_0_0/Http4s500.scala @@ -1,5 +1,6 @@ package code.api.v5_0_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.accountattribute.AccountAttributeX @@ -47,9 +48,10 @@ import com.openbankproject.commons.model.{ import com.openbankproject.commons.model.enums.StrongCustomerAuthentication import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus, ScannedApiVersion} import net.liftweb.common.{Empty, Full} -import net.liftweb.json -import net.liftweb.json.JsonAST.prettyRender -import net.liftweb.json.{Extraction, Formats, compactRender} +import com.openbankproject.commons.util.json +import com.openbankproject.commons.util.JsonAliases.prettyRender +import org.json4s.{Extraction, Formats} +import com.openbankproject.commons.util.JsonAliases.compactRender import net.liftweb.mapper.By import net.liftweb.util.{Helpers, Props, StringHelpers} import org.http4s.{HttpRoutes, MediaType, Method, Request, Response, Status, Uri} @@ -287,7 +289,7 @@ object Http4s500 { 400, Some(cc) ) { - net.liftweb.json.parse(bodyString).extract[CreateViewJsonV500] + com.openbankproject.commons.util.JsonAliases.parse(bodyString).extract[CreateViewJsonV500] } _ <- code.util.Helper.booleanToFuture( SystemViewCannotBePublicError, @@ -373,7 +375,7 @@ object Http4s500 { 400, Some(cc) ) { - net.liftweb.json.parse(bodyString).extract[UpdateViewJsonV500] + com.openbankproject.commons.util.JsonAliases.parse(bodyString).extract[UpdateViewJsonV500] } _ <- code.util.Helper.booleanToFuture( SystemViewCannotBePublicError, @@ -427,7 +429,7 @@ object Http4s500 { val failMsg = s"$InvalidJsonFormat The Json body should be the $PostBankJson500 " for { postJson <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostBankJson500] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostBankJson500] } checkShortStringValue = APIUtil.checkOptionalShortString(postJson.id.getOrElse(SILENCE_IS_GOLDEN)) _ <- Helper.booleanToFuture(s"$checkShortStringValue.", cc = Some(cc)) { @@ -513,7 +515,7 @@ object Http4s500 { val failMsg = s"$InvalidJsonFormat The Json body should be the $PostBankJson500 " for { bank <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostBankJson500] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostBankJson500] } _ <- Helper.booleanToFuture(InvalidConsumerCredentials, cc = Some(cc)) { cc.consumer.isDefined @@ -577,7 +579,7 @@ object Http4s500 { (account, _) <- Connector.connector.vend.checkBankAccountExists(bankId, accountId, Some(cc)) _ <- Helper.booleanToFuture(AccountIdAlreadyExists, cc = Some(cc)) { account.isEmpty } createAccountJson <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[CreateAccountRequestJsonV500] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[CreateAccountRequestJsonV500] } loggedInUserId = user.userId userIdAccountOwner = createAccountJson.user_id.getOrElse(loggedInUserId) @@ -664,7 +666,7 @@ object Http4s500 { val failMsg = s"$InvalidJsonFormat The Json body should be the $PostUserAuthContextJson " for { postedData <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostUserAuthContextJson] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostUserAuthContextJson] } (user, _) <- NewStyle.function.findByUserId(userId, Some(cc)) (userAuthContext, _) <- NewStyle.function.createUserAuthContext( @@ -744,7 +746,7 @@ object Http4s500 { } failMsg = s"$InvalidJsonFormat The Json body should be the $PostUserAuthContextJson " postedData <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostUserAuthContextJson] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostUserAuthContextJson] } (userAuthContextUpdate, _) <- NewStyle.function.validateUserAuthContextUpdateRequest( bankId.value, user.userId, postedData.key.trim, postedData.value.trim, scaMethod, Some(cc)) @@ -784,7 +786,7 @@ object Http4s500 { val failMsg = s"$InvalidJsonFormat The Json body should be the $PostUserAuthContextUpdateJsonV310 " for { postUserAuthContextUpdateJson <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostUserAuthContextUpdateJsonV310] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostUserAuthContextUpdateJsonV310] } (userAuthContextUpdate, _) <- NewStyle.function.checkAnswer(authContextUpdateId, postUserAuthContextUpdateJson.answer, Some(cc)) (user, _) <- NewStyle.function.getUserByUserId(userAuthContextUpdate.userId, Some(cc)) @@ -838,7 +840,7 @@ object Http4s500 { _ <- APIUtil.passesPsd2Aisp(callContextOpt) failMsg = s"$InvalidJsonFormat The Json body should be the $PostConsentBodyCommonJson " consentJson <- NewStyle.function.tryons(failMsg, 400, callContextOpt) { - net.liftweb.json.parse(rawBody).extract[PostConsentRequestJsonV500] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostConsentRequestJsonV500] } maxTimeToLive = APIUtil.getPropsAsIntValue(nameOfProperty = "consents.max_time_to_live", defaultValue = DEFAULT_CONSENT_TTL) _ <- Helper.booleanToFuture(s"$ConsentMaxTTL ($maxTimeToLive)", cc = callContextOpt) { @@ -849,7 +851,7 @@ object Http4s500 { } createdConsentRequest <- Future(ConsentRequests.consentRequestProvider.vend.createConsentRequest( callContextOpt.flatMap(_.consumer), - Some(compactRender(net.liftweb.json.parse(rawBody))) + Some(compactRender(com.openbankproject.commons.util.JsonAliases.parse(rawBody))) )).map(i => connectorEmptyResponse(i, callContextOpt)) } yield JSONFactory500.createConsentRequestResponseJson(createdConsentRequest) } @@ -1450,7 +1452,7 @@ object Http4s500 { for { postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the $PostCustomerJsonV500 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostCustomerJsonV500] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostCustomerJsonV500] } _ <- Helper.booleanToFuture( InvalidJsonContent + s" The field dependants(${postedData.dependants.getOrElse(0)}) not equal the length(${postedData.dob_of_dependants.getOrElse(Nil).length}) of dob_of_dependants array", @@ -1525,7 +1527,7 @@ object Http4s500 { for { postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the $PostCustomerOverviewJsonV500 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostCustomerOverviewJsonV500] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostCustomerOverviewJsonV500] } (customer, _) <- NewStyle.function.getCustomerByCustomerNumber(postedData.customer_number, bankId, Some(cc)) (customerAttributes, _) <- NewStyle.function.getCustomerAttributes(bankId, CustomerId(customer.customerId), Some(cc)) @@ -1568,7 +1570,7 @@ object Http4s500 { for { postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the $PostCustomerOverviewJsonV500 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostCustomerOverviewJsonV500] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostCustomerOverviewJsonV500] } (customer, _) <- NewStyle.function.getCustomerByCustomerNumber(postedData.customer_number, bankId, Some(cc)) (customerAttributes, _) <- NewStyle.function.getCustomerAttributes(bankId, CustomerId(customer.customerId), Some(cc)) @@ -1748,7 +1750,7 @@ object Http4s500 { bankId.value, user.userId, createProductEntitlements, Some(cc)) failMsg = s"$InvalidJsonFormat The Json body should be the $PutProductJsonV500 " product <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PutProductJsonV500] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PutProductJsonV500] } (parentProduct, _) <- product.parent_product_code.trim.nonEmpty match { case false => Future.successful((Empty, Some(cc))) @@ -1817,7 +1819,7 @@ object Http4s500 { (_, _) <- NewStyle.function.getBank(bankId, Some(cc)) failMsg = s"$InvalidJsonFormat The Json body should be the $CreatePhysicalCardJsonV500 " postJson <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[CreatePhysicalCardJsonV500] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[CreatePhysicalCardJsonV500] } _ <- postJson.allows match { case Nil => Future.successful(true) @@ -2076,7 +2078,7 @@ object Http4s500 { (_, _) <- NewStyle.function.getBank(bankId, Some(cc)) postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the $CreateCustomerAccountLinkJson ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[CreateCustomerAccountLinkJson] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[CreateCustomerAccountLinkJson] } (customer, _) <- NewStyle.function.getCustomerByCustomerId(postedData.customer_id, Some(cc)) _ <- booleanToFuture( @@ -2216,7 +2218,7 @@ object Http4s500 { (_, _) <- NewStyle.function.getBank(bankId, Some(cc)) postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the $UpdateCustomerAccountLinkJson ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[UpdateCustomerAccountLinkJson] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[UpdateCustomerAccountLinkJson] } (_, _) <- NewStyle.function.getCustomerAccountLinkById(customerAccountLinkId, Some(cc)) (link, _) <- NewStyle.function.updateCustomerAccountLinkById(customerAccountLinkId, postedData.relationship_type, Some(cc)) @@ -2376,7 +2378,7 @@ object Http4s500 { OptionT.liftF(IO.pure { val contentType = req.headers.get(CIString("Content-Type")).map(_.head.value).getOrElse("") Response[IO](status = Status.NotFound) - .withEntity(net.liftweb.json.compactRender(APIUtil.errorJsonResponse(s"${ErrorMessages.InvalidUri}Current Url is (${req.uri}), Current Content-Type Header is ($contentType)", 404).body)) + .withEntity(com.openbankproject.commons.util.JsonAliases.compactRender(APIUtil.errorJsonResponse(s"${ErrorMessages.InvalidUri}Current Url is (${req.uri}), Current Content-Type Header is ($contentType)", 404).body)) .withContentType(org.http4s.headers.`Content-Type`(MediaType.application.json)) }) } diff --git a/obp-api/src/main/scala/code/api/v5_0_0/JSONFactory5.0.0.scala b/obp-api/src/main/scala/code/api/v5_0_0/JSONFactory5.0.0.scala index 73b2115c3f..fdab08cdeb 100644 --- a/obp-api/src/main/scala/code/api/v5_0_0/JSONFactory5.0.0.scala +++ b/obp-api/src/main/scala/code/api/v5_0_0/JSONFactory5.0.0.scala @@ -26,6 +26,7 @@ */ package code.api.v5_0_0 +import org.json4s._ import code.api.Constant import code.api.Constant._ import code.api.util.APIUtil @@ -42,7 +43,7 @@ import code.api.v4_0_0._ import code.consent.ConsentRequest import com.openbankproject.commons.model._ import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonAST.JValue +import org.json4s.JsonAST.JValue import net.liftweb.util.Helpers import java.lang @@ -804,7 +805,7 @@ object JSONFactory500 { def createConsentRequestResponseJson(createdConsentRequest: ConsentRequest): ConsentRequestResponseJson = { ConsentRequestResponseJson( createdConsentRequest.consentRequestId, - net.liftweb.json.parse(createdConsentRequest.payload), + com.openbankproject.commons.util.JsonAliases.parse(createdConsentRequest.payload), createdConsentRequest.consumerId, ) } diff --git a/obp-api/src/main/scala/code/api/v5_1_0/APIMethods510.scala b/obp-api/src/main/scala/code/api/v5_1_0/APIMethods510.scala index 5a4772d249..8474ddad33 100644 --- a/obp-api/src/main/scala/code/api/v5_1_0/APIMethods510.scala +++ b/obp-api/src/main/scala/code/api/v5_1_0/APIMethods510.scala @@ -69,8 +69,8 @@ trait APIMethods510 //import com.openbankproject.commons.model.enums.{TransactionRequestStatus, _} //import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} //import net.liftweb.common.{Box, Empty, Full} -//import net.liftweb.json -//import net.liftweb.json.{Extraction, compactRender, parse, prettyRender} +//import com.openbankproject.commons.util.json +//import org.json4s.{Extraction, compactRender, parse, prettyRender} //import net.liftweb.mapper.By //import net.liftweb.util.Helpers.tryo //import net.liftweb.util.{Helpers, Props, StringHelpers} diff --git a/obp-api/src/main/scala/code/api/v5_1_0/Http4s510.scala b/obp-api/src/main/scala/code/api/v5_1_0/Http4s510.scala index 320d63b23d..31d57505a8 100644 --- a/obp-api/src/main/scala/code/api/v5_1_0/Http4s510.scala +++ b/obp-api/src/main/scala/code/api/v5_1_0/Http4s510.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.Constant @@ -26,6 +27,7 @@ import code.api.berlin.group.v1_3.JSONFactory_BERLIN_GROUP_1_3.{ } import code.api.v2_1_0.{ConsumerRedirectUrlJSON, JSONFactory210} import code.api.v3_0_0.JSONFactory300 +import code.api.v3_0_0.{AggregateMetricJSON, JSONFactory300} import code.api.v3_0_0.JSONFactory300.createAggregateMetricJson import code.api.v3_1_0.{ConsentChallengeJsonV310, ConsentJsonV310, JSONFactory310, PostConsentBodyCommonJson, PostConsentEmailJsonV310, PostConsentEntitlementJsonV310, PostConsentImplicitJsonV310, PostConsentPhoneJsonV310, PostConsentViewJsonV310} import code.api.v4_0_0.{PutConsentStatusJsonV400, PutConsentUserJsonV400} @@ -63,9 +65,10 @@ import com.openbankproject.commons.model.{ import com.openbankproject.commons.model.enums.{AtmAttributeType, ConsentType, RegulatedEntityAttributeType, StrongCustomerAuthentication, TransactionRequestStatus, UserAttributeType} import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus, ScannedApiVersion} import net.liftweb.common.{Box, Empty, Full} -import net.liftweb.json -import net.liftweb.json.JsonAST.prettyRender -import net.liftweb.json.{Extraction, Formats, compactRender} +import com.openbankproject.commons.util.json +import com.openbankproject.commons.util.JsonAliases.prettyRender +import org.json4s.{Extraction, Formats} +import com.openbankproject.commons.util.JsonAliases.compactRender import net.liftweb.mapper.By import net.liftweb.util.Helpers.tryo import net.liftweb.util.{Helpers, Props, StringHelpers} @@ -227,7 +230,8 @@ object Http4s510 { (obpQueryParams, _) <- createQueriesByHttpParamsFuture(httpParams, Some(cc)) aggregateMetrics <- APIMetrics.apiMetrics.vend.getAllAggregateMetricsFuture(obpQueryParams, true) .map(x => unboxFullOrFail(x, Some(cc), GetAggregateMetricsError)) - } yield createAggregateMetricJson(aggregateMetrics) + } yield createAggregateMetricJson(aggregateMetrics).headOption + .getOrElse(AggregateMetricJSON(0, 0.0, 0.0, 0.0)) } } @@ -316,7 +320,7 @@ object Http4s510 { val bankId = BankId(bankIdStr) for { atmJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the ${classOf[AtmJsonV510]}", 400, Some(cc)) { - val atm = net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostAtmJsonV510] + val atm = com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostAtmJsonV510] atm.id.get // require id atm } @@ -356,7 +360,7 @@ object Http4s510 { for { (_, _) <- NewStyle.function.getAtm(bankId, atmId, Some(cc)) atmJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the ${classOf[AtmJsonV510]}", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[AtmJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[AtmJsonV510] } _ <- Helper.booleanToFuture(s"$InvalidJsonValue BANK_ID has to be the same in the URL and Body", 400, Some(cc)) { atmJson.bank_id == bankId.value @@ -598,7 +602,7 @@ object Http4s510 { for { user <- Future.successful(cc.user.openOrThrowException(AuthenticatedUserIsRequired)) tup <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - val js = net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[CreateConsumerRequestJsonV510] + val js = com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[CreateConsumerRequestJsonV510] val appType = if (js.app_type.equals("Confidential")) AppType.valueOf("Confidential") else AppType.valueOf("Public") (js, appType) } @@ -1043,7 +1047,7 @@ object Http4s510 { case req @ POST -> `prefixPath` / "regulated-entities" => EndpointHelpers.executeFutureCreated(req) { implicit val cc: code.api.util.CallContext = req.callContext - val parsedBody = net.liftweb.json.parse(cc.httpBody.getOrElse("")) + val parsedBody = com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")) val failMsg = s"$InvalidJsonFormat The Json body should be the $RegulatedEntityPostJsonV510 " for { postedData <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { @@ -1344,7 +1348,7 @@ object Http4s510 { for { (_, _) <- NewStyle.function.getAtm(bankId, atmId, Some(cc)) postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $AtmAttributeJsonV510 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[AtmAttributeJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[AtmAttributeJsonV510] } attrType <- NewStyle.function.tryons( s"$InvalidJsonFormat The `Type` field can only accept the following field: " + @@ -1444,7 +1448,7 @@ object Http4s510 { for { (_, _) <- NewStyle.function.getAtm(bankId, atmId, Some(cc)) postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $AtmAttributeJsonV510 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[AtmAttributeJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[AtmAttributeJsonV510] } attrType <- NewStyle.function.tryons( s"$InvalidJsonFormat The `Type` field can only accept the following field: " + @@ -1517,7 +1521,7 @@ object Http4s510 { val bankId = BankId(bankIdStr) for { putData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PostAgentJsonV510 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostAgentJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostAgentJsonV510] } (available, _) <- NewStyle.function.checkAgentNumberAvailable(bankId, putData.agent_number, Some(cc)) _ <- Helper.booleanToFuture(s"$AgentNumberAlreadyExists Current agent_number(${putData.agent_number}) and Current bank_id(${bankId.value})", cc = Some(cc)) { available } @@ -1552,7 +1556,7 @@ object Http4s510 { implicit val cc: code.api.util.CallContext = req.callContext for { postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PostAgentJsonV510 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PutAgentJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PutAgentJsonV510] } (_, _) <- NewStyle.function.getAgentByAgentId(agentId, Some(cc)) (links, _) <- NewStyle.function.getAgentAccountLinksByAgentId(agentId, Some(cc)) @@ -1648,7 +1652,7 @@ object Http4s510 { implicit val cc: code.api.util.CallContext = req.callContext for { postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $RegulatedEntityAttributeRequestJsonV510 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[RegulatedEntityAttributeRequestJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[RegulatedEntityAttributeRequestJsonV510] } attrType <- NewStyle.function.tryons( s"$InvalidJsonFormat The `Type` field can only accept the following field: " + @@ -1780,7 +1784,7 @@ object Http4s510 { implicit val cc: code.api.util.CallContext = req.callContext for { postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $RegulatedEntityAttributeRequestJsonV510 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[RegulatedEntityAttributeRequestJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[RegulatedEntityAttributeRequestJsonV510] } attrType <- NewStyle.function.tryons( s"$InvalidJsonFormat The `Type` field can only accept the following field: " + @@ -1854,7 +1858,7 @@ object Http4s510 { implicit val cc: code.api.util.CallContext = req.callContext for { putJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the ${classOf[code.api.v4_0_0.PostApiCollectionJson400].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[code.api.v4_0_0.PostApiCollectionJson400] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[code.api.v4_0_0.PostApiCollectionJson400] } (_, _) <- NewStyle.function.getApiCollectionById(apiCollectionId, Some(cc)) (apiCollection, _) <- NewStyle.function.updateApiCollection( @@ -2072,7 +2076,7 @@ object Http4s510 { for { (user, _) <- NewStyle.function.getUserByUserId(userId, Some(cc)) postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $UserAttributeJsonV510 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[UserAttributeJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[UserAttributeJsonV510] } attrType <- NewStyle.function.tryons( s"$InvalidJsonFormat The `Type` field can only accept the following field: " + @@ -2573,7 +2577,7 @@ object Http4s510 { for { (bank, _) <- NewStyle.function.getBank(bankId, Some(cc)) postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PostCustomerLegalNameJsonV510 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostCustomerLegalNameJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostCustomerLegalNameJsonV510] } (customer, _) <- NewStyle.function.getCustomersByCustomerLegalName(bank.bankId, postedData.legal_name, Some(cc)) } yield JSONFactory300.createCustomersJson(customer) @@ -2794,7 +2798,7 @@ object Http4s510 { case false => NewStyle.function.hasEntitlement("", user.userId, ApiRole.canUpdateConsumerRedirectUrl, Some(cc)) } postJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[ConsumerRedirectUrlJSON] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[ConsumerRedirectUrlJSON] } consumer <- NewStyle.function.getConsumerByConsumerId(consumerId, Some(cc)) _ <- Helper.booleanToFuture(UserNoPermissionUpdateConsumer, 400, Some(cc)) { @@ -2837,7 +2841,7 @@ object Http4s510 { implicit val cc: code.api.util.CallContext = req.callContext for { postJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[ConsumerLogoUrlJson] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[ConsumerLogoUrlJson] } consumer <- NewStyle.function.getConsumerByConsumerId(consumerId, Some(cc)) updatedConsumer <- NewStyle.function.updateConsumer( @@ -2874,7 +2878,7 @@ object Http4s510 { implicit val cc: code.api.util.CallContext = req.callContext for { postJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[ConsumerCertificateJson] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[ConsumerCertificateJson] } consumer <- NewStyle.function.getConsumerByConsumerId(consumerId, Some(cc)) updatedConsumer <- NewStyle.function.updateConsumer( @@ -2911,7 +2915,7 @@ object Http4s510 { implicit val cc: code.api.util.CallContext = req.callContext for { postJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[ConsumerNameJson] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[ConsumerNameJson] } consumer <- NewStyle.function.getConsumerByConsumerId(consumerId, Some(cc)) updatedConsumer <- NewStyle.function.updateConsumer( @@ -2979,7 +2983,7 @@ object Http4s510 { for { user <- Future.successful(cc.user.openOrThrowException(AuthenticatedUserIsRequired)) tup <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - val js = net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[CreateConsumerRequestJsonV510] + val js = com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[CreateConsumerRequestJsonV510] val appType = if (js.app_type.equals("Confidential")) AppType.valueOf("Confidential") else AppType.valueOf("Public") (js, appType) } @@ -3025,14 +3029,14 @@ object Http4s510 { implicit val cc: code.api.util.CallContext = req.callContext for { postedJwt <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[ConsumerJwtPostJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[ConsumerJwtPostJsonV510] } pem = APIUtil.`getPSD2-CERT`(cc.requestHeaders) _ <- Helper.booleanToFuture(PostJsonIsNotSigned, 400, Some(cc)) { JwtUtil.verifyJwt(postedJwt.jwt, pem.getOrElse("")) } postedJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(JwtUtil.getSignedPayloadAsJson(postedJwt.jwt).getOrElse("{}")).extract[ConsumerPostJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(JwtUtil.getSignedPayloadAsJson(postedJwt.jwt).getOrElse("{}")).extract[ConsumerPostJsonV510] } certificateInfo: CertificateInfoJsonV510 <- Future(X509.getCertificateInfo(pem)) .map(unboxFullOrFail(_, Some(cc), X509GeneralError)) @@ -3165,7 +3169,7 @@ object Http4s510 { for { user <- Future.successful(cc.user.openOrThrowException(AuthenticatedUserIsRequired)) postJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PostAccountAccessJsonV510 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostAccountAccessJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostAccountAccessJsonV510] } targetViewId = ViewId(postJson.view_id) msg = getUserLacksGrantPermissionErrorMessage(viewId, targetViewId) @@ -3238,7 +3242,7 @@ object Http4s510 { for { user <- Future.successful(cc.user.openOrThrowException(AuthenticatedUserIsRequired)) postJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the ${classOf[code.api.v4_0_0.PostAccountAccessJsonV400].getSimpleName} ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostAccountAccessJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostAccountAccessJsonV510] } targetViewId = ViewId(postJson.view_id) msg = getUserLacksRevokePermissionErrorMessage(viewId, targetViewId) @@ -3285,7 +3289,7 @@ object Http4s510 { for { user <- Future.successful(cc.user.openOrThrowException(AuthenticatedUserIsRequired)) postJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PostCreateUserAccountAccessJsonV510 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostCreateUserAccountAccessJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostCreateUserAccountAccessJsonV510] } _ <- Helper.booleanToFuture(s"$InvalidUserProvider The user.provider must be start with 'dauth.'", cc = Some(cc)) { postJson.provider.startsWith("dauth.") @@ -3374,7 +3378,7 @@ object Http4s510 { for { user <- Future.successful(cc.user.openOrThrowException(AuthenticatedUserIsRequired)) postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PostTransactionRequestStatusJsonV510", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostTransactionRequestStatusJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostTransactionRequestStatusJsonV510] } (existing, _) <- NewStyle.function.getTransactionRequestImpl(requestId, Some(cc)) _ <- NewStyle.function.hasAtLeastOneEntitlement(existing.from.bank_id, user.userId, @@ -3506,7 +3510,7 @@ object Http4s510 { val bankId = BankId(bankIdStr); val accountId = AccountId(accountIdStr); val viewId = ViewId(viewIdStr); val counterpartyId = CounterpartyId(counterpartyIdStr) for { postLimit <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the ${classOf[PostCounterpartyLimitV510]}", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostCounterpartyLimitV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostCounterpartyLimitV510] } _ <- Helper.booleanToFuture(s"$InvalidISOCurrencyCode Current input is: '${postLimit.currency}'", cc = Some(cc)) { isValidCurrencyISOCode(postLimit.currency) @@ -3564,7 +3568,7 @@ object Http4s510 { val bankId = BankId(bankIdStr); val accountId = AccountId(accountIdStr); val viewId = ViewId(viewIdStr); val counterpartyId = CounterpartyId(counterpartyIdStr) for { postLimit <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the ${classOf[PostCounterpartyLimitV510]}", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostCounterpartyLimitV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostCounterpartyLimitV510] } _ <- Helper.booleanToFuture(s"$InvalidISOCurrencyCode Current input is: '${postLimit.currency}'", cc = Some(cc)) { isValidCurrencyISOCode(postLimit.currency) @@ -3734,7 +3738,7 @@ object Http4s510 { val bankId = BankId(bankIdStr); val accountId = AccountId(accountIdStr); val viewId = ViewId(viewIdStr) for { createJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the ${classOf[com.openbankproject.commons.model.CreateViewJson]}", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[CreateCustomViewJson] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[CreateCustomViewJson] } _ <- Helper.booleanToFuture(InvalidCustomViewFormat + s"Current view_name (${createJson.name})", cc = Some(cc)) { isValidCustomViewName(createJson.name) @@ -3785,7 +3789,7 @@ object Http4s510 { val bankId = BankId(bankIdStr); val accountId = AccountId(accountIdStr); val viewId = ViewId(viewIdStr); val targetViewId = ViewId(targetViewIdStr) for { updateJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the ${classOf[UpdateCustomViewJson]}", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[UpdateCustomViewJson] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[UpdateCustomViewJson] } _ <- Helper.booleanToFuture(InvalidCustomViewFormat + s"Current TARGET_VIEW_ID (${targetViewId})", cc = Some(cc)) { isValidCustomViewId(targetViewId.value) @@ -3912,7 +3916,7 @@ object Http4s510 { val bankId = BankId(bankIdStr); val accountId = AccountId(accountIdStr) for { postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $BankAccountBalanceRequestJsonV510 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[BankAccountBalanceRequestJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[BankAccountBalanceRequestJsonV510] } balanceAmount <- NewStyle.function.tryons(s"$InvalidNumber Current balance_amount is ${postedData.balance_amount}", 400, Some(cc)) { BigDecimal(postedData.balance_amount) @@ -3976,7 +3980,7 @@ object Http4s510 { val bankId = BankId(bankIdStr); val accountId = AccountId(accountIdStr); val balanceId = BalanceId(balanceIdStr) for { postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the BankAccountBalanceRequestJsonV510 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[BankAccountBalanceRequestJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[BankAccountBalanceRequestJsonV510] } balanceAmount <- NewStyle.function.tryons(s"$InvalidNumber Current balance_amount is ${postedData.balance_amount}", 400, Some(cc)) { BigDecimal(postedData.balance_amount) @@ -4044,7 +4048,7 @@ object Http4s510 { val viewId = ViewId(viewIdStr) for { createJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $CreateViewPermissionJson ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[CreateViewPermissionJson] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[CreateViewPermissionJson] } _ <- Helper.booleanToFuture(s"$InvalidViewPermissionName The current value is ${createJson.permission_name}", 400, Some(cc)) { ALL_VIEW_PERMISSION_NAMES.exists(_ == createJson.permission_name) @@ -4100,7 +4104,7 @@ object Http4s510 { implicit val cc: code.api.util.CallContext = req.callContext for { consentJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PutConsentStatusJsonV400 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PutConsentStatusJsonV400] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PutConsentStatusJsonV400] } _ <- Future(Consents.consentProvider.vend.getConsentByConsentId(consentId)) .map(unboxFullOrFail(_, Some(cc), s"$ConsentNotFound ($consentId)", 404)) @@ -4146,7 +4150,7 @@ object Http4s510 { consent <- Future(Consents.consentProvider.vend.getConsentByConsentId(consentId)) .map(unboxFullOrFail(_, Some(cc), s"$ConsentNotFound ($consentId)", 404)) consentJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PutConsentPayloadJsonV510 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PutConsentPayloadJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PutConsentPayloadJsonV510] } _ <- Helper.booleanToFuture(s"$InvalidJsonFormat The Json body should be the $PutConsentPayloadJsonV510 ", 400, Some(cc)) { !(consentJson.access.accounts.isEmpty && consentJson.access.balances.isEmpty && consentJson.access.transactions.isEmpty) @@ -4202,7 +4206,7 @@ object Http4s510 { consent <- Future(Consents.consentProvider.vend.getConsentByConsentId(consentId)) .map(unboxFullOrFail(_, Some(cc), s"$ConsentNotFound ($consentId)", 404)) consentJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PutConsentUserJsonV400 ", 400, Some(cc)) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PutConsentUserJsonV400] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PutConsentUserJsonV400] } user <- Users.users.vend.getUserByUserIdFuture(consentJson.user_id) .map(x => unboxFullOrFail(x, Some(cc), s"$UserNotFoundByUserId Current UserId(${consentJson.user_id})")) @@ -4677,7 +4681,7 @@ object Http4s510 { StrongCustomerAuthentication.IMPLICIT.toString()).contains(scaMethod) } consentJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PostConsentBodyCommonJson ", 400, callContextOpt) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostConsentBodyCommonJson] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostConsentBodyCommonJson] } maxTimeToLive = APIUtil.getPropsAsIntValue(nameOfProperty = "consents.max_time_to_live", defaultValue = Constant.DEFAULT_CONSENT_TTL) _ <- Helper.booleanToFuture(s"$ConsentMaxTTL ($maxTimeToLive)", cc = callContextOpt) { @@ -4737,7 +4741,7 @@ object Http4s510 { case v if v == StrongCustomerAuthentication.EMAIL.toString => for { postEmail <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PostConsentEmailJsonV310", 400, callContextOpt) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostConsentEmailJsonV310] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostConsentEmailJsonV310] } _ <- NewStyle.function.sendCustomerNotification( StrongCustomerAuthentication.EMAIL, postEmail.email, @@ -4746,7 +4750,7 @@ object Http4s510 { case v if v == StrongCustomerAuthentication.SMS.toString => for { postPhone <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PostConsentPhoneJsonV310", 400, callContextOpt) { - net.liftweb.json.parse(cc.httpBody.getOrElse("")).extract[PostConsentPhoneJsonV310] + com.openbankproject.commons.util.JsonAliases.parse(cc.httpBody.getOrElse("")).extract[PostConsentPhoneJsonV310] } _ <- NewStyle.function.sendCustomerNotification( StrongCustomerAuthentication.SMS, postPhone.phone_number, None, challengeText, callContextOpt) @@ -4844,7 +4848,7 @@ object Http4s510 { EndpointHelpers.executeFutureCreated(req) { implicit val cc: code.api.util.CallContext = req.callContext val rawBody = cc.httpBody.getOrElse("") - val parsedBody = net.liftweb.json.parse(rawBody) + val parsedBody = com.openbankproject.commons.util.JsonAliases.parse(rawBody) for { (_, callContextOpt) <- APIUtil.applicationAccess(cc) _ <- APIUtil.passesPsd2Aisp(callContextOpt) @@ -4879,7 +4883,7 @@ object Http4s510 { postConsentRequestJsonV510.from_account.branch_routing.scheme, postConsentRequestJsonV510.from_account.branch_routing.address) ) - consentTypeJ = net.liftweb.json.parse(s"""{"consent_type": "${ConsentType.VRP}"}""") + consentTypeJ = com.openbankproject.commons.util.JsonAliases.parse(s"""{"consent_type": "${ConsentType.VRP}"}""") (_, _) <- NewStyle.function.getBankAccountByRoutings(fromBankAccountRoutings, callContextOpt) postConsentRequestJsonTweaked = postConsentRequestJsonV510.copy( from_account = fromAccountTweaked, to_account = toAccountTweaked) diff --git a/obp-api/src/main/scala/code/api/v5_1_0/JSONFactory5.1.0.scala b/obp-api/src/main/scala/code/api/v5_1_0/JSONFactory5.1.0.scala index 09674bb233..f9502aa8b8 100644 --- a/obp-api/src/main/scala/code/api/v5_1_0/JSONFactory5.1.0.scala +++ b/obp-api/src/main/scala/code/api/v5_1_0/JSONFactory5.1.0.scala @@ -60,8 +60,9 @@ import code.views.system.{AccountAccess, ViewDefinition, ViewPermission} import com.openbankproject.commons.model._ import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.{Box, Full} -import net.liftweb.json -import net.liftweb.json.{Meta, _} +import com.openbankproject.commons.util.json +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import java.text.SimpleDateFormat import java.util.Date diff --git a/obp-api/src/main/scala/code/api/v6_0_0/APIMethods600.scala b/obp-api/src/main/scala/code/api/v6_0_0/APIMethods600.scala index 7582587f38..2240f9bc1f 100644 --- a/obp-api/src/main/scala/code/api/v6_0_0/APIMethods600.scala +++ b/obp-api/src/main/scala/code/api/v6_0_0/APIMethods600.scala @@ -32,7 +32,7 @@ trait APIMethods600 //import code.api.util.JsonSchemaGenerator //import code.api.util.NewStyle.HttpCode //import code.api.util.{APIUtil, ApiVersionUtils, CallContext, DiagnosticDynamicEntityCheck, ErrorMessages, NewStyle, OBPLimit, OBPOffset, OBPSortBy, RateLimitingUtil} -//import net.liftweb.json +//import com.openbankproject.commons.util.json //import code.api.util.NewStyle.function.extractQueryParams //import code.api.util.newstyle.ViewNewStyle //import code.api.v3_0_0.JSONFactory300 @@ -83,9 +83,9 @@ trait APIMethods600 //import net.liftweb.common.{Box, Empty, Failure, Full} //import net.liftweb.util.Helpers.tryo //import org.apache.commons.lang3.StringUtils -//import net.liftweb.json.{Extraction, JsonParser} -//import net.liftweb.json.JsonAST.{JArray, JField, JNothing, JObject, JString, JValue} -//import net.liftweb.json.JsonDSL._ +//import org.json4s.{Extraction, JsonParser} +//import org.json4s.JsonAST.{JArray, JField, JNothing, JObject, JString, JValue} +//import org.json4s.JsonDSL._ //import net.liftweb.mapper.{By, Descending, MaxRows, NullRef, OrderBy} //import code.api.util.ExampleValue //import code.api.util.ExampleValue.dynamicEntityResponseBodyExample @@ -6303,7 +6303,7 @@ trait APIMethods600 // user_id = "user-456", // bank_id = None, // has_personal_entity = true, -// schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject], +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[org.json4s.JsonAST.JObject], // record_count = 42 // ) // ) @@ -6368,7 +6368,7 @@ trait APIMethods600 // user_id = "user-456", // bank_id = Some("gh.29.uk"), // has_personal_entity = true, -// schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject], +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[org.json4s.JsonAST.JObject], // record_count = 42 // ) // ) @@ -6520,7 +6520,7 @@ trait APIMethods600 // has_public_access = Some(false), // has_community_access = Some(false), // personal_requires_role = Some(false), -// schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] // ), // DynamicEntityDefinitionJsonV600( // dynamic_entity_id = "abc-123-def", @@ -6531,7 +6531,7 @@ trait APIMethods600 // has_public_access = false, // has_community_access = false, // personal_requires_role = false, -// schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] // ), // List( // $AuthenticatedUserIsRequired, @@ -6615,7 +6615,7 @@ trait APIMethods600 // has_public_access = Some(false), // has_community_access = Some(false), // personal_requires_role = Some(false), -// schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] // ), // DynamicEntityDefinitionJsonV600( // dynamic_entity_id = "abc-123-def", @@ -6626,7 +6626,7 @@ trait APIMethods600 // has_public_access = false, // has_community_access = false, // personal_requires_role = false, -// schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] // ), // List( // $BankNotFound, @@ -6697,7 +6697,7 @@ trait APIMethods600 // entity_name = "customer_preferences", // has_personal_entity = Some(true), // has_public_access = Some(false), -// schema = net.liftweb.json.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] // ), // DynamicEntityDefinitionJsonV600( // dynamic_entity_id = "abc-123-def", @@ -6706,7 +6706,7 @@ trait APIMethods600 // bank_id = None, // has_personal_entity = true, // has_public_access = false, -// schema = net.liftweb.json.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] // ), // List( // $AuthenticatedUserIsRequired, @@ -6776,7 +6776,7 @@ trait APIMethods600 // entity_name = "customer_preferences", // has_personal_entity = Some(true), // has_public_access = Some(false), -// schema = net.liftweb.json.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] // ), // DynamicEntityDefinitionJsonV600( // dynamic_entity_id = "abc-123-def", @@ -6785,7 +6785,7 @@ trait APIMethods600 // bank_id = Some("gh.29.uk"), // has_personal_entity = true, // has_public_access = false, -// schema = net.liftweb.json.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] // ), // List( // $BankNotFound, @@ -6856,7 +6856,7 @@ trait APIMethods600 // entity_name = "customer_preferences", // has_personal_entity = Some(true), // has_public_access = Some(false), -// schema = net.liftweb.json.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] // ), // DynamicEntityDefinitionJsonV600( // dynamic_entity_id = "abc-123-def", @@ -6865,7 +6865,7 @@ trait APIMethods600 // bank_id = None, // has_personal_entity = true, // has_public_access = false, -// schema = net.liftweb.json.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] // ), // List( // $AuthenticatedUserIsRequired, @@ -8869,7 +8869,7 @@ trait APIMethods600 // user_id = "user-456", // bank_id = None, // has_personal_entity = true, -// schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject], +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[org.json4s.JsonAST.JObject], // _links = Some(DynamicEntityLinksJsonV600( // related = List( // RelatedLinkJsonV600("personal-list", s"/obp/${ApiVersion.`dynamic-entity`}/my/customer_preferences", "GET"), @@ -8933,7 +8933,7 @@ trait APIMethods600 // user_id = "user-456", // bank_id = None, // has_personal_entity = true, -// schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject], +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[org.json4s.JsonAST.JObject], // _links = Some(DynamicEntityLinksJsonV600( // related = List( // RelatedLinkJsonV600("personal-list", s"/obp/${ApiVersion.`dynamic-entity`}/my/customer_preferences", "GET"), @@ -9747,11 +9747,11 @@ trait APIMethods600 // } // tagFilter = req.params.get("tag").flatMap(_.headOption).map(_.trim).filter(_.nonEmpty) // resultJson <- { -// implicit val formats: net.liftweb.json.Formats = net.liftweb.json.DefaultFormats +// implicit val formats: org.json4s.Formats = org.json4s.DefaultFormats // val cacheKey = s"all:${tagFilter.getOrElse("")}" // val cacheTTL = APIUtil.getPropsAsIntValue("getAllApiProductsV600.cache.ttl.seconds", 5) // val hit = Caching.getApiProductsCache(cacheKey, cacheTTL) -// .flatMap(s => try Some(net.liftweb.json.parse(s).extract[ApiProductsJsonV600]) catch { case _: Throwable => None }) +// .flatMap(s => try Some(com.openbankproject.commons.util.JsonAliases.parse(s).extract[ApiProductsJsonV600]) catch { case _: Throwable => None }) // hit match { // case Some(cached) => Future.successful(cached) // case None => @@ -9763,7 +9763,7 @@ trait APIMethods600 // apiProducts = perBank.flatten // } yield { // val result = JSONFactory600.createApiProductsJsonV600(apiProducts) -// Caching.setApiProductsCache(cacheKey, net.liftweb.json.compactRender(Extraction.decompose(result)), cacheTTL) +// Caching.setApiProductsCache(cacheKey, com.openbankproject.commons.util.JsonAliases.compactRender(Extraction.decompose(result)), cacheTTL) // result // } // } @@ -9851,11 +9851,11 @@ trait APIMethods600 // // Short TTL is the freshness guarantee; an admin tag change becomes visible within the TTL. // // Redis-backed with versioned namespace prefix so the cache shows up on /system/cache/info // // and can be invalidated by bumping the namespace version. -// implicit val formats: net.liftweb.json.Formats = net.liftweb.json.DefaultFormats +// implicit val formats: org.json4s.Formats = org.json4s.DefaultFormats // val cacheKey = APIMethods600.productsCacheKey(bankId.value, params) // val cacheTTL = APIUtil.getPropsAsIntValue("getProductsV600.cache.ttl.seconds", 5) // val hit = Caching.getFinancialProductsCache(cacheKey, cacheTTL) -// .flatMap(s => try Some(net.liftweb.json.parse(s).extract[ProductsJsonV600]) catch { case _: Throwable => None }) +// .flatMap(s => try Some(com.openbankproject.commons.util.JsonAliases.parse(s).extract[ProductsJsonV600]) catch { case _: Throwable => None }) // hit match { // case Some(cached) => Future.successful(cached) // case None => @@ -9864,7 +9864,7 @@ trait APIMethods600 // } yield { // val tagsByCode = ProductTagsProvider.getTagsByProductCodes(bankId, products.map(_.code.value)) // val result = JSONFactory600.createProductsJsonV600(products, tagsByCode) -// Caching.setFinancialProductsCache(cacheKey, net.liftweb.json.compactRender(Extraction.decompose(result)), cacheTTL) +// Caching.setFinancialProductsCache(cacheKey, com.openbankproject.commons.util.JsonAliases.compactRender(Extraction.decompose(result)), cacheTTL) // result // } // } @@ -9903,11 +9903,11 @@ trait APIMethods600 // } // params = req.params.toList.map(kv => GetProductsParam(kv._1, kv._2)) // resultJson <- { -// implicit val formats: net.liftweb.json.Formats = net.liftweb.json.DefaultFormats +// implicit val formats: org.json4s.Formats = org.json4s.DefaultFormats // val cacheKey = APIMethods600.productsCacheKey("__all__", params) // val cacheTTL = APIUtil.getPropsAsIntValue("getAllProductsV600.cache.ttl.seconds", 60) // val hit = Caching.getFinancialProductsCache(cacheKey, cacheTTL) -// .flatMap(s => try Some(net.liftweb.json.parse(s).extract[ProductsJsonV600]) catch { case _: Throwable => None }) +// .flatMap(s => try Some(com.openbankproject.commons.util.JsonAliases.parse(s).extract[ProductsJsonV600]) catch { case _: Throwable => None }) // hit match { // case Some(cached) => Future.successful(cached) // case None => @@ -9926,7 +9926,7 @@ trait APIMethods600 // }.toMap // val tagsByCode = tagsByBank.values.foldLeft(Map.empty[String, List[String]])(_ ++ _) // val result = JSONFactory600.createProductsJsonV600(products, tagsByCode) -// Caching.setFinancialProductsCache(cacheKey, net.liftweb.json.compactRender(Extraction.decompose(result)), cacheTTL) +// Caching.setFinancialProductsCache(cacheKey, com.openbankproject.commons.util.JsonAliases.compactRender(Extraction.decompose(result)), cacheTTL) // result // } // } @@ -10409,7 +10409,7 @@ trait APIMethods600 // user_id = "user-456", // bank_id = None, // has_personal_entity = false, -// schema = net.liftweb.json.parse("""{"description": "Backup entity", "required": ["name"], "properties": {"name": {"type": "string", "example": "test"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "Backup entity", "required": ["name"], "properties": {"name": {"type": "string", "example": "test"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] // ), // List( // $AuthenticatedUserIsRequired, @@ -10454,7 +10454,7 @@ trait APIMethods600 // user_id = "user-456", // bank_id = Some("gh.29.uk"), // has_personal_entity = false, -// schema = net.liftweb.json.parse("""{"description": "Backup entity", "required": ["name"], "properties": {"name": {"type": "string", "example": "test"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] +// schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "Backup entity", "required": ["name"], "properties": {"name": {"type": "string", "example": "test"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] // ), // List( // $AuthenticatedUserIsRequired, @@ -11106,7 +11106,7 @@ trait APIMethods600 // message_type = postJson.message_type.getOrElse(""), // payload = postJson.payload // ) -// val messageJsonString = net.liftweb.json.compactRender(net.liftweb.json.Extraction.decompose(messageEnvelope)) +// val messageJsonString = com.openbankproject.commons.util.JsonAliases.compactRender(org.json4s.Extraction.decompose(messageEnvelope)) // val count = RedisMessaging.publishMessage(channelName, messageJsonString) // (messageId, timestamp, count) // } @@ -11172,7 +11172,7 @@ trait APIMethods600 // } // } yield { // val parsedMessages: List[SignalMessageJsonV600] = rawMessages.flatMap { msgStr => -// scala.util.Try(net.liftweb.json.parse(msgStr).extract[SignalMessageJsonV600]).toOption +// scala.util.Try(com.openbankproject.commons.util.JsonAliases.parse(msgStr).extract[SignalMessageJsonV600]).toOption // } // // Privacy filter: only show broadcasts (to_user_id is None) and messages to/from this user // val filteredMessages = parsedMessages.filter { msg => @@ -11233,7 +11233,7 @@ trait APIMethods600 // val (messages, _) = RedisMessaging.fetchMessages(name, 0, count.toInt) // val hasBroadcast = messages.exists { msgStr => // scala.util.Try { -// val msg = net.liftweb.json.parse(msgStr).extract[SignalMessageJsonV600] +// val msg = com.openbankproject.commons.util.JsonAliases.parse(msgStr).extract[SignalMessageJsonV600] // msg.to_user_id.isEmpty // }.getOrElse(false) // } @@ -12187,9 +12187,9 @@ trait APIMethods600 // json.extract[CreateMandateProvisionJsonV600] // } // sigReqJson <- Future { -// import net.liftweb.json._ +// import org.json4s._ // implicit val formats: Formats = DefaultFormats -// net.liftweb.json.Serialization.write(createJson.signatory_requirements) +// org.json4s.native.Serialization.write(createJson.signatory_requirements) // } // (provision, callContext) <- Connector.connector.vend.createMandateProvision( // mandateId, @@ -12376,9 +12376,9 @@ trait APIMethods600 // json.extract[UpdateMandateProvisionJsonV600] // } // sigReqJson <- Future { -// import net.liftweb.json._ +// import org.json4s._ // implicit val formats: Formats = DefaultFormats -// net.liftweb.json.Serialization.write(updateJson.signatory_requirements) +// org.json4s.native.Serialization.write(updateJson.signatory_requirements) // } // (provision, callContext) <- Connector.connector.vend.updateMandateProvision( // provisionId, diff --git a/obp-api/src/main/scala/code/api/v6_0_0/Http4s600.scala b/obp-api/src/main/scala/code/api/v6_0_0/Http4s600.scala index e6b1788eca..c741e3b57c 100644 --- a/obp-api/src/main/scala/code/api/v6_0_0/Http4s600.scala +++ b/obp-api/src/main/scala/code/api/v6_0_0/Http4s600.scala @@ -1,5 +1,6 @@ package code.api.v6_0_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.Constant._ @@ -91,8 +92,8 @@ import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model.{BankId, BankIdAccountId, CustomerId, ListResult, ViewId} import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus, ScannedApiVersion} import net.liftweb.common.Full -import net.liftweb.json.{Extraction, Formats} -import net.liftweb.json.JsonAST.prettyRender +import org.json4s.{Extraction, Formats} +import com.openbankproject.commons.util.JsonAliases.prettyRender import org.http4s.{Header, HttpRoutes, Request, Response, Uri} import org.http4s.dsl.io._ import org.typelevel.ci.CIString @@ -420,7 +421,7 @@ object Http4s600 { postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[PostCustomerNumberJsonV310].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostCustomerNumberJsonV310] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostCustomerNumberJsonV310] } (customer, callContext) <- NewStyle.function.getCustomerByCustomerNumber( postedData.customer_number, bank.bankId, Some(cc)) @@ -441,7 +442,7 @@ object Http4s600 { postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[PostCustomerLegalNameJsonV510].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostCustomerLegalNameJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostCustomerLegalNameJsonV510] } (customers, _) <- NewStyle.function.getCustomersByCustomerLegalName( bank.bankId, postedData.legal_name, Some(cc)) @@ -462,9 +463,9 @@ object Http4s600 { Full(result) <- NewStyle.function.createOrUpdateDynamicEntity(dynamicEntity, Some(cc)) .recoverWith { case e: Throwable if !Option(e.getMessage).exists(_.startsWith("OBP-")) => - val json = net.liftweb.json.Serialization.write( + val json = org.json4s.native.Serialization.write( code.api.APIFailureNewStyle(s"$InvalidJsonFormat ${e.getMessage}", 400, Some(cc).map(_.toLight)) - )(net.liftweb.json.DefaultFormats) + )(org.json4s.DefaultFormats) Future.failed(new Exception(json)) } crudRoles = List( @@ -483,9 +484,9 @@ object Http4s600 { Full(result) <- NewStyle.function.createOrUpdateDynamicEntity(dynamicEntity, Some(cc)) .recoverWith { case e: Throwable if !Option(e.getMessage).exists(_.startsWith("OBP-")) => - val json = net.liftweb.json.Serialization.write( + val json = org.json4s.native.Serialization.write( code.api.APIFailureNewStyle(s"$InvalidJsonFormat ${e.getMessage}", 400, Some(cc).map(_.toLight)) - )(net.liftweb.json.DefaultFormats) + )(org.json4s.DefaultFormats) Future.failed(new Exception(json)) } } yield { @@ -500,7 +501,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { request <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[CreateDynamicEntityRequestJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[CreateDynamicEntityRequestJsonV600] } _ <- validateEntityNameV600(request.entity_name, cc) dynamicEntity <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { @@ -520,7 +521,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { request <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[CreateDynamicEntityRequestJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[CreateDynamicEntityRequestJsonV600] } _ <- validateEntityNameV600(request.entity_name, cc) dynamicEntity <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { @@ -539,7 +540,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { request <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[UpdateDynamicEntityRequestJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[UpdateDynamicEntityRequestJsonV600] } _ <- validateEntityNameV600(request.entity_name, cc) internalJson = JSONFactory600.convertV600UpdateRequestToInternal(request) @@ -557,7 +558,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { request <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[UpdateDynamicEntityRequestJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[UpdateDynamicEntityRequestJsonV600] } _ <- validateEntityNameV600(request.entity_name, cc) internalJson = JSONFactory600.convertV600UpdateRequestToInternal(request) @@ -581,7 +582,7 @@ object Http4s600 { existingEntity.isDefined } request <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[UpdateDynamicEntityRequestJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[UpdateDynamicEntityRequestJsonV600] } _ <- validateEntityNameV600(request.entity_name, cc) internalJson = JSONFactory600.convertV600UpdateRequestToInternal(request) @@ -606,7 +607,7 @@ object Http4s600 { } updateJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the UpdateViewJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[UpdateViewJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[UpdateViewJsonV600] } _ <- Helper.booleanToFuture(SystemViewCannotBePublicError, failCode = 400, cc = Some(cc)) { updateJson.is_public == false @@ -832,7 +833,7 @@ object Http4s600 { val failMsg = s"$InvalidJsonFormat The Json body should be the PostBankJson600" for { postJson <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostBankJson600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostBankJson600] } checkShortStringValue = APIUtil.checkOptionalShortString(postJson.bank_id) _ <- Helper.booleanToFuture(s"$InvalidJsonFormat BANK_ID: $checkShortStringValue", cc = Some(cc)) { @@ -882,7 +883,7 @@ object Http4s600 { val failMsg = s"$InvalidJsonFormat The Json body should be the PostCustomerJsonV600 " for { postedData <- NewStyle.function.tryons(failMsg, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostCustomerJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostCustomerJsonV600] } _ <- Helper.booleanToFuture(InvalidJsonContent, 400, Some(cc)) { postedData.dependants.getOrElse(0) == postedData.dob_of_dependants.getOrElse(Nil).length @@ -937,7 +938,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { postedData <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[CreateUserJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[CreateUserJsonV600] } _ <- Helper.booleanToFuture(InvalidStrongPasswordFormat, 400, Some(cc)) { APIUtil.fullPasswordValidation(postedData.password) @@ -1012,7 +1013,7 @@ object Http4s600 { postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[code.api.v6_0_0.JSONFactory600.PostResetPasswordUrlJsonV600]}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[code.api.v6_0_0.JSONFactory600.PostResetPasswordUrlJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[code.api.v6_0_0.JSONFactory600.PostResetPasswordUrlJsonV600] } authUserBox <- Future { AuthUser.find(net.liftweb.mapper.By(AuthUser.username, postedData.username)) @@ -1669,7 +1670,7 @@ object Http4s600 { existing <- Future(MappedWebUiPropsProvider.getByName(nameLower)) resourceExists = existing.isDefined valueJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should contain a value field", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[code.webuiprops.WebUiPropsPutJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[code.webuiprops.WebUiPropsPutJsonV600] } saved <- Future(MappedWebUiPropsProvider.createOrUpdate(WebUiPropsCommons(nameLower, valueJson.value))) } yield (saved.openOrThrowException("Could not save WebUiProps"), resourceExists) @@ -1719,7 +1720,7 @@ object Http4s600 { val accountId = com.openbankproject.commons.model.AccountId(accountIdStr) for { createViewJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the CreateViewJson", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[com.openbankproject.commons.model.CreateViewJson] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[com.openbankproject.commons.model.CreateViewJson] } _ <- Helper.booleanToFuture(InvalidCustomViewFormat + s"Current view_name (${createViewJson.name})", cc = Some(cc)) { APIUtil.isValidCustomViewName(createViewJson.name) @@ -1757,7 +1758,7 @@ object Http4s600 { bank.bankId.value, user.userId, updateProductTagsEntitlements, Some(cc)) (_, _) <- NewStyle.function.getProduct(bank.bankId, productCode, Some(cc)) body <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the ProductTagsJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[ProductTagsJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[ProductTagsJsonV600] } updatedTags <- NewStyle.function.tryons(UpdateProductError, 400, Some(cc)) { code.products.ProductTagsProvider.setTags(bank.bankId, productCode, body.tags) @@ -1797,7 +1798,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the VerifyOidcClientRequestJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[VerifyOidcClientRequestJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[VerifyOidcClientRequestJsonV600] } consumerBox <- Future(code.consumer.Consumers.consumers.vend.getConsumerByConsumerKey(postedData.client_id)) } yield { @@ -1840,7 +1841,7 @@ object Http4s600 { for { (user, _) <- NewStyle.function.getUserByUserId(userIdStr, Some(cc)) postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the UserAttributeJsonV510", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[UserAttributeJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[UserAttributeJsonV510] } userAttributeType <- NewStyle.function.tryons(personalDataTypeErrorMsg, 400, Some(cc)) { UserAttributeType.withName(postedData.`type`) @@ -1859,7 +1860,7 @@ object Http4s600 { for { (user, callContext) <- NewStyle.function.getUserByUserId(userIdStr, Some(cc)) postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the UserAttributeJsonV510", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[UserAttributeJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[UserAttributeJsonV510] } userAttributeType <- NewStyle.function.tryons(personalDataTypeErrorMsg, 400, Some(cc)) { UserAttributeType.withName(postedData.`type`) @@ -1896,7 +1897,7 @@ object Http4s600 { val user = cc.user.openOrThrowException(AuthenticatedUserIsRequired) for { postJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the PostGroupMembershipJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JSONFactory600.PostGroupMembershipJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JSONFactory600.PostGroupMembershipJsonV600] } _ <- NewStyle.function.findByUserId(userIdStr, Some(cc)) group <- Future(code.group.GroupTrait.group.vend.getGroup(postJson.group_id)) @@ -2021,7 +2022,7 @@ object Http4s600 { val user = cc.user.openOrThrowException(AuthenticatedUserIsRequired) for { joiningKey <- Future( - (net.liftweb.json.parse(rawBody) \ "joining_key").extractOpt[String].getOrElse("")) + (com.openbankproject.commons.util.JsonAliases.parse(rawBody) \ "joining_key").extractOpt[String].getOrElse("")) room <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoomByJoiningKey(joiningKey)) .map(unboxFullOrFail(_, Some(cc), InvalidJoiningKey, 404)) _ <- Helper.booleanToFuture(ChatRoomIsArchived, cc = Some(cc))(!room.isArchived) @@ -2051,7 +2052,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the CounterpartyAttributeRequestJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[CounterpartyAttributeRequestJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[CounterpartyAttributeRequestJsonV600] } counterpartyAttributeType <- NewStyle.function.tryons(counterpartyAttributeTypeErrorMsg, 400, Some(cc)) { com.openbankproject.commons.model.enums.CounterpartyAttributeType.withName(postedData.attribute_type) @@ -2104,7 +2105,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the CounterpartyAttributeRequestJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[CounterpartyAttributeRequestJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[CounterpartyAttributeRequestJsonV600] } counterpartyAttributeType <- NewStyle.function.tryons(counterpartyAttributeTypeErrorMsg, 400, Some(cc)) { com.openbankproject.commons.model.enums.CounterpartyAttributeType.withName(postedData.attribute_type) @@ -2211,7 +2212,7 @@ object Http4s600 { for { jsonSchema <- if (cacheValueFromRedis.isDefined) { NewStyle.function.tryons(s"$UnknownError Cannot parse cached JSON Schema.", 400, Some(cc)) { - net.liftweb.json.parse(cacheValueFromRedis.get).asInstanceOf[net.liftweb.json.JObject] + com.openbankproject.commons.util.JsonAliases.parse(cacheValueFromRedis.get).asInstanceOf[org.json4s.JObject] } } else { NewStyle.function.tryons(s"$UnknownError Cannot generate JSON Schema.", 400, Some(cc)) { @@ -2222,7 +2223,7 @@ object Http4s600 { ) val schema = code.api.util.JsonSchemaGenerator.messageDocsToJsonSchema( connectorObject.messageDocs.toList, connector) - val schemaString = net.liftweb.json.compactRender(schema) + val schemaString = com.openbankproject.commons.util.JsonAliases.compactRender(schema) code.api.cache.Caching.setStaticSwaggerDocCache(cacheKey, schemaString) schema } @@ -2239,7 +2240,7 @@ object Http4s600 { for { postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostVerifyUserCredentialsJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostVerifyUserCredentialsJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostVerifyUserCredentialsJsonV600] } decodedProvider = java.net.URLDecoder.decode(postedData.provider, java.nio.charset.StandardCharsets.UTF_8) resourceUserIdBox = code.model.dataAccess.AuthUser.getResourceUserId( @@ -2297,7 +2298,7 @@ object Http4s600 { val cacheKey = s"all:${tagFilter.getOrElse("")}" val cacheTTL = APIUtil.getPropsAsIntValue("getAllApiProductsV600.cache.ttl.seconds", 5) val hit = code.api.cache.Caching.getApiProductsCache(cacheKey, cacheTTL) - .flatMap(s => try Some(net.liftweb.json.parse(s).extract[ApiProductsJsonV600]) + .flatMap(s => try Some(com.openbankproject.commons.util.JsonAliases.parse(s).extract[ApiProductsJsonV600]) catch { case _: Throwable => None }) hit match { case Some(cached) => Future.successful(cached) @@ -2310,7 +2311,7 @@ object Http4s600 { } yield { val result = JSONFactory600.createApiProductsJsonV600(apiProducts) code.api.cache.Caching.setApiProductsCache( - cacheKey, net.liftweb.json.compactRender(Extraction.decompose(result)), cacheTTL) + cacheKey, com.openbankproject.commons.util.JsonAliases.compactRender(Extraction.decompose(result)), cacheTTL) result } } @@ -2329,7 +2330,7 @@ object Http4s600 { } val cacheTTL = APIUtil.getPropsAsIntValue("getAllProductsV600.cache.ttl.seconds", 60) val hit = code.api.cache.Caching.getFinancialProductsCache(cacheKey, cacheTTL) - .flatMap(s => try Some(net.liftweb.json.parse(s).extract[ProductsJsonV600]) + .flatMap(s => try Some(com.openbankproject.commons.util.JsonAliases.parse(s).extract[ProductsJsonV600]) catch { case _: Throwable => None }) hit match { case Some(cached) => Future.successful(cached) @@ -2342,7 +2343,7 @@ object Http4s600 { } yield { val result = JSONFactory600.createProductsJsonV600(products, Map.empty) code.api.cache.Caching.setFinancialProductsCache( - cacheKey, net.liftweb.json.compactRender(Extraction.decompose(result)), cacheTTL) + cacheKey, com.openbankproject.commons.util.JsonAliases.compactRender(Extraction.decompose(result)), cacheTTL) result } } @@ -2435,7 +2436,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostAccountAccessRequestJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JSONFactory600.PostAccountAccessRequestJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JSONFactory600.PostAccountAccessRequestJsonV600] } _ <- Helper.booleanToFuture(BusinessJustificationRequired, cc = Some(cc)) { postJson.business_justification.trim.nonEmpty @@ -2474,7 +2475,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostApproveAccountAccessRequestJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JSONFactory600.PostApproveAccountAccessRequestJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JSONFactory600.PostApproveAccountAccessRequestJsonV600] } requestBox <- Future { code.accountaccessrequest.AccountAccessRequestTrait.accountAccessRequest.vend.getById(requestIdStr) @@ -2522,7 +2523,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostRejectAccountAccessRequestJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JSONFactory600.PostRejectAccountAccessRequestJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JSONFactory600.PostRejectAccountAccessRequestJsonV600] } _ <- Helper.booleanToFuture(CheckerCommentRequiredForRejection, cc = Some(cc)) { postJson.comment.trim.nonEmpty @@ -2563,7 +2564,7 @@ object Http4s600 { code.api.cache.RedisMessaging.channelInfo(name).map { case (count, ttl) => val (messages, _) = code.api.cache.RedisMessaging.fetchMessages(name, 0, count.toInt) val hasBroadcast = messages.exists { s => - scala.util.Try(net.liftweb.json.parse(s).extract[SignalMessageJsonV600].to_user_id.isEmpty).getOrElse(false) + scala.util.Try(com.openbankproject.commons.util.JsonAliases.parse(s).extract[SignalMessageJsonV600].to_user_id.isEmpty).getOrElse(false) } (name, count, ttl, hasBroadcast) } @@ -2622,7 +2623,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostSignalMessageJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostSignalMessageJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostSignalMessageJsonV600] } _ <- Helper.booleanToFuture(InvalidSignalChannelName, cc = Some(cc)) { code.api.cache.RedisMessaging.validateChannelName(channelName) @@ -2639,7 +2640,7 @@ object Http4s600 { to_user_id = postJson.to_user_id, timestamp = timestamp, message_type = postJson.message_type.getOrElse(""), payload = postJson.payload) - val msgStr = net.liftweb.json.compactRender(Extraction.decompose(envelope)) + val msgStr = com.openbankproject.commons.util.JsonAliases.compactRender(Extraction.decompose(envelope)) val count = code.api.cache.RedisMessaging.publishMessage(channelName, msgStr) SignalMessagePublishedJsonV600(messageId, channelName, timestamp, count) } @@ -2662,7 +2663,7 @@ object Http4s600 { (rawMessages, totalCount) <- Future(code.api.cache.RedisMessaging.fetchMessages(channelName, offset, limit)) } yield { val parsed = rawMessages.flatMap { s => - scala.util.Try(net.liftweb.json.parse(s).extract[SignalMessageJsonV600]).toOption + scala.util.Try(com.openbankproject.commons.util.JsonAliases.parse(s).extract[SignalMessageJsonV600]).toOption } val filtered = parsed.filter { msg => msg.to_user_id.isEmpty || @@ -2867,7 +2868,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ChatRoomSearchRequestJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[ChatRoomSearchRequestJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[ChatRoomSearchRequestJsonV600] } roomsBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend .searchChatRoomsForUserWithParticipants(user.userId, postJson.with_user_ids, @@ -2939,7 +2940,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") val u = cc.user.openOrThrowException("User not found in CallContext") for { - json <- Future(net.liftweb.json.parse(rawBody)) + json <- Future(com.openbankproject.commons.util.JsonAliases.parse(rawBody)) joiningKey = (json \ "joining_key").extractOpt[String].getOrElse("") roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoomByJoiningKey(joiningKey)) room <- Future(unboxFullOrFail(roomBox, Some(cc), InvalidJoiningKey, 404)) @@ -3002,7 +3003,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostChatRoomJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostChatRoomJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostChatRoomJsonV600] } existing <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend .getChatRoomByBankIdAndName(bankIdStr, postJson.name)) @@ -3031,7 +3032,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostChatRoomJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostChatRoomJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostChatRoomJsonV600] } existing <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend .getChatRoomByBankIdAndName("", postJson.name)) @@ -3059,7 +3060,7 @@ object Http4s600 { for { putJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PutChatRoomJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PutChatRoomJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PutChatRoomJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) _ <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3084,7 +3085,7 @@ object Http4s600 { for { putJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PutChatRoomJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PutChatRoomJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PutChatRoomJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) _ <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3134,7 +3135,7 @@ object Http4s600 { EndpointHelpers.withUserAndBank(req) { (_, _, cc) => val rawBody = cc.httpBody.getOrElse("") for { - json <- Future(net.liftweb.json.parse(rawBody)) + json <- Future(com.openbankproject.commons.util.JsonAliases.parse(rawBody)) isOpenRoom = (json \ "is_open_room").extractOrElse[Boolean](false) roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) _ <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3153,7 +3154,7 @@ object Http4s600 { EndpointHelpers.executeAndRespond(req) { implicit cc => val rawBody = cc.httpBody.getOrElse("") for { - json <- Future(net.liftweb.json.parse(rawBody)) + json <- Future(com.openbankproject.commons.util.JsonAliases.parse(rawBody)) isOpenRoom = (json \ "is_open_room").extractOrElse[Boolean](false) roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) _ <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3180,7 +3181,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostParticipantJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostParticipantJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostParticipantJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) _ <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3218,7 +3219,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostParticipantJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostParticipantJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostParticipantJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) _ <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3284,7 +3285,7 @@ object Http4s600 { for { putJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PutParticipantPermissionsJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PutParticipantPermissionsJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PutParticipantPermissionsJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) _ <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3308,7 +3309,7 @@ object Http4s600 { for { putJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PutParticipantPermissionsJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PutParticipantPermissionsJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PutParticipantPermissionsJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) _ <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3382,7 +3383,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostChatMessageJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostChatMessageJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostChatMessageJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) room <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3413,7 +3414,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostChatMessageJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostChatMessageJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostChatMessageJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) room <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3510,7 +3511,7 @@ object Http4s600 { for { putJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PutChatMessageJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PutChatMessageJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PutChatMessageJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) _ <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3538,7 +3539,7 @@ object Http4s600 { for { putJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PutChatMessageJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PutChatMessageJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PutChatMessageJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) _ <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3668,7 +3669,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostChatMessageJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostChatMessageJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostChatMessageJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) room <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3701,7 +3702,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostChatMessageJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostChatMessageJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostChatMessageJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) room <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3734,7 +3735,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostReactionJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostReactionJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostReactionJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) _ <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3762,7 +3763,7 @@ object Http4s600 { for { postJson <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostReactionJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostReactionJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostReactionJsonV600] } roomBox <- Future(code.chat.ChatRoomTrait.chatRoomProvider.vend.getChatRoom(chatRoomId)) _ <- Future(unboxFullOrFail(roomBox, Some(cc), ChatRoomNotFound, 404)) @@ -3970,7 +3971,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { createJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[CreateSignatoryPanelJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[CreateSignatoryPanelJsonV600] } (panelBox, _) <- BankConnector.connector.vend.createSignatoryPanel( mandateId, createJson.panel_name, createJson.description, @@ -4011,7 +4012,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { updateJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[UpdateSignatoryPanelJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[UpdateSignatoryPanelJsonV600] } (panelBox, _) <- BankConnector.connector.vend.updateSignatoryPanel( panelId, updateJson.panel_name, updateJson.description, @@ -4048,7 +4049,7 @@ object Http4s600 { for { postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ValidateUserEmailJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JSONFactory600.ValidateUserEmailJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JSONFactory600.ValidateUserEmailJsonV600] } token = postedData.token.trim _ <- Helper.booleanToFuture(s"$InvalidJsonFormat Token cannot be empty", cc = Some(cc)) { @@ -4098,7 +4099,7 @@ object Http4s600 { for { postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostResetPasswordCompleteJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JSONFactory600.PostResetPasswordCompleteJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JSONFactory600.PostResetPasswordCompleteJsonV600] } token = postedData.token.trim _ <- Helper.booleanToFuture(s"$InvalidJsonFormat Token cannot be empty", cc = Some(cc)) { @@ -4140,7 +4141,7 @@ object Http4s600 { for { postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostResetPasswordUrlAnonymousJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JSONFactory600.PostResetPasswordUrlAnonymousJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JSONFactory600.PostResetPasswordUrlAnonymousJsonV600] } } yield { val authUserBox = code.model.dataAccess.AuthUser.find( @@ -4195,7 +4196,7 @@ object Http4s600 { for { body <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the JsonDynamicResourceDoc", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[code.dynamicResourceDoc.JsonDynamicResourceDoc] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[code.dynamicResourceDoc.JsonDynamicResourceDoc] } _ <- Helper.booleanToFuture( s"""$InvalidJsonFormat The request_verb must be one of ["POST", "PUT", "GET", "DELETE"]""", @@ -4206,9 +4207,9 @@ object Http4s600 { s"""$InvalidJsonFormat When request_verb is "GET" or "DELETE", the example_request_body must be a blank String "" or just totally omit the field""", cc = Some(cc)) { (body.requestVerb, body.exampleRequestBody) match { - case ("GET" | "DELETE", Some(net.liftweb.json.JString(s))) => + case ("GET" | "DELETE", Some(org.json4s.JString(s))) => org.apache.commons.lang3.StringUtils.isBlank(s) - case ("GET" | "DELETE", Some(rb)) => rb == net.liftweb.json.JNothing + case ("GET" | "DELETE", Some(rb)) => rb == org.json4s.JNothing case _ => true } } @@ -4246,7 +4247,7 @@ object Http4s600 { val viewId = ViewId(viewIdStr) val txType = com.openbankproject.commons.model.TransactionRequestType(kind) for { - json <- Future(net.liftweb.json.parse(rawBody)) + json <- Future(com.openbankproject.commons.util.JsonAliases.parse(rawBody)) (resp, _) <- code.bankconnectors.LocalMappedConnectorInternal .createTransactionRequest(bankId, accountId, viewId, txType, json) } yield resp @@ -4385,7 +4386,7 @@ object Http4s600 { for { postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostRetailCustomerJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostRetailCustomerJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostRetailCustomerJsonV600] } _ <- Helper.booleanToFuture( InvalidJsonContent + s" The field dependants(${postedData.dependants.getOrElse(0)}) not equal the length(${postedData.dob_of_dependants.getOrElse(Nil).length}) of dob_of_dependants array", @@ -4445,7 +4446,7 @@ object Http4s600 { for { postedData <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the PostCorporateCustomerJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostCorporateCustomerJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostCorporateCustomerJsonV600] } customerNumber = postedData.customer_number.getOrElse(scala.util.Random.nextInt(Integer.MAX_VALUE).toString) _ <- Helper.booleanToFuture( @@ -4569,7 +4570,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { validateJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[ValidateAbacRuleJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[ValidateAbacRuleJsonV600] } _ <- NewStyle.function.tryons(AbacRuleCodeEmpty, 400, Some(cc)) { validateJson.rule_code.trim.nonEmpty @@ -4615,7 +4616,7 @@ object Http4s600 { val u = cc.user.openOrThrowException("User not found in CallContext") for { execJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[ExecuteAbacRuleJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[ExecuteAbacRuleJsonV600] } ruleBox <- Future(code.abacrule.MappedAbacRuleProvider.getAbacRuleById(ruleId)) _ <- Future(unboxFullOrFail(ruleBox, Some(cc), s"ABAC Rule not found with ID: $ruleId", 404)) @@ -4641,7 +4642,7 @@ object Http4s600 { val u = cc.user.openOrThrowException("User not found in CallContext") for { execJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[ExecuteAbacRuleJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[ExecuteAbacRuleJsonV600] } _ <- Future { if (Constant.ABAC_POLICIES.contains(policy)) Full(true) @@ -4874,7 +4875,7 @@ object Http4s600 { private def backupDynamicEntityIo( entity: code.dynamicEntity.DynamicEntityT, backupName: String, - dataRecords: net.liftweb.json.JsonAST.JArray + dataRecords: org.json4s.JsonAST.JArray ): Unit = { code.dynamicEntity.DynamicEntityProvider.connectorMethodProvider.vend .getByEntityName(entity.bankId, backupName).foreach { existingBackup => @@ -4886,15 +4887,15 @@ object Http4s600 { } code.dynamicEntity.DynamicEntityProvider.connectorMethodProvider.vend.delete(existingBackup) } - val originalMetadata = net.liftweb.json.parse(entity.metadataJson).asInstanceOf[net.liftweb.json.JObject] - val backupMetadata = net.liftweb.json.JObject(originalMetadata.obj.map { - case net.liftweb.json.JField(name, value) if name == entity.entityName => - net.liftweb.json.JField(backupName, value) + val originalMetadata = com.openbankproject.commons.util.JsonAliases.parse(entity.metadataJson).asInstanceOf[org.json4s.JObject] + val backupMetadata = org.json4s.JObject(originalMetadata.obj.map { + case org.json4s.JField(name, value) if name == entity.entityName => + org.json4s.JField(backupName, value) case other => other }) val backupEntity = code.dynamicEntity.DynamicEntityCommons( entityName = backupName, - metadataJson = net.liftweb.json.compactRender(backupMetadata), + metadataJson = com.openbankproject.commons.util.JsonAliases.compactRender(backupMetadata), dynamicEntityId = None, userId = entity.userId, bankId = entity.bankId, @@ -4903,15 +4904,15 @@ object Http4s600 { val originalIdField = code.api.dynamic.entity.helper.DynamicEntityHelper.createEntityId(entity.entityName) val backupIdField = code.api.dynamic.entity.helper.DynamicEntityHelper.createEntityId(backupName) dataRecords.arr.foreach { record => - val recordObj = record.asInstanceOf[net.liftweb.json.JObject] + val recordObj = record.asInstanceOf[org.json4s.JObject] val transformedFields = recordObj.obj.map { - case net.liftweb.json.JField(name, _) if name == originalIdField => - net.liftweb.json.JField(backupIdField, - net.liftweb.json.JString(java.util.UUID.randomUUID().toString)) + case org.json4s.JField(name, _) if name == originalIdField => + org.json4s.JField(backupIdField, + org.json4s.JString(java.util.UUID.randomUUID().toString)) case other => other } code.DynamicData.DynamicDataProvider.connectorMethodProvider.vend.save( - entity.bankId, backupName, net.liftweb.json.JObject(transformedFields), + entity.bankId, backupName, org.json4s.JObject(transformedFields), Some(entity.userId), entity.hasPersonalEntity) } } @@ -4945,7 +4946,7 @@ object Http4s600 { com.openbankproject.commons.model.enums.DynamicEntityOperation.GET_ALL, entity.entityName, None, None, entity.bankId, None, None, false, Some(cc)) resultList <- Future { - box.asInstanceOf[net.liftweb.common.Box[net.liftweb.json.JsonAST.JArray]] + box.asInstanceOf[net.liftweb.common.Box[org.json4s.JsonAST.JArray]] .openOrThrowException(s"$UnknownError ") } backupName = computeBackupNameIo(entity.bankId, entity.entityName) @@ -4992,7 +4993,7 @@ object Http4s600 { com.openbankproject.commons.model.enums.DynamicEntityOperation.GET_ALL, entity.entityName, None, None, entity.bankId, None, None, false, Some(cc)) resultList <- Future { - box.asInstanceOf[net.liftweb.common.Box[net.liftweb.json.JsonAST.JArray]] + box.asInstanceOf[net.liftweb.common.Box[org.json4s.JsonAST.JArray]] .openOrThrowException(s"$UnknownError ") } _ <- Future { @@ -5002,13 +5003,13 @@ object Http4s600 { _ <- Future.sequence { resultList.arr.map { record => val idField = code.api.dynamic.entity.helper.DynamicEntityHelper.createEntityId(entity.entityName) - val recordId = (record \ idField).asInstanceOf[net.liftweb.json.JString].s + val recordId = (record \ idField).asInstanceOf[org.json4s.JString].s Future(code.DynamicData.DynamicDataProvider.connectorMethodProvider.vend.delete( entity.bankId, entity.entityName, recordId, None, false)) } } - deleted <- NewStyle.function.deleteDynamicEntity(None, dynamicEntityId) - } yield deleted + _ <- NewStyle.function.deleteDynamicEntity(None, dynamicEntityId) + } yield JObject(Nil) } } @@ -5061,7 +5062,7 @@ object Http4s600 { val bank = cc.bank.get for { postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the PostCustomerLinkJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostCustomerLinkJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostCustomerLinkJsonV600] } (customer, _) <- NewStyle.function.getCustomerByCustomerId(postedData.customer_id, Some(cc)) _ <- Helper.booleanToFuture( @@ -5109,7 +5110,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the PutCustomerLinkJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PutCustomerLinkJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PutCustomerLinkJsonV600] } (updated, _) <- NewStyle.function.updateCustomerLinkById(customerLinkId, postedData.relationship_to, Some(cc)) } yield JSONFactory600.createCustomerLinkJson(updated) @@ -5149,7 +5150,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { postJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[InvalidateCacheNamespaceJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[InvalidateCacheNamespaceJsonV600] } namespaceId = postJson.namespace_id _ <- Helper.booleanToFuture( @@ -5345,7 +5346,7 @@ object Http4s600 { val user = cc.user.openOrThrowException(AuthenticatedUserIsRequired) for { postJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the PostGroupJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostGroupJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostGroupJsonV600] } _ <- Helper.booleanToFuture(s"$InvalidJsonFormat group_name cannot be empty", cc = Some(cc)) { postJson.group_name.nonEmpty @@ -5403,7 +5404,7 @@ object Http4s600 { val user = cc.user.openOrThrowException(AuthenticatedUserIsRequired) for { putJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the PutGroupJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PutGroupJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PutGroupJsonV600] } existing <- Future(code.group.GroupTrait.group.vend.getGroup(groupId)) .map(x => unboxFullOrFail(x, Some(cc), s"$UnknownError Group not found", 404)) @@ -5469,7 +5470,7 @@ object Http4s600 { val user = cc.user.openOrThrowException(AuthenticatedUserIsRequired) for { createJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[CreateAbacRuleJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[CreateAbacRuleJsonV600] } _ <- Helper.booleanToFuture("Rule name must not be empty", cc = Some(cc)) { createJson.rule_name.nonEmpty } _ <- Helper.booleanToFuture("Rule code must not be empty", cc = Some(cc)) { createJson.rule_code.nonEmpty } @@ -5523,7 +5524,7 @@ object Http4s600 { val user = cc.user.openOrThrowException(AuthenticatedUserIsRequired) for { updateJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[UpdateAbacRuleJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[UpdateAbacRuleJsonV600] } _ <- AbacRuleEngine.validateRuleCodeAsync(updateJson.rule_code) .map(unboxFullOrFail(_, Some(cc), "Invalid ABAC rule code", 400)) @@ -5568,7 +5569,7 @@ object Http4s600 { val user = cc.user.openOrThrowException(AuthenticatedUserIsRequired) for { postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the UserAttributeJsonV510", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[UserAttributeJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[UserAttributeJsonV510] } userAttributeType <- NewStyle.function.tryons(personalDataTypeErrorMsg, 400, Some(cc)) { UserAttributeType.withName(postedData.`type`) @@ -5612,7 +5613,7 @@ object Http4s600 { val user = cc.user.openOrThrowException(AuthenticatedUserIsRequired) for { postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the UserAttributeJsonV510", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[UserAttributeJsonV510] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[UserAttributeJsonV510] } userAttributeType <- NewStyle.function.tryons(personalDataTypeErrorMsg, 400, Some(cc)) { UserAttributeType.withName(postedData.`type`) @@ -5664,7 +5665,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { postJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the CallLimitPostJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[CallLimitPostJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[CallLimitPostJsonV600] } _ <- NewStyle.function.getConsumerByConsumerId(consumerId, Some(cc)) rateLimitingBox <- RateLimitingDI.rateLimiting.vend.createConsumerCallLimits( @@ -5686,7 +5687,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { postJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the CallLimitPostJsonV400", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[CallLimitPostJsonV400] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[CallLimitPostJsonV400] } _ <- NewStyle.function.getConsumerByConsumerId(consumerId, Some(cc)) _ <- RateLimitingDI.rateLimiting.vend.updateConsumerCallLimits( @@ -5756,7 +5757,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { postJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the PostFeaturedApiCollectionJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostFeaturedApiCollectionJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostFeaturedApiCollectionJsonV600] } (apiCollection, _) <- NewStyle.function.getApiCollectionById(postJson.api_collection_id, Some(cc)) _ <- Helper.booleanToFuture(s"$ApiCollectionNotFound The API Collection must be sharable to be featured.", cc = Some(cc)) { @@ -5788,7 +5789,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { putJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the PutFeaturedApiCollectionJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PutFeaturedApiCollectionJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PutFeaturedApiCollectionJsonV600] } (updated, _) <- NewStyle.function.updateFeaturedApiCollection( apiCollectionId, putJson.sort_order, Some(cc)) @@ -5822,7 +5823,7 @@ object Http4s600 { val bank = cc.bank.get for { postJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the PostPutApiProductJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostPutApiProductJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostPutApiProductJsonV600] } (apiProduct, _) <- NewStyle.function.createOrUpdateApiProduct( bank.bankId.value, apiProductCode, @@ -5850,7 +5851,7 @@ object Http4s600 { val bank = cc.bank.get for { postJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the PostPutApiProductJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[PostPutApiProductJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[PostPutApiProductJsonV600] } (apiProduct, _) <- NewStyle.function.createOrUpdateApiProduct( bank.bankId.value, apiProductCode, @@ -5915,7 +5916,7 @@ object Http4s600 { for { _ <- NewStyle.function.getApiProductByBankIdAndCode(bank.bankId.value, apiProductCode, Some(cc)) postJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the ApiProductAttributeJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[ApiProductAttributeJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[ApiProductAttributeJsonV600] } (attribute, _) <- NewStyle.function.createOrUpdateApiProductAttribute( bank.bankId.value, apiProductCode, None, @@ -5934,7 +5935,7 @@ object Http4s600 { for { _ <- NewStyle.function.getApiProductByBankIdAndCode(bank.bankId.value, apiProductCode, Some(cc)) postJson <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the ApiProductAttributeJsonV600", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[ApiProductAttributeJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[ApiProductAttributeJsonV600] } (attribute, _) <- NewStyle.function.createOrUpdateApiProductAttribute( bank.bankId.value, apiProductCode, Some(apiProductAttributeId), @@ -5987,7 +5988,7 @@ object Http4s600 { val account = cc.bankAccount.get for { createJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[CreateMandateJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[CreateMandateJsonV600] } validFrom <- parseMandateDate(createJson.valid_from, "valid_from", cc) validTo <- parseMandateDate(createJson.valid_to, "valid_to", cc) @@ -6034,7 +6035,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { updateJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[UpdateMandateJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[UpdateMandateJsonV600] } validFrom <- parseMandateDate(updateJson.valid_from, "valid_from", cc) validTo <- parseMandateDate(updateJson.valid_to, "valid_to", cc) @@ -6062,7 +6063,7 @@ object Http4s600 { // Provision serializer — match Lift exactly. private def serializeSignatoryRequirements(any: Any): String = { - net.liftweb.json.Serialization.write(any.asInstanceOf[AnyRef])(net.liftweb.json.DefaultFormats) + org.json4s.native.Serialization.write(any.asInstanceOf[AnyRef])(org.json4s.DefaultFormats) } // Route: POST /obp/v6.0.0/banks/BANK_ID/mandates/MANDATE_ID/provisions (201) @@ -6073,7 +6074,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { createJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[CreateMandateProvisionJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[CreateMandateProvisionJsonV600] } sigReqJson = serializeSignatoryRequirements(createJson.signatory_requirements) (provision, _) <- BankConnector.connector.vend.createMandateProvision( @@ -6121,7 +6122,7 @@ object Http4s600 { val rawBody = cc.httpBody.getOrElse("") for { updateJson <- NewStyle.function.tryons(InvalidJsonFormat, 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[UpdateMandateProvisionJsonV600] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[UpdateMandateProvisionJsonV600] } sigReqJson = serializeSignatoryRequirements(updateJson.signatory_requirements) (provision, _) <- BankConnector.connector.vend.updateMandateProvision( @@ -6472,7 +6473,7 @@ object Http4s600 { user_id = "user-456", bank_id = None, has_personal_entity = true, - schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject], + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[org.json4s.JsonAST.JObject], _links = Some(DynamicEntityLinksJsonV600( related = List( RelatedLinkJsonV600("personal-list", s"/obp/${ApiVersion.`dynamic-entity`}/my/customer_preferences", "GET"), @@ -6514,7 +6515,7 @@ object Http4s600 { user_id = "user-456", bank_id = None, has_personal_entity = true, - schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject], + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[org.json4s.JsonAST.JObject], record_count = 42 ) ) @@ -6548,7 +6549,7 @@ object Http4s600 { user_id = "user-456", bank_id = Some("gh.29.uk"), has_personal_entity = true, - schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject], + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[org.json4s.JsonAST.JObject], record_count = 42 ) ) @@ -6804,7 +6805,7 @@ object Http4s600 { has_public_access = Some(false), has_community_access = Some(false), personal_requires_role = Some(false), - schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "internal_note": {"type": "string", "example": "set by a privileged service", "description": "Field-level write-restricted (write_role_required)", "write_role_required": true}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "internal_note": {"type": "string", "example": "set by a privileged service", "description": "Field-level write-restricted (writeRoleRequired)", "write_role_required": true}}}""").asInstanceOf[org.json4s.JsonAST.JObject] ), DynamicEntityDefinitionJsonV600( dynamic_entity_id = "abc-123-def", @@ -6815,7 +6816,7 @@ object Http4s600 { has_public_access = false, has_community_access = false, personal_requires_role = false, - schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "internal_note": {"type": "string", "example": "set by a privileged service", "description": "Field-level write-restricted (write_role_required)", "write_role_required": true}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "internal_note": {"type": "string", "example": "set by a privileged service", "description": "Field-level write-restricted (writeRoleRequired)", "write_role_required": true}}}""").asInstanceOf[org.json4s.JsonAST.JObject] ), List($AuthenticatedUserIsRequired, UserHasMissingRoles, InvalidJsonFormat, UnknownError), apiTagManageDynamicEntity :: apiTagApi :: Nil, @@ -6869,7 +6870,7 @@ object Http4s600 { has_public_access = Some(false), has_community_access = Some(false), personal_requires_role = Some(false), - schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "internal_note": {"type": "string", "example": "set by a privileged service", "description": "Field-level write-restricted (write_role_required)", "write_role_required": true}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "internal_note": {"type": "string", "example": "set by a privileged service", "description": "Field-level write-restricted (writeRoleRequired)", "write_role_required": true}}}""").asInstanceOf[org.json4s.JsonAST.JObject] ), DynamicEntityDefinitionJsonV600( dynamic_entity_id = "abc-123-def", @@ -6880,7 +6881,7 @@ object Http4s600 { has_public_access = false, has_community_access = false, personal_requires_role = false, - schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "internal_note": {"type": "string", "example": "set by a privileged service", "description": "Field-level write-restricted (write_role_required)", "write_role_required": true}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "internal_note": {"type": "string", "example": "set by a privileged service", "description": "Field-level write-restricted (writeRoleRequired)", "write_role_required": true}}}""").asInstanceOf[org.json4s.JsonAST.JObject] ), List( $BankNotFound, @@ -6937,7 +6938,7 @@ object Http4s600 { entity_name = "customer_preferences", has_personal_entity = Some(true), has_public_access = Some(false), - schema = net.liftweb.json.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] ), DynamicEntityDefinitionJsonV600( dynamic_entity_id = "abc-123-def", @@ -6946,7 +6947,7 @@ object Http4s600 { bank_id = None, has_personal_entity = true, has_public_access = false, - schema = net.liftweb.json.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] ), List($AuthenticatedUserIsRequired, UserHasMissingRoles, InvalidJsonFormat, UnknownError), apiTagManageDynamicEntity :: apiTagApi :: Nil, @@ -6996,7 +6997,7 @@ object Http4s600 { entity_name = "customer_preferences", has_personal_entity = Some(true), has_public_access = Some(false), - schema = net.liftweb.json.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] ), DynamicEntityDefinitionJsonV600( dynamic_entity_id = "abc-123-def", @@ -7005,7 +7006,7 @@ object Http4s600 { bank_id = Some("gh.29.uk"), has_personal_entity = true, has_public_access = false, - schema = net.liftweb.json.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] ), List( $BankNotFound, @@ -7061,7 +7062,7 @@ object Http4s600 { entity_name = "customer_preferences", has_personal_entity = Some(true), has_public_access = Some(false), - schema = net.liftweb.json.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] ), DynamicEntityDefinitionJsonV600( dynamic_entity_id = "abc-123-def", @@ -7070,7 +7071,7 @@ object Http4s600 { bank_id = None, has_personal_entity = true, has_public_access = false, - schema = net.liftweb.json.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences updated", "required": ["theme"], "properties": {"theme": {"type": "string", "minLength": 1, "maxLength": 20, "example": "dark", "description": "The UI theme preference"}, "language": {"type": "string", "minLength": 2, "maxLength": 5, "example": "en", "description": "ISO language code"}, "notifications_enabled": {"type": "boolean", "example": "true", "description": "Whether to send notifications"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] ), List( $AuthenticatedUserIsRequired, @@ -9248,7 +9249,7 @@ object Http4s600 { user_id = "user-456", bank_id = None, has_personal_entity = true, - schema = net.liftweb.json.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject], + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "User preferences", "required": ["theme"], "properties": {"theme": {"type": "string"}, "language": {"type": "string"}}}""").asInstanceOf[org.json4s.JsonAST.JObject], _links = Some(DynamicEntityLinksJsonV600( related = List( RelatedLinkJsonV600("personal-list", s"/obp/${ApiVersion.`dynamic-entity`}/my/customer_preferences", "GET"), @@ -12794,7 +12795,7 @@ object Http4s600 { user_id = "user-456", bank_id = None, has_personal_entity = false, - schema = net.liftweb.json.parse("""{"description": "Backup entity", "required": ["name"], "properties": {"name": {"type": "string", "example": "test"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "Backup entity", "required": ["name"], "properties": {"name": {"type": "string", "example": "test"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] ), List($AuthenticatedUserIsRequired, UserHasMissingRoles, UnknownError), apiTagManageDynamicEntity :: apiTagApi :: Nil, @@ -12827,7 +12828,7 @@ object Http4s600 { user_id = "user-456", bank_id = Some("gh.29.uk"), has_personal_entity = false, - schema = net.liftweb.json.parse("""{"description": "Backup entity", "required": ["name"], "properties": {"name": {"type": "string", "example": "test"}}}""").asInstanceOf[net.liftweb.json.JsonAST.JObject] + schema = com.openbankproject.commons.util.JsonAliases.parse("""{"description": "Backup entity", "required": ["name"], "properties": {"name": {"type": "string", "example": "test"}}}""").asInstanceOf[org.json4s.JsonAST.JObject] ), List($AuthenticatedUserIsRequired, UserHasMissingRoles, UnknownError), apiTagManageDynamicEntity :: apiTagApi :: Nil, diff --git a/obp-api/src/main/scala/code/api/v6_0_0/JSONFactory6.0.0.scala b/obp-api/src/main/scala/code/api/v6_0_0/JSONFactory6.0.0.scala index 37e80362ea..8f23aedf25 100644 --- a/obp-api/src/main/scala/code/api/v6_0_0/JSONFactory6.0.0.scala +++ b/obp-api/src/main/scala/code/api/v6_0_0/JSONFactory6.0.0.scala @@ -51,6 +51,8 @@ import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.Box import java.util.Date +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ case class FeaturesJsonV600( allow_public_views: Boolean, @@ -445,7 +447,7 @@ case class MetricJsonV600( duration: Long, source_ip: String, target_ip: String, - response_body: net.liftweb.json.JValue, + response_body: org.json4s.JValue, status_code: Int, operation_id: String, api_instance_id: String, @@ -951,7 +953,7 @@ case class DynamicEntityDefinitionJsonV600( has_public_access: Boolean = false, has_community_access: Boolean = false, personal_requires_role: Boolean = false, - schema: net.liftweb.json.JsonAST.JObject, + schema: org.json4s.JsonAST.JObject, _links: Option[DynamicEntityLinksJsonV600] = None ) @@ -969,7 +971,7 @@ case class DynamicEntityDefinitionWithCountJsonV600( has_public_access: Boolean = false, has_community_access: Boolean = false, personal_requires_role: Boolean = false, - schema: net.liftweb.json.JsonAST.JObject, + schema: org.json4s.JsonAST.JObject, record_count: Long, _links: Option[DynamicEntityLinksJsonV600] = None ) @@ -985,7 +987,7 @@ case class CreateDynamicEntityRequestJsonV600( has_public_access: Option[Boolean] = None, // defaults to false if not provided has_community_access: Option[Boolean] = None, // defaults to false if not provided personal_requires_role: Option[Boolean] = None, // defaults to false if not provided - schema: net.liftweb.json.JsonAST.JObject + schema: org.json4s.JsonAST.JObject ) // Request format for updating a dynamic entity (v6.0.0 with snake_case) @@ -995,7 +997,7 @@ case class UpdateDynamicEntityRequestJsonV600( has_public_access: Option[Boolean] = None, has_community_access: Option[Boolean] = None, personal_requires_role: Option[Boolean] = None, - schema: net.liftweb.json.JsonAST.JObject + schema: org.json4s.JsonAST.JObject ) // Featured API Collections (v6.0.0) @@ -1142,7 +1144,7 @@ case class ConfigPropJsonV600(name: String, value: String) // Signal Channels case classes (Redis-backed ephemeral messaging channels) case class PostSignalMessageJsonV600( - payload: net.liftweb.json.JsonAST.JValue, + payload: org.json4s.JsonAST.JValue, message_type: Option[String] = None, to_user_id: Option[String] = None ) @@ -1155,7 +1157,7 @@ case class SignalMessageJsonV600( to_user_id: Option[String], timestamp: String, message_type: String, - payload: net.liftweb.json.JsonAST.JValue + payload: org.json4s.JsonAST.JValue ) case class SignalMessagesJsonV600( @@ -1685,7 +1687,7 @@ object JSONFactory600 extends CustomJsonFormats with MdcLoggable { duration = metric.getDuration(), source_ip = metric.getSourceIp(), target_ip = metric.getTargetIp(), - response_body = net.liftweb.json.parseOpt(metric.getResponseBody()).getOrElse(net.liftweb.json.JString("Not enabled")), + response_body = com.openbankproject.commons.util.JsonAliases.parseOpt(metric.getResponseBody()).getOrElse(org.json4s.JString("Not enabled")), status_code = metric.getHttpCode(), operation_id = operationId, api_instance_id = metric.getApiInstanceId(), @@ -2166,9 +2168,10 @@ object JSONFactory600 extends CustomJsonFormats with MdcLoggable { if (json == null || json.isEmpty) Nil else { try { - import net.liftweb.json._ + import org.json4s._ + import com.openbankproject.commons.util.JsonAliases._ implicit val formats: Formats = DefaultFormats - net.liftweb.json.parse(json).extract[List[SignatoryRequirementJsonV600]] + com.openbankproject.commons.util.JsonAliases.parse(json).extract[List[SignatoryRequirementJsonV600]] } catch { case _: Exception => Nil } @@ -2527,8 +2530,7 @@ object JSONFactory600 extends CustomJsonFormats with MdcLoggable { } def createMyDynamicEntitiesJson(dynamicEntities: List[code.dynamicEntity.DynamicEntityCommons]): MyDynamicEntitiesJsonV600 = { - import net.liftweb.json.JsonAST._ - import net.liftweb.json.parse + import com.openbankproject.commons.util.JsonAliases.parse import net.liftweb.util.StringHelpers MyDynamicEntitiesJsonV600( @@ -2575,8 +2577,7 @@ object JSONFactory600 extends CustomJsonFormats with MdcLoggable { def createDynamicEntitiesWithCountJson( entitiesWithCounts: List[(code.dynamicEntity.DynamicEntityCommons, Long)] ): DynamicEntitiesWithCountJsonV600 = { - import net.liftweb.json.JsonAST._ - import net.liftweb.json.parse + import com.openbankproject.commons.util.JsonAliases.parse DynamicEntitiesWithCountJsonV600( dynamic_entities = entitiesWithCounts.map { case (entity, recordCount) => @@ -2633,9 +2634,8 @@ object JSONFactory600 extends CustomJsonFormats with MdcLoggable { * "hasPersonalEntity": true * } */ - def convertV600RequestToInternal(request: CreateDynamicEntityRequestJsonV600): net.liftweb.json.JsonAST.JObject = { - import net.liftweb.json.JsonAST._ - import net.liftweb.json.JsonDSL._ + def convertV600RequestToInternal(request: CreateDynamicEntityRequestJsonV600): org.json4s.JsonAST.JObject = { + import org.json4s.JsonDSL._ val hasPersonalEntity = request.has_personal_entity.getOrElse(true) val hasPublicAccess = request.has_public_access.getOrElse(false) @@ -2653,9 +2653,8 @@ object JSONFactory600 extends CustomJsonFormats with MdcLoggable { ) } - def convertV600UpdateRequestToInternal(request: UpdateDynamicEntityRequestJsonV600): net.liftweb.json.JsonAST.JObject = { - import net.liftweb.json.JsonAST._ - import net.liftweb.json.JsonDSL._ + def convertV600UpdateRequestToInternal(request: UpdateDynamicEntityRequestJsonV600): org.json4s.JsonAST.JObject = { + import org.json4s.JsonDSL._ val hasPersonalEntity = request.has_personal_entity.getOrElse(true) val hasPublicAccess = request.has_public_access.getOrElse(false) diff --git a/obp-api/src/main/scala/code/api/v7_0_0/Http4s700.scala b/obp-api/src/main/scala/code/api/v7_0_0/Http4s700.scala index 0e8e5b617f..82f317180e 100644 --- a/obp-api/src/main/scala/code/api/v7_0_0/Http4s700.scala +++ b/obp-api/src/main/scala/code/api/v7_0_0/Http4s700.scala @@ -1,5 +1,6 @@ package code.api.v7_0_0 +import org.json4s._ import cats.data.{Kleisli, OptionT} import cats.effect._ import code.api.Constant @@ -46,8 +47,8 @@ import code.loginattempts.LoginAttempt import code.metrics.MappedMetric import code.users.UserAgreementProvider import net.liftweb.common.Full -import net.liftweb.json.JsonAST.prettyRender -import net.liftweb.json.{Extraction, Formats} +import com.openbankproject.commons.util.JsonAliases.prettyRender +import org.json4s.{Extraction, Formats} import net.liftweb.mapper.{By, Descending, MaxRows, OrderBy} import org.http4s._ import org.http4s.dsl.io._ @@ -1869,7 +1870,7 @@ object Http4s700 { posted <- NewStyle.function.tryons( s"$InvalidJsonFormat The Json body should be the ${classOf[JSONFactory700.PostValidationEmailRequestJsonV700].getSimpleName}", 400, Some(cc)) { - net.liftweb.json.parse(rawBody).extract[JSONFactory700.PostValidationEmailRequestJsonV700] + com.openbankproject.commons.util.JsonAliases.parse(rawBody).extract[JSONFactory700.PostValidationEmailRequestJsonV700] } } yield { val username = Option(posted.username).map(_.trim).getOrElse("") diff --git a/obp-api/src/main/scala/code/authtypevalidation/AuthenticationTypeValidationProvider.scala b/obp-api/src/main/scala/code/authtypevalidation/AuthenticationTypeValidationProvider.scala index 97db3f8e08..1a6060fa42 100644 --- a/obp-api/src/main/scala/code/authtypevalidation/AuthenticationTypeValidationProvider.scala +++ b/obp-api/src/main/scala/code/authtypevalidation/AuthenticationTypeValidationProvider.scala @@ -2,12 +2,13 @@ package code.authtypevalidation /* For CardAttribute */ +import org.json4s._ import code.api.util.AuthenticationType import com.openbankproject.commons.util.JsonAble import net.liftweb.common.Box -import net.liftweb.json.JsonDSL._ -import net.liftweb.json -import net.liftweb.json.{Formats, JsonAST} +import org.json4s.JsonDSL._ +import com.openbankproject.commons.util.json +import org.json4s.{Formats, JsonAST} import net.liftweb.util.SimpleInjector import org.apache.commons.lang3.StringUtils diff --git a/obp-api/src/main/scala/code/bankconnectors/Connector.scala b/obp-api/src/main/scala/code/bankconnectors/Connector.scala index f97b871f80..68c06963a9 100644 --- a/obp-api/src/main/scala/code/bankconnectors/Connector.scala +++ b/obp-api/src/main/scala/code/bankconnectors/Connector.scala @@ -1,5 +1,6 @@ package code.bankconnectors +import org.json4s._ import scala.language.implicitConversions import org.apache.pekko.http.scaladsl.model.HttpMethod import code.api.attributedefinition.AttributeDefinition @@ -29,8 +30,8 @@ import com.openbankproject.commons.model.enums.StrongCustomerAuthenticationStatu import com.openbankproject.commons.model.enums._ import com.openbankproject.commons.util.{JsonUtils, ReflectUtils} import net.liftweb.common._ -import net.liftweb.json -import net.liftweb.json.{Formats, JObject, JValue} +import com.openbankproject.commons.util.json +import org.json4s.{Formats, JObject, JValue} import net.liftweb.util.Helpers.tryo import net.liftweb.util.SimpleInjector diff --git a/obp-api/src/main/scala/code/bankconnectors/ConnectorEndpoints.scala b/obp-api/src/main/scala/code/bankconnectors/ConnectorEndpoints.scala index 631749c4f5..8c7e04c642 100644 --- a/obp-api/src/main/scala/code/bankconnectors/ConnectorEndpoints.scala +++ b/obp-api/src/main/scala/code/bankconnectors/ConnectorEndpoints.scala @@ -1,5 +1,6 @@ package code.bankconnectors +import org.json4s._ import code.api.APIFailureNewStyle import code.api.util.APIUtil._ import code.api.util.NewStyle.HttpCode @@ -12,8 +13,8 @@ import com.openbankproject.commons.util.ReflectUtils import com.openbankproject.commons.util.ReflectUtils.{getType, toValueObject} import net.liftweb.common.{Box, Empty, Failure, Full} import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.JValue -import net.liftweb.json.JsonAST.JNothing +import org.json4s.JValue +import org.json4s.JsonAST.JNothing import org.apache.commons.lang3.StringUtils import scala.annotation.tailrec diff --git a/obp-api/src/main/scala/code/bankconnectors/ConnectorUtils.scala b/obp-api/src/main/scala/code/bankconnectors/ConnectorUtils.scala index 655bb190f0..f76260390b 100644 --- a/obp-api/src/main/scala/code/bankconnectors/ConnectorUtils.scala +++ b/obp-api/src/main/scala/code/bankconnectors/ConnectorUtils.scala @@ -1,14 +1,15 @@ package code.bankconnectors +import org.json4s._ import code.api.util.{CallContext, CustomJsonFormats, OBPQueryParam, OptionalFieldSerializer} import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.dto.{InBoundTrait, OutInBoundTransfer} import com.openbankproject.commons.model.TopicTrait import com.openbankproject.commons.util.ReflectUtils import net.liftweb.common.Full -import net.liftweb.json -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.{Formats, JObject, JValue} +import com.openbankproject.commons.util.json +import org.json4s.JsonDSL._ +import org.json4s.{Formats, JObject, JValue} import net.sf.cglib.proxy.{Enhancer, MethodInterceptor, MethodProxy} import org.apache.commons.lang3.StringUtils import java.lang.reflect.Method diff --git a/obp-api/src/main/scala/code/bankconnectors/InternalConnector.scala b/obp-api/src/main/scala/code/bankconnectors/InternalConnector.scala index d5fac02b56..758f5b10ba 100644 --- a/obp-api/src/main/scala/code/bankconnectors/InternalConnector.scala +++ b/obp-api/src/main/scala/code/bankconnectors/InternalConnector.scala @@ -1,5 +1,6 @@ package code.bankconnectors +import org.json4s._ import code.api.util.DynamicUtil.compileScalaCode import code.api.util.ErrorMessages.{DynamicCodeLangNotSupport, InvalidConnectorMethodName} import net.liftweb.common.Full @@ -84,7 +85,7 @@ object InternalConnector { implicit val formats = code.api.util.CustomJsonFormats.formats import scala.concurrent.duration._ val f: Future[Box[($t, Option[CallContext])]] = - v.map(_.map(it =>(net.liftweb.json.parse(it._1).extract[$t], it._2)))(com.openbankproject.commons.ExecutionContext.Implicits.global) + v.map(_.map(it =>(com.openbankproject.commons.util.JsonAliases.parse(it._1).extract[$t], it._2)))(com.openbankproject.commons.ExecutionContext.Implicits.global) val result: Box[($t, Option[CallContext])] = scala.concurrent.Await.result(f, 5 minutes) result }""" @@ -94,7 +95,7 @@ object InternalConnector { implicit val formats = code.api.util.CustomJsonFormats.formats import scala.concurrent.duration._ val f: Future[Box[$t]] = - v.map(_.map(it =>net.liftweb.json.parse(it._1).extract[$t]))(com.openbankproject.commons.ExecutionContext.Implicits.global) + v.map(_.map(it =>com.openbankproject.commons.util.JsonAliases.parse(it._1).extract[$t]))(com.openbankproject.commons.ExecutionContext.Implicits.global) val result: Box[$t] = scala.concurrent.Await.result(f, 5 minutes) result }""" @@ -103,7 +104,7 @@ object InternalConnector { s"""(v: scala.concurrent.Future[net.liftweb.common.Box[(String, scala.Option[code.api.util.CallContext])]]) =>{ implicit val formats = code.api.util.CustomJsonFormats.formats val result : Future[Box[($t, Option[CallContext])]] = - v.map(_.map(it =>(net.liftweb.json.parse(it._1).extract[$t], it._2)))(com.openbankproject.commons.ExecutionContext.Implicits.global) + v.map(_.map(it =>(com.openbankproject.commons.util.JsonAliases.parse(it._1).extract[$t], it._2)))(com.openbankproject.commons.ExecutionContext.Implicits.global) result }""" @@ -111,7 +112,7 @@ object InternalConnector { s"""(v: scala.concurrent.Future[net.liftweb.common.Box[(String, scala.Option[code.api.util.CallContext])]]) =>{ implicit val formats = code.api.util.CustomJsonFormats.formats val result : Future[Box[$t]] = - v.map(_.map(it => net.liftweb.json.parse(it._1).extract[$t]))(com.openbankproject.commons.ExecutionContext.Implicits.global) + v.map(_.map(it => com.openbankproject.commons.util.JsonAliases.parse(it._1).extract[$t]))(com.openbankproject.commons.ExecutionContext.Implicits.global) result }""" @@ -119,7 +120,7 @@ object InternalConnector { s"""(v: scala.concurrent.Future[net.liftweb.common.Box[(String, scala.Option[code.api.util.CallContext])]]) =>{ implicit val formats = code.api.util.CustomJsonFormats.formats val result : Future[$t] = - v.map(_.map(it => net.liftweb.json.parse(it._1).extract[$t]).orNull)(com.openbankproject.commons.ExecutionContext.Implicits.global) + v.map(_.map(it => com.openbankproject.commons.util.JsonAliases.parse(it._1).extract[$t]).orNull)(com.openbankproject.commons.ExecutionContext.Implicits.global) result }""" @@ -128,7 +129,7 @@ object InternalConnector { implicit val formats = code.api.util.CustomJsonFormats.formats val result : Future[(Box[$t], Option[CallContext])] = v.map { box => val net.liftweb.common.Full((zson , cc)) = box - (Box !! net.liftweb.json.parse(zson).extract[$t]) -> cc + (Box !! com.openbankproject.commons.util.JsonAliases.parse(zson).extract[$t]) -> cc }(com.openbankproject.commons.ExecutionContext.Implicits.global) result }""" @@ -138,7 +139,7 @@ object InternalConnector { implicit val formats = code.api.util.CustomJsonFormats.formats val result : Future[($t, Option[CallContext])] = v.map { box => val net.liftweb.common.Full((zson , cc )) = box - net.liftweb.json.parse(zson).extract[$t] -> cc + com.openbankproject.commons.util.JsonAliases.parse(zson).extract[$t] -> cc }(com.openbankproject.commons.ExecutionContext.Implicits.global) result }""" @@ -149,7 +150,7 @@ object InternalConnector { import scala.concurrent.duration._ val f: Future[$t] = v.map { box => val net.liftweb.common.Full((zson , _ )) = box - net.liftweb.json.parse(zson).extract[$t] + com.openbankproject.commons.util.JsonAliases.parse(zson).extract[$t] }(com.openbankproject.commons.ExecutionContext.Implicits.global) val result: $t = scala.concurrent.Await.result(f, 5 minutes) diff --git a/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala b/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala index 486b72a370..1a51cc8c33 100644 --- a/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala +++ b/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnector.scala @@ -1,5 +1,6 @@ package code.bankconnectors +import org.json4s._ import _root_.org.apache.pekko.http.scaladsl.model.HttpMethod import code.DynamicData.DynamicDataProvider import code.accountapplication.AccountApplicationX @@ -76,14 +77,15 @@ import com.twilio.Twilio import com.twilio.`type`.PhoneNumber import com.twilio.rest.api.v2010.account.Message import net.liftweb.common._ -import net.liftweb.json -import net.liftweb.json.{JArray, JBool, JObject, JValue} +import com.openbankproject.commons.util.json +import org.json4s.{JArray, JBool, JObject, JValue} import net.liftweb.mapper._ import net.liftweb.util.Helpers import net.liftweb.util.Helpers.{hours, now, time, tryo} import org.mindrot.jbcrypt.BCrypt -import scalikejdbc.DB.CPContext -import scalikejdbc.{ConnectionPool, ConnectionPoolSettings, MultipleConnectionPoolContext, DB => scalikeDB, _} +import doobie._ +import doobie.implicits._ +import code.api.util.DoobieUtil import java.util.Date import java.util.UUID.randomUUID @@ -1215,25 +1217,7 @@ object LocalMappedConnector extends Connector with MdcLoggable { } } - /** - * this connection pool context corresponding db.url in default.props - */ - implicit lazy val context: CPContext = { - val settings = ConnectionPoolSettings( - initialSize = 5, - maxSize = 20, - connectionTimeoutMillis = 3000L, - validationQuery = "select 1", - connectionPoolFactoryName = "commons-dbcp2" - ) - val (dbUrl, user, password) = DBUtil.getDbConnectionParameters - val dbName = "DB_NAME" // corresponding props db.url DB - ConnectionPool.add(dbName, dbUrl, user, password, settings) - val connectionPool = ConnectionPool.get(dbName) - MultipleConnectionPoolContext(ConnectionPool.DEFAULT_NAME -> connectionPool) - } - - private def findFirehoseAccounts(bankId: BankId, ordering: SQLSyntax, limit: Int, offset: Int)(implicit session: DBSession = AutoSession) = { + private def findFirehoseAccounts(bankId: BankId, ordering: String, limit: Int, offset: Int): List[FastFirehoseAccount] = { def parseOwners(owners: String): List[FastFirehoseOwners] = { if(!owners.isEmpty) { transformString(owners).map { @@ -1288,89 +1272,85 @@ object LocalMappedConnector extends Connector with MdcLoggable { maps } - val sqlResult = sql""" - |select - | mappedbankaccount.theaccountid as account_id, - | mappedbankaccount.bank as bank_id, - | mappedbankaccount.accountlabel as account_label, - | mappedbankaccount.accountnumber as account_number, - | (select - | string_agg( - | 'user_id:' - | || resourceuser.userid_ - | ||',provider:' - | ||resourceuser.provider_ - | ||',user_name:' - | ||resourceuser.name_, - | '::') as owners - | from resourceuser - | where - | resourceuser.id = mapperaccountholders.user_c - | ), - | mappedbankaccount.kind as kind, - | mappedbankaccount.accountcurrency as account_currency , - | mappedbankaccount.accountbalance as account_balance, - | (select - | string_agg( - | 'bank_id:' - | ||bankaccountrouting.bankid - | ||',account_id:' - | ||bankaccountrouting.accountid, - | '::' - | ) as account_routings - | from bankaccountrouting - | where - | bankaccountrouting.accountid = mappedbankaccount.theaccountid - | ), - | (select - | string_agg( - | 'type:' - | || mappedaccountattribute.mtype - | ||',code:' - | ||mappedaccountattribute.mcode - | ||',value:' - | ||mappedaccountattribute.mvalue, - | '::') as account_attributes - | from mappedaccountattribute - | where - | mappedaccountattribute.maccountid = mappedbankaccount.theaccountid - | ) - |from mappedbankaccount - | LEFT JOIN mapperaccountholders - | ON (mappedbankaccount.bank = mapperaccountholders.accountbankpermalink and mappedbankaccount.theaccountid = mapperaccountholders.accountpermalink) - |WHERE mappedbankaccount.bank = ${bankId.value} - |ORDER BY mappedbankaccount.theaccountid $ordering - |LIMIT $limit - |OFFSET $offset ; - | - | - |""".stripMargin - .map { - rs => // Map result to case class - val owners = parseOwners(rs.stringOpt(5).map(_.toString).getOrElse("")) - val routings = parseRoutings(rs.stringOpt(9).map(_.toString).getOrElse("")) - val attributes = parseAttributes(rs.stringOpt(10).map(_.toString).getOrElse("")) - FastFirehoseAccount( - id = rs.stringOpt(1).map(_.toString).getOrElse(null), - bankId = rs.stringOpt(2).map(_.toString).getOrElse(null), - label = rs.stringOpt(3).map(_.toString).getOrElse(null), - number = rs.stringOpt(4).map(_.toString).getOrElse(null), - owners = owners, - productCode = rs.stringOpt(6).map(_.toString).getOrElse(null), - balance = AmountOfMoney( - currency = rs.stringOpt(7).map(_.toString).getOrElse(null), - amount = rs.bigIntOpt(8).map(a => - Helper.smallestCurrencyUnitToBigDecimal( - a.longValue(), - rs.stringOpt(7).getOrElse("EUR") - ).toString() - ).getOrElse(null) + val query = (fr""" + select + mappedbankaccount.theaccountid as account_id, + mappedbankaccount.bank as bank_id, + mappedbankaccount.accountlabel as account_label, + mappedbankaccount.accountnumber as account_number, + (select + string_agg( + 'user_id:' + || resourceuser.userid_ + ||',provider:' + ||resourceuser.provider_ + ||',user_name:' + ||resourceuser.name_, + '::') as owners + from resourceuser + where + resourceuser.id = mapperaccountholders.user_c + ), + mappedbankaccount.kind as kind, + mappedbankaccount.accountcurrency as account_currency , + mappedbankaccount.accountbalance as account_balance, + (select + string_agg( + 'bank_id:' + ||bankaccountrouting.bankid + ||',account_id:' + ||bankaccountrouting.accountid, + '::' + ) as account_routings + from bankaccountrouting + where + bankaccountrouting.accountid = mappedbankaccount.theaccountid ), - accountRoutings = routings, - accountAttributes = attributes - ) - }.list().apply() - sqlResult + (select + string_agg( + 'type:' + || mappedaccountattribute.mtype + ||',code:' + ||mappedaccountattribute.mcode + ||',value:' + ||mappedaccountattribute.mvalue, + '::') as account_attributes + from mappedaccountattribute + where + mappedaccountattribute.maccountid = mappedbankaccount.theaccountid + ) + from mappedbankaccount + LEFT JOIN mapperaccountholders + ON (mappedbankaccount.bank = mapperaccountholders.accountbankpermalink and mappedbankaccount.theaccountid = mapperaccountholders.accountpermalink) + WHERE mappedbankaccount.bank = ${bankId.value} + ORDER BY mappedbankaccount.theaccountid """ ++ Fragment.const(ordering) ++ fr""" + LIMIT $limit + OFFSET $offset + """) + .query[(Option[String], Option[String], Option[String], Option[String], Option[String], Option[String], Option[String], Option[java.math.BigDecimal], Option[String], Option[String])] + .to[List] + .map(_.map { case (id, bankIdCol, label, number, owners, kind, currency, balance, routings, attributes) => + FastFirehoseAccount( + id = id.orNull, + bankId = bankIdCol.orNull, + label = label.orNull, + number = number.orNull, + owners = parseOwners(owners.getOrElse("")), + productCode = kind.orNull, + balance = AmountOfMoney( + currency = currency.orNull, + amount = balance.map(a => + Helper.smallestCurrencyUnitToBigDecimal( + a.longValue(), + currency.getOrElse("EUR") + ).toString() + ).orNull + ), + accountRoutings = parseRoutings(routings.getOrElse("")), + accountAttributes = parseAttributes(attributes.getOrElse("")) + ) + }) + DoobieUtil.runQuery(query) } override def getBankAccountsWithAttributes(bankId: BankId, queryParams: List[OBPQueryParam], callContext: Option[CallContext]): OBPReturnType[Box[List[FastFirehoseAccount]]] = @@ -1381,17 +1361,13 @@ object LocalMappedConnector extends Connector with MdcLoggable { case OBPOrdering(_, OBPDescending) => "DESC" }.headOption.getOrElse("ASC") - val ordering: SQLSyntax = if (orderBy =="DESC" ) sqls"DESC" else sqls"ASC" + val ordering: String = if (orderBy == "DESC") "DESC" else "ASC" - val firehoseAccounts = { - scalikeDB readOnly { implicit session => - findFirehoseAccounts(bankId, ordering, limit, offset) - } - } + val firehoseAccounts = findFirehoseAccounts(bankId, ordering, limit, offset) (Full(firehoseAccounts), callContext) } - private def findAccountDirectory(bankId: BankId, ordering: SQLSyntax, limit: Int, offset: Int)(implicit session: DBSession = AutoSession) = { + private def findAccountDirectory(bankId: BankId, ordering: String, limit: Int, offset: Int): List[AccountDirectoryItem] = { def parseRoutings(routings: String): List[AccountRouting] = { if(!routings.isEmpty) { transformStringDirectory(routings).map { @@ -1432,64 +1408,61 @@ object LocalMappedConnector extends Connector with MdcLoggable { maps } - val sqlResult = sql""" - |select - | mappedbankaccount.theaccountid as account_id, - | mappedbankaccount.bank as bank_id, - | mappedbankaccount.accountlabel as account_label, - | mappedbankaccount.accountnumber as account_number, - | mappedbankaccount.kind as kind, - | mappedbankaccount.mbranchid as branch_id, - | (select - | string_agg( - | 'scheme:' - | ||bankaccountrouting.accountroutingscheme - | ||',address:' - | ||bankaccountrouting.accountroutingaddress, - | '::' - | ) as account_routings - | from bankaccountrouting - | where - | bankaccountrouting.accountid = mappedbankaccount.theaccountid - | and bankaccountrouting.bankid = mappedbankaccount.bank - | ), - | (select - | string_agg( - | 'type:' - | || mappedaccountattribute.mtype - | ||',code:' - | ||mappedaccountattribute.mcode - | ||',value:' - | ||mappedaccountattribute.mvalue, - | '::') as account_attributes - | from mappedaccountattribute - | where - | mappedaccountattribute.maccountid = mappedbankaccount.theaccountid - | ) - |from mappedbankaccount - |WHERE mappedbankaccount.bank = ${bankId.value} - |ORDER BY mappedbankaccount.theaccountid $ordering - |LIMIT $limit - |OFFSET $offset ; - | - | - |""".stripMargin - .map { - rs => - val routings = parseRoutings(rs.stringOpt(7).map(_.toString).getOrElse("")) - val attributes = parseAttributes(rs.stringOpt(8).map(_.toString).getOrElse("")) - AccountDirectoryItem( - id = rs.stringOpt(1).map(_.toString).getOrElse(null), - bankId = rs.stringOpt(2).map(_.toString).getOrElse(null), - label = rs.stringOpt(3).map(_.toString).getOrElse(null), - number = rs.stringOpt(4).map(_.toString).getOrElse(null), - productCode = rs.stringOpt(5).map(_.toString).getOrElse(null), - branchId = rs.stringOpt(6).map(_.toString).getOrElse(null), - accountRoutings = routings, - accountAttributes = attributes - ) - }.list().apply() - sqlResult + val query = (fr""" + select + mappedbankaccount.theaccountid as account_id, + mappedbankaccount.bank as bank_id, + mappedbankaccount.accountlabel as account_label, + mappedbankaccount.accountnumber as account_number, + mappedbankaccount.kind as kind, + mappedbankaccount.mbranchid as branch_id, + (select + string_agg( + 'scheme:' + ||bankaccountrouting.accountroutingscheme + ||',address:' + ||bankaccountrouting.accountroutingaddress, + '::' + ) as account_routings + from bankaccountrouting + where + bankaccountrouting.accountid = mappedbankaccount.theaccountid + and bankaccountrouting.bankid = mappedbankaccount.bank + ), + (select + string_agg( + 'type:' + || mappedaccountattribute.mtype + ||',code:' + ||mappedaccountattribute.mcode + ||',value:' + ||mappedaccountattribute.mvalue, + '::') as account_attributes + from mappedaccountattribute + where + mappedaccountattribute.maccountid = mappedbankaccount.theaccountid + ) + from mappedbankaccount + WHERE mappedbankaccount.bank = ${bankId.value} + ORDER BY mappedbankaccount.theaccountid """ ++ Fragment.const(ordering) ++ fr""" + LIMIT $limit + OFFSET $offset + """) + .query[(Option[String], Option[String], Option[String], Option[String], Option[String], Option[String], Option[String], Option[String])] + .to[List] + .map(_.map { case (id, bankIdCol, label, number, kind, branchId, routings, attributes) => + AccountDirectoryItem( + id = id.orNull, + bankId = bankIdCol.orNull, + label = label.orNull, + number = number.orNull, + productCode = kind.orNull, + branchId = branchId.orNull, + accountRoutings = parseRoutings(routings.getOrElse("")), + accountAttributes = parseAttributes(attributes.getOrElse("")) + ) + }) + DoobieUtil.runQuery(query) } override def getAccountDirectory(bankId: BankId, queryParams: List[OBPQueryParam], callContext: Option[CallContext]): OBPReturnType[Box[List[AccountDirectoryItem]]] = @@ -1500,13 +1473,9 @@ object LocalMappedConnector extends Connector with MdcLoggable { case OBPOrdering(_, OBPDescending) => "DESC" }.headOption.getOrElse("ASC") - val ordering: SQLSyntax = if (orderBy == "DESC") sqls"DESC" else sqls"ASC" + val ordering: String = if (orderBy == "DESC") "DESC" else "ASC" - val accounts = { - scalikeDB readOnly { implicit session => - findAccountDirectory(bankId, ordering, limit, offset) - } - } + val accounts = findAccountDirectory(bankId, ordering, limit, offset) (Full(accounts), callContext) } diff --git a/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnectorInternal.scala b/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnectorInternal.scala index a77b2e4e31..7c9540a314 100644 --- a/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnectorInternal.scala +++ b/obp-api/src/main/scala/code/bankconnectors/LocalMappedConnectorInternal.scala @@ -1,5 +1,6 @@ package code.bankconnectors +import org.json4s._ import code.accountattribute.AccountAttributeX import code.api.ChargePolicy import code.api.Constant._ @@ -33,9 +34,10 @@ import com.openbankproject.commons.model.enums.TransactionRequestTypes._ import com.openbankproject.commons.model.enums.{TransactionRequestStatus, _} import com.tesobe.CacheKeyFromArguments import net.liftweb.common._ -import net.liftweb.json.JsonAST.JValue -import net.liftweb.json.Serialization.write -import net.liftweb.json.{NoTypeHints, Serialization} +import org.json4s.JsonAST.JValue +import org.json4s.native.Serialization.write +import org.json4s.NoTypeHints +import org.json4s.native.Serialization import net.liftweb.mapper._ import net.liftweb.util.Helpers.{now, tryo} import net.liftweb.util.StringHelpers diff --git a/obp-api/src/main/scala/code/bankconnectors/akka/AkkaConnector_vDec2018.scala b/obp-api/src/main/scala/code/bankconnectors/akka/AkkaConnector_vDec2018.scala index 6a8dc2f1c9..0443a26d75 100644 --- a/obp-api/src/main/scala/code/bankconnectors/akka/AkkaConnector_vDec2018.scala +++ b/obp-api/src/main/scala/code/bankconnectors/akka/AkkaConnector_vDec2018.scala @@ -1,5 +1,6 @@ package code.bankconnectors.akka +import org.json4s._ import java.util.Date import org.apache.pekko.pattern.ask import code.actorsystem.ObpLookupSystem @@ -19,7 +20,7 @@ import com.openbankproject.commons.model.enums.StrongCustomerAuthenticationStatu import com.openbankproject.commons.model.enums.{AccountAttributeType, CardAttributeType, ChallengeType, CustomerAttributeType, ProductAttributeType, StrongCustomerAuthentication, TransactionAttributeType, TransactionRequestStatus} import com.sksamuel.avro4s.SchemaFor import net.liftweb.common.{Box, Full} -import net.liftweb.json.parse +import com.openbankproject.commons.util.JsonAliases.parse import scala.collection.immutable.{List, Nil} import scala.concurrent.Future diff --git a/obp-api/src/main/scala/code/bankconnectors/cardano/CardanoConnector_vJun2025.scala b/obp-api/src/main/scala/code/bankconnectors/cardano/CardanoConnector_vJun2025.scala index 3247a16e56..2a30439aea 100644 --- a/obp-api/src/main/scala/code/bankconnectors/cardano/CardanoConnector_vJun2025.scala +++ b/obp-api/src/main/scala/code/bankconnectors/cardano/CardanoConnector_vJun2025.scala @@ -23,6 +23,7 @@ Osloerstrasse 16/17 Berlin 13359, Germany */ +import org.json4s._ import code.api.util.APIUtil._ import code.api.util.{CallContext, ErrorMessages, NewStyle} import code.api.v6_0_0.TransactionRequestBodyCardanoJsonV600 @@ -32,8 +33,8 @@ import code.util.Helper import code.util.Helper.MdcLoggable import com.openbankproject.commons.model._ import net.liftweb.common._ -import net.liftweb.json -import net.liftweb.json.JValue +import com.openbankproject.commons.util.json +import org.json4s.JValue import scala.collection.mutable.ArrayBuffer import scala.concurrent.Future diff --git a/obp-api/src/main/scala/code/bankconnectors/ethereum/DecodeRawTx.scala b/obp-api/src/main/scala/code/bankconnectors/ethereum/DecodeRawTx.scala index 3de0dbf486..8446793e4c 100644 --- a/obp-api/src/main/scala/code/bankconnectors/ethereum/DecodeRawTx.scala +++ b/obp-api/src/main/scala/code/bankconnectors/ethereum/DecodeRawTx.scala @@ -3,7 +3,8 @@ package code.bankconnectors.ethereum import java.math.BigInteger import org.web3j.crypto.{Hash, RawTransaction, TransactionDecoder, Sign, SignedRawTransaction} import org.web3j.utils.{Numeric => W3Numeric} -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ object DecodeRawTx { diff --git a/obp-api/src/main/scala/code/bankconnectors/ethereum/EthereumConnector_vSept2025.scala b/obp-api/src/main/scala/code/bankconnectors/ethereum/EthereumConnector_vSept2025.scala index e8d819e252..057875a781 100644 --- a/obp-api/src/main/scala/code/bankconnectors/ethereum/EthereumConnector_vSept2025.scala +++ b/obp-api/src/main/scala/code/bankconnectors/ethereum/EthereumConnector_vSept2025.scala @@ -1,5 +1,6 @@ package code.bankconnectors.ethereum +import org.json4s._ import code.api.util.APIUtil._ import code.api.util.{CallContext, ErrorMessages, NewStyle} import code.api.v6_0_0.TransactionRequestBodyEthereumJsonV600 @@ -9,8 +10,8 @@ import code.util.Helper import code.util.Helper.MdcLoggable import com.openbankproject.commons.model._ import net.liftweb.common._ -import net.liftweb.json -import net.liftweb.json.JValue +import com.openbankproject.commons.util.json +import org.json4s.JValue import scala.collection.mutable.ArrayBuffer diff --git a/obp-api/src/main/scala/code/bankconnectors/grpc/GrpcConnector_vFeb2026.scala b/obp-api/src/main/scala/code/bankconnectors/grpc/GrpcConnector_vFeb2026.scala index 9fbe22a600..e8e1fa2e4b 100644 --- a/obp-api/src/main/scala/code/bankconnectors/grpc/GrpcConnector_vFeb2026.scala +++ b/obp-api/src/main/scala/code/bankconnectors/grpc/GrpcConnector_vFeb2026.scala @@ -37,7 +37,8 @@ import com.openbankproject.commons.model.enums.StrongCustomerAuthenticationStatu import com.openbankproject.commons.model.enums._ import com.openbankproject.commons.model.{Meta, _} import net.liftweb.common._ -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.util.StringHelpers import java.util.Date diff --git a/obp-api/src/main/scala/code/bankconnectors/grpc/GrpcUtils.scala b/obp-api/src/main/scala/code/bankconnectors/grpc/GrpcUtils.scala index b6570ad126..a7aebccef3 100644 --- a/obp-api/src/main/scala/code/bankconnectors/grpc/GrpcUtils.scala +++ b/obp-api/src/main/scala/code/bankconnectors/grpc/GrpcUtils.scala @@ -1,5 +1,6 @@ package code.bankconnectors.grpc +import org.json4s._ import code.api.util.APIUtil import code.api.util.ErrorMessages.AdapterUnknownError import code.bankconnectors.Connector @@ -9,7 +10,7 @@ import com.openbankproject.commons.model.TopicTrait import io.grpc.netty.shaded.io.grpc.netty.{GrpcSslContexts, NettyChannelBuilder} import io.grpc.netty.shaded.io.netty.handler.ssl.SslContextBuilder import net.liftweb.common.{Box, Empty} -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import java.io.File import java.util.concurrent.TimeUnit diff --git a/obp-api/src/main/scala/code/bankconnectors/opencorridor/OpenCorridorProcessor.scala b/obp-api/src/main/scala/code/bankconnectors/opencorridor/OpenCorridorProcessor.scala index cc5a965d2d..33b7508b2c 100644 --- a/obp-api/src/main/scala/code/bankconnectors/opencorridor/OpenCorridorProcessor.scala +++ b/obp-api/src/main/scala/code/bankconnectors/opencorridor/OpenCorridorProcessor.scala @@ -1,5 +1,6 @@ package code.bankconnectors.opencorridor +import org.json4s._ import code.api.ChargePolicy import code.api.util.APIUtil.getScaMethodAtInstance import code.api.util.ErrorMessages._ @@ -9,8 +10,9 @@ import code.util.Helper import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model._ import com.openbankproject.commons.model.enums.ChallengeType.OBP_TRANSACTION_REQUEST_CHALLENGE -import net.liftweb.json.Serialization.write -import net.liftweb.json.{NoTypeHints, Serialization} +import org.json4s.native.Serialization.write +import org.json4s.NoTypeHints +import org.json4s.native.Serialization import net.liftweb.util.StringHelpers import scala.concurrent.Future diff --git a/obp-api/src/main/scala/code/bankconnectors/rabbitmq/Adapter/AdapterStubBuilder.scala b/obp-api/src/main/scala/code/bankconnectors/rabbitmq/Adapter/AdapterStubBuilder.scala index 5b563549dc..7f177ef33f 100644 --- a/obp-api/src/main/scala/code/bankconnectors/rabbitmq/Adapter/AdapterStubBuilder.scala +++ b/obp-api/src/main/scala/code/bankconnectors/rabbitmq/Adapter/AdapterStubBuilder.scala @@ -1,5 +1,6 @@ package code.bankconnectors.rabbitmq.Adapter +import org.json4s._ import code.api.ResourceDocs1_4_0.MessageDocsSwaggerDefinitions.successStatus import code.api.util.APIUtil.MessageDoc import code.api.util.CustomJsonFormats.formats @@ -9,9 +10,9 @@ import code.bankconnectors.generator.ConnectorBuilderUtil._ import code.bankconnectors.rabbitmq.RabbitMQConnector_vOct2024 import com.openbankproject.commons.model.{Status, TopicTrait} import com.openbankproject.commons.util.Functions -import net.liftweb.json -import net.liftweb.json.JsonAST.JValue -import net.liftweb.json.{Formats, Serializer, TypeInfo} +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.JValue +import org.json4s.{Formats, Serializer, TypeInfo} import net.liftweb.util.StringHelpers import org.apache.commons.io.FileUtils diff --git a/obp-api/src/main/scala/code/bankconnectors/rabbitmq/Adapter/MockedRabbitMqAdapter.scala b/obp-api/src/main/scala/code/bankconnectors/rabbitmq/Adapter/MockedRabbitMqAdapter.scala index febb088fdc..6020275d28 100644 --- a/obp-api/src/main/scala/code/bankconnectors/rabbitmq/Adapter/MockedRabbitMqAdapter.scala +++ b/obp-api/src/main/scala/code/bankconnectors/rabbitmq/Adapter/MockedRabbitMqAdapter.scala @@ -1,5 +1,6 @@ package code.bankconnectors.rabbitmq.Adapter +import org.json4s._ import bootstrap.liftweb.ToSchemify import code.api.util.APIUtil import code.bankconnectors.rabbitmq.RabbitMQUtils @@ -11,8 +12,8 @@ import com.openbankproject.commons.model._ import com.rabbitmq.client.AMQP.BasicProperties import com.rabbitmq.client._ import net.liftweb.db.DB -import net.liftweb.json -import net.liftweb.json.Serialization.write +import com.openbankproject.commons.util.json +import org.json4s.native.Serialization.write import net.liftweb.mapper.Schemifier import java.util.Date diff --git a/obp-api/src/main/scala/code/bankconnectors/rabbitmq/RabbitMQConnector_vOct2024.scala b/obp-api/src/main/scala/code/bankconnectors/rabbitmq/RabbitMQConnector_vOct2024.scala index aa9f84e430..68c567cd2e 100644 --- a/obp-api/src/main/scala/code/bankconnectors/rabbitmq/RabbitMQConnector_vOct2024.scala +++ b/obp-api/src/main/scala/code/bankconnectors/rabbitmq/RabbitMQConnector_vOct2024.scala @@ -37,7 +37,8 @@ import com.openbankproject.commons.model.enums.StrongCustomerAuthenticationStatu import com.openbankproject.commons.model.enums._ import com.openbankproject.commons.model.{Meta, _} import net.liftweb.common._ -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.util.StringHelpers import java.util.Date diff --git a/obp-api/src/main/scala/code/bankconnectors/rabbitmq/RabbitMQUtils.scala b/obp-api/src/main/scala/code/bankconnectors/rabbitmq/RabbitMQUtils.scala index 53c47c529a..627c5c23ca 100644 --- a/obp-api/src/main/scala/code/bankconnectors/rabbitmq/RabbitMQUtils.scala +++ b/obp-api/src/main/scala/code/bankconnectors/rabbitmq/RabbitMQUtils.scala @@ -1,12 +1,13 @@ package code.bankconnectors.rabbitmq +import org.json4s._ import code.api.util.ErrorMessages.AdapterUnknownError import code.bankconnectors.Connector import code.util.Helper.MdcLoggable import code.api.util.APIUtil import com.openbankproject.commons.model.TopicTrait import net.liftweb.common.{Box, Empty, Failure, Full} -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import com.rabbitmq.client.AMQP.BasicProperties import com.rabbitmq.client._ import java.util diff --git a/obp-api/src/main/scala/code/bankconnectors/rest/RestConnector_vMar2019.scala b/obp-api/src/main/scala/code/bankconnectors/rest/RestConnector_vMar2019.scala index d1701e8c57..a1dd67a998 100644 --- a/obp-api/src/main/scala/code/bankconnectors/rest/RestConnector_vMar2019.scala +++ b/obp-api/src/main/scala/code/bankconnectors/rest/RestConnector_vMar2019.scala @@ -47,11 +47,12 @@ import com.openbankproject.commons.model.enums._ import com.openbankproject.commons.model.{Meta, _} import com.openbankproject.commons.util.{JsonUtils, ReflectUtils} import net.liftweb.common._ -import net.liftweb.json -import net.liftweb.json.Extraction.decompose -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.JsonParser.ParseException -import net.liftweb.json._ +import com.openbankproject.commons.util.json +import org.json4s.Extraction.decompose +import org.json4s.JsonDSL._ +import org.json4s.ParserUtil.ParseException +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.util.Helpers.tryo import org.apache.commons.lang3.StringUtils @@ -7307,7 +7308,7 @@ trait RestConnector_vMar2019 extends Connector with MdcLoggable { val source = decompose(outBound) val builtJson = JsonUtils.buildJson(source, m) compactRender(builtJson) - case _ => net.liftweb.json.Serialization.write(outBound) + case _ => org.json4s.native.Serialization.write(outBound) } val request = prepareHttpRequest(url, method, HttpProtocol("HTTP/1.1"), outBoundJson).withHeaders(buildHeaders(url, outBoundJson, callContext)) logger.debug(s"RestConnector_vMar2019 request is : $request") diff --git a/obp-api/src/main/scala/code/bankconnectors/storedprocedure/MSsqlStoredProcedureBuilder.scala b/obp-api/src/main/scala/code/bankconnectors/storedprocedure/MSsqlStoredProcedureBuilder.scala index cdf3d66688..c899e771e3 100644 --- a/obp-api/src/main/scala/code/bankconnectors/storedprocedure/MSsqlStoredProcedureBuilder.scala +++ b/obp-api/src/main/scala/code/bankconnectors/storedprocedure/MSsqlStoredProcedureBuilder.scala @@ -1,5 +1,6 @@ package code.bankconnectors.storedprocedure +import org.json4s._ import java.io.File import java.util.{Date, TimeZone} @@ -10,9 +11,9 @@ import code.api.util.{APIUtil, OptionalFieldSerializer} import code.bankconnectors.generator.ConnectorBuilderUtil._ import com.openbankproject.commons.model.Status import com.openbankproject.commons.util.Functions -import net.liftweb.json -import net.liftweb.json.JsonAST.JValue -import net.liftweb.json.{Formats, Serializer, TypeInfo} +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.JValue +import org.json4s.{Formats, Serializer, TypeInfo} import net.liftweb.util.StringHelpers import org.apache.commons.io.FileUtils diff --git a/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureConnector_vDec2019.scala b/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureConnector_vDec2019.scala index 4421183ab4..3533fa39c0 100644 --- a/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureConnector_vDec2019.scala +++ b/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureConnector_vDec2019.scala @@ -37,7 +37,8 @@ import com.openbankproject.commons.model.enums.StrongCustomerAuthenticationStatu import com.openbankproject.commons.model.enums._ import com.openbankproject.commons.model.{TopicTrait, _} import net.liftweb.common._ -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.util.StringHelpers import java.util.Date diff --git a/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureUtils.scala b/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureUtils.scala index c0cd3cd4e4..7b2ffcc677 100644 --- a/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureUtils.scala +++ b/obp-api/src/main/scala/code/bankconnectors/storedprocedure/StoredProcedureUtils.scala @@ -1,18 +1,22 @@ package code.bankconnectors.storedprocedure -import java.sql.Connection - +import org.json4s._ +import cats.effect.IO +import cats.effect.unsafe.implicits.global import code.api.util.APIUtil import code.api.util.migration.Migration import code.api.util.migration.Migration.DbFunction import code.bankconnectors.Connector import code.util.Helper.MdcLoggable import com.openbankproject.commons.model.TopicTrait +import com.zaxxer.hikari.HikariDataSource +import doobie._ +import doobie.implicits._ +import doobie.free.{connection => FC} +import doobie.util.transactor.Strategy import net.liftweb.common.{Box, Empty, Full} -import net.liftweb.json.Serialization.write -import net.liftweb.mapper.{DB, Schemifier} -import net.liftweb.util.DefaultConnectionIdentifier -import scalikejdbc.{DB => scalikeDB, _} +import org.json4s.native.Serialization.write +import net.liftweb.mapper.Schemifier /** * Stored procedure utils. @@ -23,8 +27,8 @@ object StoredProcedureUtils extends MdcLoggable{ private implicit val formats = code.api.util.CustomJsonFormats.nullTolerateFormats - // lazy initial DB connection - { + // lazy initial DB connection: separate HikariCP pool dedicated to the stored procedure connector + private lazy val spTransactor: Transactor[IO] = { val driver = APIUtil.getPropsValue("stored_procedure_connector.driver").openOrThrowException("mandatory property stored_procedure_connector.driver is missing!") val url = APIUtil.getPropsValue("stored_procedure_connector.url").openOrThrowException("mandatory property stored_procedure_connector.url is missing!") val user = APIUtil.getPropsValue("stored_procedure_connector.user").openOrThrowException("mandatory property stored_procedure_connector.user is missing!") @@ -34,18 +38,20 @@ object StoredProcedureUtils extends MdcLoggable{ val maxSize = APIUtil.getPropsAsIntValue("stored_procedure_connector.poolMaxSize", 20) val timeoutMillis = APIUtil.getPropsAsLongValue("stored_procedure_connector.poolConnectionTimeoutMillis", 3000L) val validationQuery = APIUtil.getPropsValue("stored_procedure_connector.poolValidationQuery", "select 1") - val poolFactoryName = APIUtil.getPropsValue("stored_procedure_connector.poolFactoryName", "commons-dbcp2") - Class.forName(driver) - val settings = ConnectionPoolSettings( - initialSize = initialSize, - maxSize = maxSize, - connectionTimeoutMillis = timeoutMillis, - validationQuery = validationQuery, - connectionPoolFactoryName = poolFactoryName - ) - ConnectionPool.singleton(url, user, password, settings) + val ds = new HikariDataSource() + ds.setJdbcUrl(url) + ds.setUsername(user) + ds.setPassword(password) + ds.setDriverClassName(driver) + ds.setMinimumIdle(initialSize) + ds.setMaximumPoolSize(maxSize) + ds.setConnectionTimeout(timeoutMillis) + ds.setConnectionTestQuery(validationQuery) + + Transactor.fromDataSource[IO].apply(ds, scala.concurrent.ExecutionContext.global) + .copy(strategy0 = Strategy.void) } @@ -69,66 +75,76 @@ object StoredProcedureUtils extends MdcLoggable{ def getHealth(): StoredProcedureConnectorHealth = { val startTime = System.currentTimeMillis() try { - val (serverName, serverIp, databaseName) = scalikeDB readOnly { implicit session => + val (serverName, serverIp, databaseName) = { val driver = APIUtil.getPropsValue("stored_procedure_connector.driver", "") if (driver.contains("sqlserver")) { // Microsoft SQL Server - val result = sql""" + FC.raw { conn => + val rs = conn.createStatement().executeQuery(""" SELECT @@SERVERNAME AS server_name, CAST(CONNECTIONPROPERTY('local_net_address') AS VARCHAR(50)) AS server_ip, DB_NAME() AS database_name - """.map(rs => ( - Option(rs.string("server_name")), - Option(rs.string("server_ip")), - Option(rs.string("database_name")) - )).single.apply() - result.getOrElse((None, None, None)) + """) + if (rs.next()) ( + Option(rs.getString("server_name")), + Option(rs.getString("server_ip")), + Option(rs.getString("database_name")) + ) else (None, None, None) + }.transact(spTransactor).unsafeRunSync() } else if (driver.contains("postgresql")) { // PostgreSQL - val result = sql""" + FC.raw { conn => + val rs = conn.createStatement().executeQuery(""" SELECT inet_server_addr()::text AS server_ip, current_database() AS database_name, (SELECT setting FROM pg_settings WHERE name = 'cluster_name') AS server_name - """.map(rs => ( - rs.stringOpt("server_name"), - rs.stringOpt("server_ip"), - rs.stringOpt("database_name") - )).single.apply() - result.getOrElse((None, None, None)) + """) + if (rs.next()) ( + Option(rs.getString("server_name")), + Option(rs.getString("server_ip")), + Option(rs.getString("database_name")) + ) else (None, None, None) + }.transact(spTransactor).unsafeRunSync() } else if (driver.contains("oracle")) { // Oracle - val result = sql""" + FC.raw { conn => + val rs = conn.createStatement().executeQuery(""" SELECT SYS_CONTEXT('USERENV', 'SERVER_HOST') AS server_name, SYS_CONTEXT('USERENV', 'IP_ADDRESS') AS server_ip, SYS_CONTEXT('USERENV', 'DB_NAME') AS database_name FROM DUAL - """.map(rs => ( - Option(rs.string("server_name")), - Option(rs.string("server_ip")), - Option(rs.string("database_name")) - )).single.apply() - result.getOrElse((None, None, None)) + """) + if (rs.next()) ( + Option(rs.getString("server_name")), + Option(rs.getString("server_ip")), + Option(rs.getString("database_name")) + ) else (None, None, None) + }.transact(spTransactor).unsafeRunSync() } else if (driver.contains("mysql") || driver.contains("mariadb")) { // MySQL / MariaDB - val result = sql""" + FC.raw { conn => + val rs = conn.createStatement().executeQuery(""" SELECT @@hostname AS server_name, @@bind_address AS server_ip, DATABASE() AS database_name - """.map(rs => ( - Option(rs.string("server_name")), - Option(rs.string("server_ip")), - Option(rs.string("database_name")) - )).single.apply() - result.getOrElse((None, None, None)) + """) + if (rs.next()) ( + Option(rs.getString("server_name")), + Option(rs.getString("server_ip")), + Option(rs.getString("database_name")) + ) else (None, None, None) + }.transact(spTransactor).unsafeRunSync() } else { // Generic fallback - just test connectivity - sql"SELECT 1".map(_ => ()).single.apply() - (None, None, None) + FC.raw { conn => + conn.createStatement().executeQuery("SELECT 1") + (None, None, None) + }.transact(spTransactor).unsafeRunSync() } } val responseTime = System.currentTimeMillis() - startTime @@ -159,11 +175,8 @@ object StoredProcedureUtils extends MdcLoggable{ val procedureParam: String = write(outBound) // convert OutBound to json string logger.debug(s"${StoredProcedureConnector_vDec2019.toString} outBoundJson: $procedureName = $procedureParam" ) val responseJson: String = - scalikeDB autoCommit { implicit session => - val conn: Connection = session.connection - val sql = s"{ CALL $procedureName(?, ?) }" - - val callableStatement = conn.prepareCall(sql) + FC.raw { conn => + val callableStatement = conn.prepareCall(s"{ CALL $procedureName(?, ?) }") try { callableStatement.setString(1, procedureParam) callableStatement.registerOutParameter(2, java.sql.Types.LONGVARCHAR) @@ -173,7 +186,7 @@ object StoredProcedureUtils extends MdcLoggable{ } finally { callableStatement.close() } - } + }.transact(spTransactor).unsafeRunSync() logger.debug(s"${StoredProcedureConnector_vDec2019.toString} inBoundJson: $procedureName = $responseJson" ) Connector.extractAdapterResponse[T](responseJson, Empty) } diff --git a/obp-api/src/main/scala/code/bulkpayment/BulkPaymentHandler.scala b/obp-api/src/main/scala/code/bulkpayment/BulkPaymentHandler.scala index 705ffaa86e..b31cb83d51 100644 --- a/obp-api/src/main/scala/code/bulkpayment/BulkPaymentHandler.scala +++ b/obp-api/src/main/scala/code/bulkpayment/BulkPaymentHandler.scala @@ -1,5 +1,6 @@ package code.bulkpayment +import org.json4s._ import code.api.util.{APIUtil, CallContext, ErrorMessages, NewStyle} import code.api.util.ErrorMessages._ import code.api.v7_0_0.JSONFactory700 @@ -11,8 +12,8 @@ import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model._ import com.openbankproject.commons.model.enums.TransactionRequestStatus import net.liftweb.common.{Box, Full} -import net.liftweb.json.{Extraction, Formats} -import net.liftweb.json.JsonAST.prettyRender +import org.json4s.{Extraction, Formats} +import com.openbankproject.commons.util.JsonAliases.prettyRender import scala.concurrent.Future diff --git a/obp-api/src/main/scala/code/chat/ChatEventBus.scala b/obp-api/src/main/scala/code/chat/ChatEventBus.scala index 6af2f5453a..ab799f3a7f 100644 --- a/obp-api/src/main/scala/code/chat/ChatEventBus.scala +++ b/obp-api/src/main/scala/code/chat/ChatEventBus.scala @@ -1,12 +1,13 @@ package code.chat +import org.json4s._ import code.api.cache.Redis import code.api.util.APIUtil import code.util.Helper.MdcLoggable import io.grpc.stub.StreamObserver -import net.liftweb.json -import net.liftweb.json.{Extraction, JsonAST} -import net.liftweb.json.Serialization.write +import com.openbankproject.commons.util.json +import org.json4s.{Extraction, JsonAST} +import org.json4s.native.Serialization.write import redis.clients.jedis.{Jedis, JedisPubSub} import java.util.concurrent.{ConcurrentHashMap, CopyOnWriteArrayList} diff --git a/obp-api/src/main/scala/code/chat/ChatEventPublisher.scala b/obp-api/src/main/scala/code/chat/ChatEventPublisher.scala index 289967a885..03c4aa8101 100644 --- a/obp-api/src/main/scala/code/chat/ChatEventPublisher.scala +++ b/obp-api/src/main/scala/code/chat/ChatEventPublisher.scala @@ -1,8 +1,9 @@ package code.chat +import org.json4s._ import code.util.Helper.MdcLoggable -import net.liftweb.json -import net.liftweb.json.Serialization.write +import com.openbankproject.commons.util.json +import org.json4s.native.Serialization.write // No async imports needed — broadcastUnreadCounts runs synchronously (1-2 fast queries) /** diff --git a/obp-api/src/main/scala/code/consent/MappedConsent.scala b/obp-api/src/main/scala/code/consent/MappedConsent.scala index da69ce585e..3c27185ae4 100644 --- a/obp-api/src/main/scala/code/consent/MappedConsent.scala +++ b/obp-api/src/main/scala/code/consent/MappedConsent.scala @@ -308,7 +308,8 @@ object MappedConsentProvider extends ConsentProvider with code.util.Helper.MdcLo // Parse JWT payload to denormalise exp and consent items val consentJWTParsed: Option[ConsentJWT] = if (payload != null) { try { - import net.liftweb.json._ + import org.json4s._ + import com.openbankproject.commons.util.JsonAliases._ implicit val formats: DefaultFormats.type = DefaultFormats Some(parse(payload).extract[ConsentJWT]) } catch { diff --git a/obp-api/src/main/scala/code/counterpartylimit/MappedCounterpartyLimit.scala b/obp-api/src/main/scala/code/counterpartylimit/MappedCounterpartyLimit.scala index 0206aced2a..9810f1e2f0 100644 --- a/obp-api/src/main/scala/code/counterpartylimit/MappedCounterpartyLimit.scala +++ b/obp-api/src/main/scala/code/counterpartylimit/MappedCounterpartyLimit.scala @@ -1,14 +1,15 @@ package code.counterpartylimit +import org.json4s._ import code.util.MappedUUID import net.liftweb.common.{Box, Full} import net.liftweb.mapper._ import net.liftweb.util.Helpers.tryo import com.openbankproject.commons.ExecutionContext.Implicits.global -import net.liftweb.json -import net.liftweb.json.Formats -import net.liftweb.json.JsonAST.{JString, JValue} -import net.liftweb.json.JsonDSL._ +import com.openbankproject.commons.util.json +import org.json4s.Formats +import org.json4s.JsonAST.{JString, JValue} +import org.json4s.JsonDSL._ import scala.concurrent.Future import com.openbankproject.commons.model.CounterpartyLimitTrait diff --git a/obp-api/src/main/scala/code/dynamicEndpoint/MapppedDynamicEndpointProvider.scala b/obp-api/src/main/scala/code/dynamicEndpoint/MapppedDynamicEndpointProvider.scala index d4660d7b55..c6ed1189ec 100644 --- a/obp-api/src/main/scala/code/dynamicEndpoint/MapppedDynamicEndpointProvider.scala +++ b/obp-api/src/main/scala/code/dynamicEndpoint/MapppedDynamicEndpointProvider.scala @@ -1,5 +1,6 @@ package code.DynamicEndpoint +import org.json4s._ import java.util.UUID.randomUUID import code.api.cache.Caching import code.api.dynamic.endpoint.helper.DynamicEndpointHelper @@ -7,8 +8,8 @@ import code.api.util.{APIUtil, CustomJsonFormats} import code.util.MappedUUID import com.tesobe.CacheKeyFromArguments import net.liftweb.common.Box -import net.liftweb.json -import net.liftweb.json.JString +import com.openbankproject.commons.util.json +import org.json4s.JString import net.liftweb.mapper._ import net.liftweb.util.Helpers.tryo import net.liftweb.util.Props diff --git a/obp-api/src/main/scala/code/dynamicEntity/DynamicDataProvider.scala b/obp-api/src/main/scala/code/dynamicEntity/DynamicDataProvider.scala index 531523e7a6..00c02eb6da 100644 --- a/obp-api/src/main/scala/code/dynamicEntity/DynamicDataProvider.scala +++ b/obp-api/src/main/scala/code/dynamicEntity/DynamicDataProvider.scala @@ -1,8 +1,9 @@ package code.DynamicData +import org.json4s._ import com.openbankproject.commons.model.{Converter, JsonFieldReName} import net.liftweb.common.Box -import net.liftweb.json.JObject +import org.json4s.JObject import net.liftweb.util.SimpleInjector object DynamicDataProvider extends SimpleInjector { diff --git a/obp-api/src/main/scala/code/dynamicEntity/DynamicEntityProvider.scala b/obp-api/src/main/scala/code/dynamicEntity/DynamicEntityProvider.scala index 3b7f59aac8..8566b6d1a2 100644 --- a/obp-api/src/main/scala/code/dynamicEntity/DynamicEntityProvider.scala +++ b/obp-api/src/main/scala/code/dynamicEntity/DynamicEntityProvider.scala @@ -10,8 +10,9 @@ import com.openbankproject.commons.model.enums.{DynamicEntityFieldType, DynamicE import com.openbankproject.commons.model._ import com.openbankproject.commons.model.enums.DynamicEntityFieldType.DATE_WITH_DAY import net.liftweb.common.{Box, EmptyBox, Full} -import net.liftweb.json.JsonDSL._ -import net.liftweb.json._ +import org.json4s.JsonDSL._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.util.SimpleInjector import org.apache.commons.lang3.StringUtils diff --git a/obp-api/src/main/scala/code/dynamicEntity/MapppedDynamicDataProvider.scala b/obp-api/src/main/scala/code/dynamicEntity/MapppedDynamicDataProvider.scala index 9c7078ade5..f1213be0ce 100644 --- a/obp-api/src/main/scala/code/dynamicEntity/MapppedDynamicDataProvider.scala +++ b/obp-api/src/main/scala/code/dynamicEntity/MapppedDynamicDataProvider.scala @@ -1,13 +1,14 @@ package code.DynamicData +import org.json4s._ import code.api.util.CustomJsonFormats import code.api.util.ErrorMessages.DynamicDataNotFound import code.util.MappedUUID import net.liftweb.common.{Box, Failure, Full} -import net.liftweb.json -import net.liftweb.json.JObject -import net.liftweb.json.JsonAST.JString -import net.liftweb.json.JsonDSL._ +import com.openbankproject.commons.util.json +import org.json4s.JObject +import org.json4s.JsonAST.JString +import org.json4s.JsonDSL._ import net.liftweb.mapper._ import net.liftweb.util.Helpers.tryo import org.apache.commons.lang3.StringUtils diff --git a/obp-api/src/main/scala/code/dynamicMessageDoc/DynamicMessageDoc.scala b/obp-api/src/main/scala/code/dynamicMessageDoc/DynamicMessageDoc.scala index 8780ceb000..4aac12a801 100644 --- a/obp-api/src/main/scala/code/dynamicMessageDoc/DynamicMessageDoc.scala +++ b/obp-api/src/main/scala/code/dynamicMessageDoc/DynamicMessageDoc.scala @@ -1,7 +1,8 @@ package code.dynamicMessageDoc +import org.json4s._ import code.util.UUIDString -import net.liftweb.json +import com.openbankproject.commons.util.json import net.liftweb.mapper._ import scala.collection.immutable.List diff --git a/obp-api/src/main/scala/code/dynamicMessageDoc/DynamicMessageDocProvider.scala b/obp-api/src/main/scala/code/dynamicMessageDoc/DynamicMessageDocProvider.scala index c62c70d167..c47a94631a 100644 --- a/obp-api/src/main/scala/code/dynamicMessageDoc/DynamicMessageDocProvider.scala +++ b/obp-api/src/main/scala/code/dynamicMessageDoc/DynamicMessageDocProvider.scala @@ -1,9 +1,10 @@ package code.dynamicMessageDoc +import org.json4s._ import java.net.URLDecoder import com.openbankproject.commons.model.JsonFieldReName import net.liftweb.common.Box -import net.liftweb.json.JsonAST.JValue +import org.json4s.JsonAST.JValue import net.liftweb.util.SimpleInjector import scala.collection.immutable.List diff --git a/obp-api/src/main/scala/code/dynamicResourceDoc/DynamicResourceDoc.scala b/obp-api/src/main/scala/code/dynamicResourceDoc/DynamicResourceDoc.scala index d2db91ec00..386447110c 100644 --- a/obp-api/src/main/scala/code/dynamicResourceDoc/DynamicResourceDoc.scala +++ b/obp-api/src/main/scala/code/dynamicResourceDoc/DynamicResourceDoc.scala @@ -1,7 +1,8 @@ package code.dynamicResourceDoc +import org.json4s._ import code.util.UUIDString -import net.liftweb.json +import com.openbankproject.commons.util.json import net.liftweb.mapper._ import org.apache.commons.lang3.StringUtils diff --git a/obp-api/src/main/scala/code/dynamicResourceDoc/DynamicResourceDocProvider.scala b/obp-api/src/main/scala/code/dynamicResourceDoc/DynamicResourceDocProvider.scala index db23aef984..9ec0927ae6 100644 --- a/obp-api/src/main/scala/code/dynamicResourceDoc/DynamicResourceDocProvider.scala +++ b/obp-api/src/main/scala/code/dynamicResourceDoc/DynamicResourceDocProvider.scala @@ -1,11 +1,12 @@ package code.dynamicResourceDoc +import org.json4s._ import com.openbankproject.commons.model.JsonFieldReName import com.openbankproject.commons.util.JsonAble import net.liftweb.common.Box -import net.liftweb.json -import net.liftweb.json.JsonAST.JNothing -import net.liftweb.json.{Formats, JValue, JsonAST} +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.JNothing +import org.json4s.{Formats, JValue, JsonAST} import net.liftweb.util.SimpleInjector import org.apache.commons.lang3.StringUtils diff --git a/obp-api/src/main/scala/code/dynamicResourceDoc/MappedDynamicResourceDocProvider.scala b/obp-api/src/main/scala/code/dynamicResourceDoc/MappedDynamicResourceDocProvider.scala index 142e64b2e9..e2b86c544e 100644 --- a/obp-api/src/main/scala/code/dynamicResourceDoc/MappedDynamicResourceDocProvider.scala +++ b/obp-api/src/main/scala/code/dynamicResourceDoc/MappedDynamicResourceDocProvider.scala @@ -1,10 +1,11 @@ package code.dynamicResourceDoc +import org.json4s._ import code.api.cache.Caching import code.api.util.APIUtil import com.tesobe.CacheKeyFromArguments import net.liftweb.common.{Box, Empty, Full} -import net.liftweb.json +import com.openbankproject.commons.util.json import net.liftweb.mapper._ import net.liftweb.util.Helpers.tryo import net.liftweb.util.Props diff --git a/obp-api/src/main/scala/code/endpointMapping/EndpointMappingProvider.scala b/obp-api/src/main/scala/code/endpointMapping/EndpointMappingProvider.scala index 3a15bfa162..18f65ceaac 100644 --- a/obp-api/src/main/scala/code/endpointMapping/EndpointMappingProvider.scala +++ b/obp-api/src/main/scala/code/endpointMapping/EndpointMappingProvider.scala @@ -2,12 +2,13 @@ package code.endpointMapping /* For Connector endpoint routing, star connector use this provider to find proxy connector name */ +import org.json4s._ import code.dynamicEntity.DynamicEntity import com.openbankproject.commons.model.{Converter, JsonFieldReName} import net.liftweb.common.Box -import net.liftweb.json -import net.liftweb.json.Formats -import net.liftweb.json.JsonAST.{JArray, JField, JNull, JObject, JString, JValue} +import com.openbankproject.commons.util.json +import org.json4s.Formats +import org.json4s.JsonAST.{JArray, JField, JNull, JObject, JString, JValue} import net.liftweb.util.SimpleInjector object EndpointMappingProvider extends SimpleInjector { diff --git a/obp-api/src/main/scala/code/endpointMapping/MappedEndpointMappingProvider.scala b/obp-api/src/main/scala/code/endpointMapping/MappedEndpointMappingProvider.scala index 2a52b6bbd3..e10213ad6d 100644 --- a/obp-api/src/main/scala/code/endpointMapping/MappedEndpointMappingProvider.scala +++ b/obp-api/src/main/scala/code/endpointMapping/MappedEndpointMappingProvider.scala @@ -1,15 +1,16 @@ package code.endpointMapping +import org.json4s._ import code.api.util.CustomJsonFormats import code.util.MappedUUID import net.liftweb.common.{Box, Empty, EmptyBox, Full} -import net.liftweb.json +import com.openbankproject.commons.util.json import net.liftweb.mapper._ import net.liftweb.util.Helpers.tryo import org.apache.commons.lang3.StringUtils -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import com.openbankproject.commons.util.Functions.Implicits._ -import net.liftweb.json.JsonAST.JArray +import org.json4s.JsonAST.JArray object MappedEndpointMappingProvider extends EndpointMappingProvider with CustomJsonFormats{ diff --git a/obp-api/src/main/scala/code/endpointTag/EndpointMappingProvider.scala b/obp-api/src/main/scala/code/endpointTag/EndpointMappingProvider.scala index 4b349cd685..8bd8f2e2e7 100644 --- a/obp-api/src/main/scala/code/endpointTag/EndpointMappingProvider.scala +++ b/obp-api/src/main/scala/code/endpointTag/EndpointMappingProvider.scala @@ -2,10 +2,11 @@ package code.endpointTag /* For Connector endpoint routing, star connector use this provider to find proxy connector name */ +import org.json4s._ import com.openbankproject.commons.model.{Converter, JsonFieldReName, EndpointTagT} import net.liftweb.common.Box -import net.liftweb.json.Formats -import net.liftweb.json.JsonAST.{JField, JNull, JObject, JString} +import org.json4s.Formats +import org.json4s.JsonAST.{JField, JNull, JObject, JString} import net.liftweb.util.SimpleInjector object EndpointTagProvider extends SimpleInjector { diff --git a/obp-api/src/main/scala/code/fx/fx.scala b/obp-api/src/main/scala/code/fx/fx.scala index 8511a725cc..6710a62c5e 100644 --- a/obp-api/src/main/scala/code/fx/fx.scala +++ b/obp-api/src/main/scala/code/fx/fx.scala @@ -7,7 +7,8 @@ import code.bankconnectors.LocalMappedConnectorInternal import code.util.Helper.MdcLoggable import com.openbankproject.commons.model.BankId import com.tesobe.CacheKeyFromArguments -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import scala.concurrent.duration._ diff --git a/obp-api/src/main/scala/code/methodrouting/MappedMethodRoutingProvider.scala b/obp-api/src/main/scala/code/methodrouting/MappedMethodRoutingProvider.scala index 9bc1f1da46..96ed77c1bb 100644 --- a/obp-api/src/main/scala/code/methodrouting/MappedMethodRoutingProvider.scala +++ b/obp-api/src/main/scala/code/methodrouting/MappedMethodRoutingProvider.scala @@ -1,15 +1,16 @@ package code.methodrouting +import org.json4s._ import code.api.util.CustomJsonFormats import code.util.MappedUUID import net.liftweb.common.{Box, Empty, EmptyBox, Full} -import net.liftweb.json +import com.openbankproject.commons.util.json import net.liftweb.mapper._ import net.liftweb.util.Helpers.tryo import org.apache.commons.lang3.StringUtils -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import com.openbankproject.commons.util.Functions.Implicits._ -import net.liftweb.json.JsonAST.JArray +import org.json4s.JsonAST.JArray object MappedMethodRoutingProvider extends MethodRoutingProvider with CustomJsonFormats{ diff --git a/obp-api/src/main/scala/code/methodrouting/MethodRoutingProvider.scala b/obp-api/src/main/scala/code/methodrouting/MethodRoutingProvider.scala index 76abbcd5de..ffafd1c2ab 100644 --- a/obp-api/src/main/scala/code/methodrouting/MethodRoutingProvider.scala +++ b/obp-api/src/main/scala/code/methodrouting/MethodRoutingProvider.scala @@ -2,13 +2,14 @@ package code.methodrouting /* For Connector method routing, star connector use this provider to find proxy connector name */ +import org.json4s._ import com.openbankproject.commons.model.{Converter, JsonFieldReName} import com.openbankproject.commons.util.JsonAble import net.liftweb.common.Box -import net.liftweb.json -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.{Formats, JValue} -import net.liftweb.json.JsonAST.{JArray, JBool, JField, JNull, JObject, JString} +import com.openbankproject.commons.util.json +import org.json4s.JsonDSL._ +import org.json4s.{Formats, JValue} +import org.json4s.JsonAST.{JArray, JBool, JField, JNull, JObject, JString} import net.liftweb.util.SimpleInjector object MethodRoutingProvider extends SimpleInjector { diff --git a/obp-api/src/main/scala/code/model/BankingData.scala b/obp-api/src/main/scala/code/model/BankingData.scala index b438cd21eb..cec96a5e94 100644 --- a/obp-api/src/main/scala/code/model/BankingData.scala +++ b/obp-api/src/main/scala/code/model/BankingData.scala @@ -26,6 +26,7 @@ TESOBE (http://www.tesobe.com/) */ package code.model +import org.json4s._ import code.accountholders.AccountHolders import code.api.util.APIUtil.{OBPReturnType, canGrantAccessToMultipleViews, canGrantAccessToView, canRevokeAccessToAllViews, canRevokeAccessToView, unboxFullOrFail} import code.api.util.ErrorMessages._ @@ -39,8 +40,8 @@ import code.views.system.AccountAccess import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model._ import net.liftweb.common._ -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.{JArray, JObject} +import org.json4s.JsonDSL._ +import org.json4s.{JArray, JObject} import java.util.Date import scala.collection.immutable.{List, Set} diff --git a/obp-api/src/main/scala/code/model/Metadata.scala b/obp-api/src/main/scala/code/model/Metadata.scala index cdf24fc576..2102634d3b 100644 --- a/obp-api/src/main/scala/code/model/Metadata.scala +++ b/obp-api/src/main/scala/code/model/Metadata.scala @@ -27,11 +27,12 @@ TESOBE (http://www.tesobe.com/) package code.model +import org.json4s._ import code.util.Helper import com.openbankproject.commons.model._ import net.liftweb.common.{Box, Full} -import net.liftweb.json.JsonAST.JObject -import net.liftweb.json.JsonDSL._ +import org.json4s.JsonAST.JObject +import org.json4s.JsonDSL._ case class CommentExtended(val comment: Comment) { diff --git a/obp-api/src/main/scala/code/model/ModeratedBankingData.scala b/obp-api/src/main/scala/code/model/ModeratedBankingData.scala index cbe1eeb622..4041da0803 100644 --- a/obp-api/src/main/scala/code/model/ModeratedBankingData.scala +++ b/obp-api/src/main/scala/code/model/ModeratedBankingData.scala @@ -27,6 +27,7 @@ TESOBE (http://www.tesobe.com/) package code.model +import org.json4s._ import scala.language.implicitConversions import code.api.Constant._ import code.api.util.ErrorMessages._ @@ -35,8 +36,8 @@ import code.model.Moderation.Moderated import code.util.Helper import com.openbankproject.commons.model._ import net.liftweb.common.{Box, Failure} -import net.liftweb.json.JsonAST.{JField, JObject, JString} -import net.liftweb.json.JsonDSL._ +import org.json4s.JsonAST.{JField, JObject, JString} +import org.json4s.JsonDSL._ import java.util.Date diff --git a/obp-api/src/main/scala/code/model/User.scala b/obp-api/src/main/scala/code/model/User.scala index bc8d2906a4..a86819cd01 100644 --- a/obp-api/src/main/scala/code/model/User.scala +++ b/obp-api/src/main/scala/code/model/User.scala @@ -27,6 +27,7 @@ TESOBE (http://www.tesobe.com/) package code.model +import org.json4s._ import code.api.Constant._ import code.api.UserNotFound import code.api.util.{APIUtil, CallContext} @@ -39,8 +40,8 @@ import code.views.Views import code.views.system.{AccountAccess, ViewDefinition} import com.openbankproject.commons.model.{BankIdAccountId, _} import net.liftweb.common.{Box, Failure, Full} -import net.liftweb.json.JsonAST.JObject -import net.liftweb.json.JsonDSL._ +import org.json4s.JsonAST.JObject +import org.json4s.JsonDSL._ import net.liftweb.mapper.By case class UserExtended(val user: User) extends MdcLoggable { diff --git a/obp-api/src/main/scala/code/model/dataAccess/AuthUser.scala b/obp-api/src/main/scala/code/model/dataAccess/AuthUser.scala index 15a180fc4d..35ecf6b8d5 100644 --- a/obp-api/src/main/scala/code/model/dataAccess/AuthUser.scala +++ b/obp-api/src/main/scala/code/model/dataAccess/AuthUser.scala @@ -552,7 +552,7 @@ import net.liftweb.util.Helpers._ .issueTime(new java.util.Date()) .build() val jwtToken = CertificateUtil.jwtWithHmacProtection(claimsSet) - val validationLink = portalUrl+"/user-validation?token="+urlEncode(jwtToken) + val validationLink = portalUrl+"/user-validation?token="+java.net.URLEncoder.encode(jwtToken, "UTF-8") val email: String = user.getEmail val textContent = Some(s"Welcome! Please validate your account by clicking the following link: $validationLink") val htmlContent = Some(s"

Welcome! Please validate your account by clicking the following link:

$validationLink

") @@ -1269,7 +1269,7 @@ def restoreSomeSessions(): Unit = { case Full(u) if u.name == name && u.emailAddress == email => authUser.resetUniqueId().save val resetLink = Constant.HostName+ - passwordResetPath.mkString("/", "/", "/")+urlEncode(authUser.getUniqueId()) + passwordResetPath.mkString("/", "/", "/")+java.net.URLEncoder.encode(authUser.getUniqueId(), "UTF-8") logger.warn(s"Password reset url is created for this user: $email") // TODO Notify via email appropriate persons resetLink diff --git a/obp-api/src/main/scala/code/model/dataAccess/BankAccountCreationDispatcher.scala b/obp-api/src/main/scala/code/model/dataAccess/BankAccountCreationDispatcher.scala index dc6deb0e0b..50fa3ac74d 100644 --- a/obp-api/src/main/scala/code/model/dataAccess/BankAccountCreationDispatcher.scala +++ b/obp-api/src/main/scala/code/model/dataAccess/BankAccountCreationDispatcher.scala @@ -44,56 +44,25 @@ package com.tesobe.model { package code.model.dataAccess { import code.accountholders.AccountHolders - import code.api.Constant._ import code.api.util.{APIUtil, CallContext} - import code.bankconnectors.{Connector, LocalMappedConnectorInternal} + import code.bankconnectors.LocalMappedConnectorInternal import code.users.Users import code.util.Helper.MdcLoggable - import code.views.Views import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model._ - import com.rabbitmq.client.{Channel, ConnectionFactory} + import com.rabbitmq.client.{AMQP, ConnectionFactory, DefaultConsumer, Envelope} import com.tesobe.model.{CreateBankAccount, UpdateBankAccount} - import net.liftmodules.amqp.{AMQPAddListener, AMQPDispatcher, AMQPMessage, SerializedConsumer} - import net.liftweb.actor.LiftActor import net.liftweb.common.{Failure, Full} - -/** - * an AMQP dispatcher that waits for message coming from a specif queue - * and dispatching them to the subscribed actors - */ - class BankAccountCreationDispatcher[T](factory: ConnectionFactory) - extends AMQPDispatcher[T](factory) { - override def configure(channel: Channel) { - channel.exchangeDeclare("directExchange4", "direct", false) - channel.queueDeclare("createBankAccount", false, false, false, null) - channel.queueBind ("createBankAccount", "directExchange4", "createBankAccount") - channel.basicConsume("createBankAccount", false, new SerializedConsumer(channel, this)) - } - } + import java.io.{ByteArrayInputStream, ObjectInputFilter, ObjectInputStream} object BankAccountCreation extends MdcLoggable { - - /** - * 1 Set the User as the account Holder. - * 2 Create `Owner` view if the account do not have `Owner` view. - * 3 Add Permission to `Owner` view - * - * @param bankId - * @param accountId - * @param user the user can be Login user or other users(Have the CanCreateAccount role) - * - * @return This is a procedure, no return value. Just use the side effect. - */ - def setAccountHolderAndRefreshUserAccountAccess(bankId : BankId, accountId : AccountId, user: User, callContext: Option[CallContext]) = { - // 1st-getOrCreateAccountHolder: in this method, we only create the account holder, no view, account access involved here. + + def setAccountHolderAndRefreshUserAccountAccess(bankId: BankId, accountId: AccountId, user: User, callContext: Option[CallContext]) = { AccountHolders.accountHolders.vend.getOrCreateAccountHolder(user: User, BankIdAccountId(bankId, accountId)) - - // 2rd-refreshUserAccountAccess: in this method, we will simulate onboarding bank user processes. @refreshUserAccountAccess definition. AuthUser.refreshUser(user, callContext) } - + } object BankAccountCreationListener extends MdcLoggable { @@ -107,59 +76,83 @@ package code.model.dataAccess { setVirtualHost(DEFAULT_VHOST) } - val amqp = new BankAccountCreationDispatcher[CreateBankAccount](factory) - - val createBankAccountListener = new LiftActor { - protected def messageHandler = { - case msg@AMQPMessage(message: CreateBankAccount) => { - logger.debug(s"got message to create account/bank: ${message.accountNumber} / ${message.bankIdentifier}") - - //TODO: Revise those dummy values - val accountType = "AMPQ" - val accountLabel = message.accountNumber - val currency = "EUR" - - val foundUser = Users.users.vend.getUserByProviderId(message.accountOwnerProvider, message.accountOwnerId) - val result = for { - user <- foundUser ?~! - s"user ${message.accountOwnerId} at ${message.accountOwnerProvider} not found. Could not create the account with owner view" - (_, bankAccount) <- LocalMappedConnectorInternal.createBankAndAccount( - message.bankName, - message.bankIdentifier, - message.accountNumber, - accountType, accountLabel, - currency, user.name, - "", - "", - "", //added field in V220 - None - ) - } yield { - logger.debug(s"created account with id ${bankAccount.bankId.value} with number ${bankAccount.number} at bank with identifier ${message.bankIdentifier}") - // Use async version and handle Future result - BankAccountCreation.setAccountHolderAndRefreshUserAccountAccess(bankAccount.bankId, bankAccount.accountId, user, None).map { _ => - logger.debug(s"Successfully set account holder and refreshed user account access for account ${bankAccount.accountId.value}") - }.recover { - case ex: Exception => - logger.error(s"Failed to set account holder and refresh user account access: ${ex.getMessage}", ex) - } - bankAccount - } - - result match { - case Full(_) => - logger.debug(s"Send message to get updates for the account with account number ${message.accountNumber} at ${message.bankIdentifier}") - UpdatesRequestSender.sendMsg(UpdateBankAccount(message.accountNumber, message.bankIdentifier)) - case Failure(msg, _, _) => logger.warn(s"account creation failed: $msg") - case _ => logger.warn(s"account creation failed") - } - + def handleMessage(message: CreateBankAccount): Unit = { + logger.debug(s"got message to create account/bank: ${message.accountNumber} / ${message.bankIdentifier}") + + val accountType = "AMPQ" + val accountLabel = message.accountNumber + val currency = "EUR" + + val foundUser = Users.users.vend.getUserByProviderId(message.accountOwnerProvider, message.accountOwnerId) + val result = for { + user <- foundUser ?~! + s"user ${message.accountOwnerId} at ${message.accountOwnerProvider} not found. Could not create the account with owner view" + (_, bankAccount) <- LocalMappedConnectorInternal.createBankAndAccount( + message.bankName, + message.bankIdentifier, + message.accountNumber, + accountType, accountLabel, + currency, user.name, + "", + "", + "", //added field in V220 + None + ) + } yield { + logger.debug(s"created account with id ${bankAccount.bankId.value} with number ${bankAccount.number} at bank with identifier ${message.bankIdentifier}") + BankAccountCreation.setAccountHolderAndRefreshUserAccountAccess(bankAccount.bankId, bankAccount.accountId, user, None).map { _ => + logger.debug(s"Successfully set account holder and refreshed user account access for account ${bankAccount.accountId.value}") + }.recover { + case ex: Exception => + logger.error(s"Failed to set account holder and refresh user account access: ${ex.getMessage}", ex) } + bankAccount + } + + result match { + case Full(_) => + logger.debug(s"Send message to get updates for the account with account number ${message.accountNumber} at ${message.bankIdentifier}") + UpdatesRequestSender.sendMsg(UpdateBankAccount(message.accountNumber, message.bankIdentifier)) + case Failure(msg, _, _) => logger.warn(s"account creation failed: $msg") + case _ => logger.warn(s"account creation failed") } } - def startListen = { + + def startListen: Unit = { logger.debug("started to listen for bank account creation messages") - amqp ! AMQPAddListener(createBankAccountListener) + val connection = factory.newConnection() + val channel = connection.createChannel() + channel.exchangeDeclare("directExchange4", "direct", false) + channel.queueDeclare("createBankAccount", false, false, false, null) + channel.queueBind("createBankAccount", "directExchange4", "createBankAccount") + channel.basicConsume("createBankAccount", false, new DefaultConsumer(channel) { + override def handleDelivery( + consumerTag: String, + envelope: Envelope, + properties: AMQP.BasicProperties, + body: Array[Byte] + ): Unit = { + try { + val ois = new ObjectInputStream(new ByteArrayInputStream(body)) + // Allowlist: only CreateBankAccount (5 String fields) may be deserialized. + // Rejects gadget-chain classes (commons-collections, beanutils, etc.) at the + // filter layer, before readObject() can instantiate them. + ois.setObjectInputFilter(ObjectInputFilter.Config.createFilter( + "com.tesobe.model.CreateBankAccount;java.lang.*;!*")) + val msg = ois.readObject().asInstanceOf[CreateBankAccount] + handleMessage(msg) + channel.basicAck(envelope.getDeliveryTag, false) + } catch { + case ex: Exception => + logger.error(s"Failed to process AMQP message: ${ex.getMessage}", ex) + // Deliberately do not requeue: a failed create-account message is dropped rather + // than redelivered in a tight loop. This preserves the prior actor behaviour + // (failures were logged, never retried). Switch to a dead-letter queue if the + // adapter ever needs durable retry semantics. + channel.basicNack(envelope.getDeliveryTag, false, false) + } + } + }) } } -} \ No newline at end of file +} diff --git a/obp-api/src/main/scala/code/model/dataAccess/UpdatesRequestSender.scala b/obp-api/src/main/scala/code/model/dataAccess/UpdatesRequestSender.scala index 886658d39b..071e73e7d6 100644 --- a/obp-api/src/main/scala/code/model/dataAccess/UpdatesRequestSender.scala +++ b/obp-api/src/main/scala/code/model/dataAccess/UpdatesRequestSender.scala @@ -42,11 +42,10 @@ package code.model.dataAccess { import code.api.util.APIUtil import code.util.Helper.MdcLoggable - import com.rabbitmq.client.{Channel, ConnectionFactory} + import com.rabbitmq.client.ConnectionFactory import com.tesobe.model.UpdateBankAccount - import net.liftmodules.amqp.{AMQPMessage, AMQPSender} - + import java.io.{ByteArrayOutputStream, ObjectOutputStream} object UpdatesRequestSender extends MdcLoggable { private val factory = new ConnectionFactory { @@ -56,23 +55,32 @@ package code.model.dataAccess { setUsername(APIUtil.getPropsValue("connection.user", DEFAULT_USER)) setPassword(APIUtil.getPropsValue("connection.password", DEFAULT_PASS)) setVirtualHost(DEFAULT_VHOST) + // Reuse a single connection across messages; the client transparently re-establishes + // a dropped connection on the next publish. + setAutomaticRecoveryEnabled(true) } - private val amqp = new UpdateRequestsAMQPSender(factory, "directExchange3", "transactions") - - - def sendMsg(message: UpdateBankAccount) = { - logger.info(s"""Send message to get updates for the account ${message.accountNumber} at ${message.bankNationalIdentifier}""") - amqp ! AMQPMessage(message) + // One long-lived connection, initialised on first use. Channels are created per call: + // a Connection is thread-safe and meant to be shared, a Channel is not. + private lazy val connection = factory.newConnection() + + def sendMsg(message: UpdateBankAccount): Unit = { + logger.info(s"Send message to get updates for the account ${message.accountNumber} at ${message.bankNationalIdentifier}") + try { + val channel = connection.createChannel() + try { + val bos = new ByteArrayOutputStream() + val oos = new ObjectOutputStream(bos) + oos.writeObject(message) + oos.flush() + channel.basicPublish("directExchange3", "transactions", null, bos.toByteArray) + } finally { + if (channel.isOpen) channel.close() + } + } catch { + case ex: Exception => + logger.error(s"Failed to send AMQP update message: ${ex.getMessage}", ex) + } } } - - class UpdateRequestsAMQPSender(cf: ConnectionFactory, exchange: String, routingKey: String) - extends AMQPSender[UpdateBankAccount](cf, exchange, routingKey) { - override def configure(channel: Channel) = { - val conn = cf.newConnection() - val channel = conn.createChannel() - channel - } - } -} \ No newline at end of file +} diff --git a/obp-api/src/main/scala/code/obp/grpc/ObpGrpcServer.scala b/obp-api/src/main/scala/code/obp/grpc/ObpGrpcServer.scala index 57ccc433d9..6184b81bf5 100644 --- a/obp-api/src/main/scala/code/obp/grpc/ObpGrpcServer.scala +++ b/obp-api/src/main/scala/code/obp/grpc/ObpGrpcServer.scala @@ -1,5 +1,6 @@ package code.obp.grpc +import org.json4s._ import scala.language.existentials import scala.language.reflectiveCalls import code.api.util.newstyle.ViewNewStyle @@ -16,9 +17,9 @@ import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model._ import io.grpc.{Server, ServerBuilder} import net.liftweb.common.Full -import net.liftweb.json.JsonAST.{JField, JObject} -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.{Extraction, JArray} +import org.json4s.JsonAST.{JField, JObject} +import org.json4s.JsonDSL._ +import org.json4s.{Extraction, JArray} import scala.concurrent.{ExecutionContext, Future} diff --git a/obp-api/src/main/scala/code/obp/grpc/chat/ChatStreamServiceImpl.scala b/obp-api/src/main/scala/code/obp/grpc/chat/ChatStreamServiceImpl.scala index 74a0ace2de..8c016d3734 100644 --- a/obp-api/src/main/scala/code/obp/grpc/chat/ChatStreamServiceImpl.scala +++ b/obp-api/src/main/scala/code/obp/grpc/chat/ChatStreamServiceImpl.scala @@ -1,13 +1,14 @@ package code.obp.grpc.chat +import org.json4s._ import code.chat.{ChatEventBus, ChatPermissions, ParticipantTrait} import code.obp.grpc.chat.api._ import code.util.Helper.MdcLoggable import com.google.protobuf.timestamp.Timestamp import io.grpc.Status import io.grpc.stub.{ServerCallStreamObserver, StreamObserver} -import net.liftweb.json -import net.liftweb.json.JsonAST.JValue +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.JValue import java.time.Instant import scala.util.Try diff --git a/obp-api/src/main/scala/code/obp/grpc/logcache/LogCacheStreamServiceImpl.scala b/obp-api/src/main/scala/code/obp/grpc/logcache/LogCacheStreamServiceImpl.scala index 725e366ba0..3e2e541306 100644 --- a/obp-api/src/main/scala/code/obp/grpc/logcache/LogCacheStreamServiceImpl.scala +++ b/obp-api/src/main/scala/code/obp/grpc/logcache/LogCacheStreamServiceImpl.scala @@ -1,5 +1,6 @@ package code.obp.grpc.logcache +import org.json4s._ import code.api.cache.RedisLogger import code.api.util.APIUtil import code.api.util.APIUtil.UserOnly @@ -10,8 +11,8 @@ import code.util.Helper.MdcLoggable import com.google.protobuf.timestamp.Timestamp import io.grpc.Status import io.grpc.stub.{ServerCallStreamObserver, StreamObserver} -import net.liftweb.json -import net.liftweb.json.JsonAST.JValue +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.JValue /** * gRPC service implementation for log cache streaming. diff --git a/obp-api/src/main/scala/code/obp/grpc/metricsstream/MetricsStreamServiceImpl.scala b/obp-api/src/main/scala/code/obp/grpc/metricsstream/MetricsStreamServiceImpl.scala index 502037d7a7..104b425f53 100644 --- a/obp-api/src/main/scala/code/obp/grpc/metricsstream/MetricsStreamServiceImpl.scala +++ b/obp-api/src/main/scala/code/obp/grpc/metricsstream/MetricsStreamServiceImpl.scala @@ -1,5 +1,6 @@ package code.obp.grpc.metricsstream +import org.json4s._ import code.api.util.APIUtil import code.api.util.APIUtil.UserOnly import code.api.util.ApiRole.canReadMetrics @@ -9,8 +10,8 @@ import code.obp.grpc.metricsstream.api._ import code.util.Helper.MdcLoggable import io.grpc.Status import io.grpc.stub.{ServerCallStreamObserver, StreamObserver} -import net.liftweb.json -import net.liftweb.json.JsonAST.JValue +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.JValue /** * gRPC service implementation for metrics streaming. diff --git a/obp-api/src/main/scala/code/search/search.scala b/obp-api/src/main/scala/code/search/search.scala index 358b062ff4..6ef39c75a9 100644 --- a/obp-api/src/main/scala/code/search/search.scala +++ b/obp-api/src/main/scala/code/search/search.scala @@ -1,5 +1,6 @@ package code.search +import org.json4s._ import java.nio.charset.Charset import java.util.Date @@ -11,10 +12,8 @@ import com.sksamuel.elastic4s.{ElasticClient, ElasticProperties} import dispatch.Defaults._ import dispatch.{Http, url, _} import net.liftweb.common.{Box, Empty, Failure, Full} -import net.liftweb.json -import net.liftweb.json.JsonAST -import net.liftweb.json.JsonAST._ -import net.liftweb.util.Helpers +import com.openbankproject.commons.util.json +import org.json4s.JsonAST import scala.concurrent.Await import scala.concurrent.duration.Duration import scala.util.control.NoStackTrace @@ -120,6 +119,16 @@ class elasticsearch extends MdcLoggable { } } + private def appendParams(url: String, params: Seq[(String, String)]): String = { + def encode(s: String) = java.net.URLEncoder.encode(s, "UTF-8") + params.toList match { + case Nil => url + case xs => + val query = xs.map { case (n, v) => encode(n) + "=" + encode(v) }.mkString("&") + url + (if (url.contains("?")) "&" else "?") + query + } + } + private def constructQuery(userId: String, params: Map[String, String]): Req = { var esScroll = "" val esType = params.getOrElse("esType", "") @@ -160,7 +169,7 @@ class elasticsearch extends MdcLoggable { else if (q == "" && source != "") { parameters = Seq(("source", source)) } - val esUrl = Helpers.appendParams( s"${httpHost}/${esIndex}/${esType}${if (esType.nonEmpty) "/" else ""}_search${esScroll}", parameters ) + val esUrl = appendParams( s"${httpHost}/${esIndex}/${esType}${if (esType.nonEmpty) "/" else ""}_search${esScroll}", parameters ) //println("[ES.URL]===> " + esUrl) // Use this incase we cant log to elastic search diff --git a/obp-api/src/main/scala/code/transactionrequests/MappedTransactionRequestProvider.scala b/obp-api/src/main/scala/code/transactionrequests/MappedTransactionRequestProvider.scala index 2113847495..6e75c3dffa 100644 --- a/obp-api/src/main/scala/code/transactionrequests/MappedTransactionRequestProvider.scala +++ b/obp-api/src/main/scala/code/transactionrequests/MappedTransactionRequestProvider.scala @@ -1,5 +1,6 @@ package code.transactionrequests +import org.json4s._ import code.api.util.APIUtil.DateWithMsFormat import code.api.util.ErrorMessages._ import code.api.util.{APIUtil, CallContext, CustomJsonFormats} @@ -14,8 +15,8 @@ import com.openbankproject.commons.model.enums.TransactionRequestTypes.{COUNTERP import com.openbankproject.commons.model.enums.{AccountRoutingScheme, TransactionRequestStatus, TransactionRequestTypes} import net.liftweb.common.{Box, Failure, Full, Logger} import code.util.Helper.MdcLoggable -import net.liftweb.json -import net.liftweb.json.JsonAST.{JField, JObject, JString} +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.{JField, JObject, JString} import net.liftweb.mapper._ import net.liftweb.util.Helpers._ diff --git a/obp-api/src/main/scala/code/util/Helper.scala b/obp-api/src/main/scala/code/util/Helper.scala index 05f81f3c46..1d366bff60 100644 --- a/obp-api/src/main/scala/code/util/Helper.scala +++ b/obp-api/src/main/scala/code/util/Helper.scala @@ -1,5 +1,6 @@ package code.util +import org.json4s._ import code.api.cache.{Redis, RedisLogger} import java.net.{Socket, SocketException, URL} @@ -12,9 +13,8 @@ import code.customer.internalMapping.MappedCustomerIdMappingProvider import code.model.dataAccess.internalMapping.MappedAccountIdMappingProvider import code.transaction.internalMapping.MappedTransactionIdMappingProvider import net.liftweb.common._ -import net.liftweb.json.Extraction._ -import net.liftweb.json.JsonAST._ -import net.liftweb.json.{DateFormat, Formats} +import org.json4s.Extraction._ +import org.json4s.{DateFormat, Formats} import org.apache.commons.lang3.StringUtils import com.openbankproject.commons.ExecutionContext.Implicits.global import com.openbankproject.commons.model.{AccountBalance, AccountBalances, AccountHeld, AccountId, CoreAccount, Customer, CustomerId, Transaction, TransactionCore, TransactionId} @@ -29,6 +29,7 @@ import scala.util.Random import scala.reflect.runtime.universe.Type import scala.reflect.runtime.universe._ import scala.concurrent.duration._ +import com.openbankproject.commons.util.JsonAliases.prettyRender @@ -43,17 +44,6 @@ object Helper extends Loggable { // rule of silence http://www.linfo.org/rule_of_silence.html val SILENCE_IS_GOLDEN = "" - - /** - * A css selector that will (unless you have a template containing an element - * name i_am_an_id_that_should_never_exist) have no effect. Useful when you have - * a method that needs to return a CssSel but in some code paths don't want to do anything. - */ - val NOOP_SELECTOR = { - import net.liftweb.util.Helpers._ - "#i_am_an_id_that_should_never_exist" #> "" - } - def generatePermalink(name: String): String = { name.trim.toLowerCase.replace("-","").replaceAll(" +", " ").replaceAll(" ", "-") } @@ -222,7 +212,7 @@ object Helper extends Loggable { /** * change the TimeZone to the current TimeZOne * reference the following trait - * net.liftweb.json + * org.json4s * trait DefaultFormats * extends Formats */ @@ -240,6 +230,8 @@ object Helper extends Loggable { def format(d: Date) = formatter.format(d) + def timezone: java.util.TimeZone = new GregorianCalendar().getTimeZone + private def formatter = { val f = dateFormatter f.setTimeZone(new GregorianCalendar().getTimeZone) diff --git a/obp-api/src/main/scala/code/validation/JsonSchemaValidationProvider.scala b/obp-api/src/main/scala/code/validation/JsonSchemaValidationProvider.scala index 87d5fc5a8c..f80bccb64c 100644 --- a/obp-api/src/main/scala/code/validation/JsonSchemaValidationProvider.scala +++ b/obp-api/src/main/scala/code/validation/JsonSchemaValidationProvider.scala @@ -2,12 +2,13 @@ package code.validation /* For CardAttribute */ +import org.json4s._ import com.openbankproject.commons.util.JsonAble import net.liftweb.common.Box -import net.liftweb.json.{Formats, JsonAST} +import org.json4s.{Formats, JsonAST} import net.liftweb.util.SimpleInjector -import net.liftweb.json.JsonDSL._ -import net.liftweb.json +import org.json4s.JsonDSL._ +import com.openbankproject.commons.util.json object JsonSchemaValidationProvider extends SimpleInjector { diff --git a/obp-api/src/main/scala/code/webhook/WebhookHttpClient.scala b/obp-api/src/main/scala/code/webhook/WebhookHttpClient.scala index 72d5ed89ce..7b26e0de60 100644 --- a/obp-api/src/main/scala/code/webhook/WebhookHttpClient.scala +++ b/obp-api/src/main/scala/code/webhook/WebhookHttpClient.scala @@ -1,11 +1,11 @@ package code.webhook +import org.json4s._ import code.api.util.ApiTrigger.{OnBalanceChange, OnCreateTransaction, OnCreditTransaction, OnDebitTransaction} import code.api.util.{ApiTrigger, CustomJsonFormats} import code.util.Helper.MdcLoggable import code.webhook.WebhookActor.{AccountNotificationWebhookRequest, WebhookRequest, WebhookRequestTrait} -import net.liftweb -import net.liftweb.json.Extraction +import org.json4s.Extraction import net.liftweb.mapper.By import okhttp3.{MediaType, Request, RequestBody} import code.webhook.OkHttpWebhookClient._ @@ -102,7 +102,7 @@ object WebhookHttpClient extends MdcLoggable { request.trigger match { case OnBalanceChange() | OnCreditTransaction() | OnDebitTransaction() | OnCreateTransaction() => implicit val formats = CustomJsonFormats.formats - val json = liftweb.json.compactRender(Extraction.decompose(request.toEventPayload)) + val json = com.openbankproject.commons.util.JsonAliases.compactRender(Extraction.decompose(request.toEventPayload)) Some(json) case _ => None @@ -178,13 +178,13 @@ object WebhookHttpClient extends MdcLoggable { implicit val formats = CustomJsonFormats.formats case class User(name: String, job: String) val user = User("morpheus", "leader") - val json = liftweb.json.compactRender(Extraction.decompose(user)) + val json = com.openbankproject.commons.util.JsonAliases.compactRender(Extraction.decompose(user)) makeAsynchronousRequest( composeRequest("https://reqres.in/api/users", "POST", "HTTP/1.1", Some(json)), request) val user2 = User("morpheus", "zion resident") - val json2 = liftweb.json.compactRender(Extraction.decompose(user2)) + val json2 = com.openbankproject.commons.util.JsonAliases.compactRender(Extraction.decompose(user2)) makeAsynchronousRequest( composeRequest("https://reqres.in/api/users/2", "PUT", "HTTP/1.1", Some(json2)), request diff --git a/obp-api/src/test/resources/frozen_type_meta_data b/obp-api/src/test/resources/frozen_type_meta_data index a315e131a3..808121cd51 100644 Binary files a/obp-api/src/test/resources/frozen_type_meta_data and b/obp-api/src/test/resources/frozen_type_meta_data differ diff --git a/obp-api/src/test/scala/code/AppTest.scala b/obp-api/src/test/scala/code/AppTest.scala deleted file mode 100644 index 2e8dedba95..0000000000 --- a/obp-api/src/test/scala/code/AppTest.scala +++ /dev/null @@ -1,112 +0,0 @@ -/** -Open Bank Project - API -Copyright (C) 2011-2019, TESOBE GmbH. - -This program is free software: you can redistribute it and/or modify -it under the terms of the GNU Affero General Public License as published by -the Free Software Foundation, either version 3 of the License, or -(at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU Affero General Public License for more details. - -You should have received a copy of the GNU Affero General Public License -along with this program. If not, see . - -Email: contact@tesobe.com -TESOBE GmbH. -Osloer Strasse 16/17 -Berlin 13359, Germany - -This product includes software developed at -TESOBE (http://www.tesobe.com/) - - */ -package code - -import java.io.File -import junit.framework._ -import Assert._ -import scala.xml.XML -import net.liftweb.util._ -import net.liftweb.common._ - -object AppTest { - def suite: Test = { - val suite = new TestSuite(classOf[AppTest]) - suite - } - - def main(args : Array[String]) { - junit.textui.TestRunner.run(suite) - } -} - -/** - * Unit test for simple App. - */ -class AppTest extends TestCase("app") { - - /** - * Rigourous Tests :-) - */ - def testOK() = assertTrue(true) - // def testKO() = assertTrue(false); - - /** - * Tests to make sure the project's XML files are well-formed. - * - * Finds every *.html and *.xml file in src/main/webapp (and its - * subdirectories) and tests to make sure they are well-formed. - */ - def testXml() = { - var failed: List[File] = Nil - - def handledXml(file: String) = - file.endsWith(".xml") - - def handledXHtml(file: String) = - file.endsWith(".htm") || file.endsWith(".xhtml") - - def handledHtml(file: String) = - file.endsWith(".html") - - - def wellFormed(file: File) { - if (file.isDirectory) - for (f <- file.listFiles) wellFormed(f) - - if (file.isFile && handledXml(file.getName)) { - try { - XML.loadFile(file) - } catch { - case e: org.xml.sax.SAXParseException => failed = file :: failed - } - } - if (file.isFile && handledXHtml(file.getName)) { - PCDataXmlParser(new java.io.FileInputStream(file.getAbsolutePath)) match { - case Full(_) => // file is ok - case _ => failed = file :: failed - } - } - if (file.isFile && handledHtml(file.getName)) { - Html5.parse(new java.io.FileInputStream(file.getAbsolutePath)) match { - case Full(_) => // file is ok - case _ => failed = file :: failed - } - } - } - - wellFormed(new File("src/main/webapp")) - - val numFails = failed.size - if (numFails > 0) { - val fileStr = if (numFails == 1) "file" else "files" - val msg = "Malformed XML in " + numFails + " " + fileStr + ": " + failed.mkString(", ") - println(msg) - fail(msg) - } - } -} diff --git a/obp-api/src/test/scala/code/api/DirectLoginTest.scala b/obp-api/src/test/scala/code/api/DirectLoginTest.scala index 6546a99d7c..0dbf077bf0 100644 --- a/obp-api/src/test/scala/code/api/DirectLoginTest.scala +++ b/obp-api/src/test/scala/code/api/DirectLoginTest.scala @@ -1,5 +1,6 @@ package code.api +import org.json4s._ import code.api.Constant.localIdentityProvider import code.api.util.ErrorMessages import code.api.util.ErrorMessages._ @@ -14,7 +15,7 @@ import code.userlocks.UserLocksProvider import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonAST.{JArray, JField, JObject, JString} +import org.json4s.JsonAST.{JArray, JField, JObject, JString} import net.liftweb.mapper.By import net.liftweb.util.Helpers._ import org.scalatest.{BeforeAndAfter, Tag} diff --git a/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/ResourceDocsTechnologyTest.scala b/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/ResourceDocsTechnologyTest.scala index de2f695a8d..f2a7406cb7 100644 --- a/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/ResourceDocsTechnologyTest.scala +++ b/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/ResourceDocsTechnologyTest.scala @@ -1,9 +1,10 @@ package code.api.ResourceDocs1_4_0 +import org.json4s._ import code.api.Constant import code.setup.{PropsReset, ServerSetup} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonAST.{JArray, JNothing, JNull, JString} +import org.json4s.JsonAST.{JArray, JNothing, JNull, JString} class ResourceDocsTechnologyTest extends ServerSetup with PropsReset { private val v600 = ApiVersion.v6_0_0.toString diff --git a/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/ResourceDocsTest.scala b/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/ResourceDocsTest.scala index 12c52a1d34..3b6e831399 100644 --- a/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/ResourceDocsTest.scala +++ b/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/ResourceDocsTest.scala @@ -1,5 +1,6 @@ package code.api.ResourceDocs1_4_0 +import org.json4s._ import code.api.Constant import code.api.ResourceDocs1_4_0.ResourceDocs140.ImplementationsResourceDocs import code.api.berlin.group.ConstantsBG @@ -10,10 +11,8 @@ import code.api.v1_4_0.JSONFactory1_4_0.ResourceDocsJson import code.setup.{DefaultUsers, PropsReset} import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.{ApiVersion, Functions} -import net.liftweb.json -import net.liftweb.json.JsonAST._ -import net.liftweb.json.{Formats, JString, Serializer, TypeInfo} -import net.liftweb.util.Html5 +import com.openbankproject.commons.util.json +import org.json4s.{Formats, JString, Serializer, TypeInfo} import org.scalatest.Tag import scala.xml.NodeSeq @@ -92,9 +91,8 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with * @return */ def stringToNodeSeq(html : String) : NodeSeq = { - val newHtmlString =scala.xml.XML.loadString("
" + html + "
").toString() - //Note: `parse` method: We much enclose the div, otherwise only the first element is returned. - Html5.parse(newHtmlString).headOption.getOrElse(NodeSeq.Empty) + //Note: we must enclose the div, otherwise only the first element is returned. + scala.xml.XML.loadString("
" + html + "
") } diff --git a/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/SwaggerDocsTest.scala b/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/SwaggerDocsTest.scala index a52fde8456..f877606f45 100644 --- a/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/SwaggerDocsTest.scala +++ b/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/SwaggerDocsTest.scala @@ -1,5 +1,6 @@ package code.api.ResourceDocs1_4_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.ResourceDocs140.ImplementationsResourceDocs import code.api.util.ErrorMessages.{AuthenticatedUserIsRequired, UserHasMissingRoles} import code.api.util.{ApiRole, CustomJsonFormats} @@ -9,10 +10,8 @@ import code.api.util.APIUtil.OAuth._ import code.entitlement.Entitlement import com.openbankproject.commons.util.{ApiVersion, Functions} import io.swagger.parser.OpenAPIParser -import net.liftweb.json -import net.liftweb.json.JsonAST._ -import net.liftweb.json.{Formats, JString, Serializer, TypeInfo} -import net.liftweb.util.Html5 +import com.openbankproject.commons.util.json +import org.json4s.{Formats, JString, Serializer, TypeInfo} import org.scalatest.Tag import java.util @@ -66,9 +65,8 @@ class SwaggerDocsTest extends ResourceDocsV140ServerSetup with PropsReset with D * @return */ def stringToNodeSeq(html : String) : NodeSeq = { - val newHtmlString =scala.xml.XML.loadString("
" + html + "
").toString() - //Note: `parse` method: We much enclose the div, otherwise only the first element is returned. - Html5.parse(newHtmlString).head + //Note: we must enclose the div, otherwise only the first element is returned. + scala.xml.XML.loadString("
" + html + "
") } diff --git a/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/SwaggerFactoryUnitTest.scala b/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/SwaggerFactoryUnitTest.scala index 4a4f55a3c2..afddf34751 100644 --- a/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/SwaggerFactoryUnitTest.scala +++ b/obp-api/src/test/scala/code/api/ResourceDocs1_4_0/SwaggerFactoryUnitTest.scala @@ -1,5 +1,6 @@ package code.api.ResourceDocs1_4_0 +import org.json4s._ import code.api.util.APIUtil.ResourceDoc import code.api.v1_4_0.V140ServerSetup import code.api.v2_1_0.OBPAPI2_1_0 @@ -137,7 +138,7 @@ class SwaggerFactoryUnitTest extends V140ServerSetup with MdcLoggable { ) val result = SwaggerJSONFactory.translateEntity(testObj) noException should be thrownBy { - net.liftweb.json.parse("{" + result + "}") + com.openbankproject.commons.util.JsonAliases.parse("{" + result + "}") } result should include("\\\"") } @@ -146,7 +147,7 @@ class SwaggerFactoryUnitTest extends V140ServerSetup with MdcLoggable { val testObj = TestWithNewlines(text = "Line 1\nLine 2\tTab") val result = SwaggerJSONFactory.translateEntity(testObj) noException should be thrownBy { - net.liftweb.json.parse("{" + result + "}") + com.openbankproject.commons.util.JsonAliases.parse("{" + result + "}") } result should include("\\n") } @@ -155,7 +156,7 @@ class SwaggerFactoryUnitTest extends V140ServerSetup with MdcLoggable { val testObj = AbacRule(rule = """user.emailAddress.contains(\"admin\")""") val result = SwaggerJSONFactory.translateEntity(testObj) noException should be thrownBy { - net.liftweb.json.parse("{" + result + "}") + com.openbankproject.commons.util.JsonAliases.parse("{" + result + "}") } } @@ -173,8 +174,8 @@ class SwaggerFactoryUnitTest extends V140ServerSetup with MdcLoggable { success_response_body = SwaggerDefinitionsJSON.bankJSON, error_response_bodies = List("OBP-10000"), tags = List("Test"), - typed_request_body = net.liftweb.json.JNothing, - typed_success_response_body = net.liftweb.json.JNothing, + typed_request_body = org.json4s.JNothing, + typed_success_response_body = org.json4s.JNothing, roles = Some(List()), is_featured = false, special_instructions = "", diff --git a/obp-api/src/test/scala/code/api/berlin/group/v1_3/AccountInformationServiceAISApiTest.scala b/obp-api/src/test/scala/code/api/berlin/group/v1_3/AccountInformationServiceAISApiTest.scala index 39a9f527bc..f9d5a6b697 100644 --- a/obp-api/src/test/scala/code/api/berlin/group/v1_3/AccountInformationServiceAISApiTest.scala +++ b/obp-api/src/test/scala/code/api/berlin/group/v1_3/AccountInformationServiceAISApiTest.scala @@ -1,5 +1,6 @@ package code.api.berlin.group.v1_3 +import org.json4s._ import code.api.Constant import code.api.Constant.{SYSTEM_READ_ACCOUNTS_BERLIN_GROUP_VIEW_ID, SYSTEM_READ_BALANCES_BERLIN_GROUP_VIEW_ID, SYSTEM_READ_TRANSACTIONS_BERLIN_GROUP_VIEW_ID} import code.api.berlin.group.v1_3.JSONFactory_BERLIN_GROUP_1_3._ @@ -14,7 +15,7 @@ import code.setup.{APIResponse, DefaultUsers} import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.model.enums.AccountRoutingScheme -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import net.liftweb.mapper.By import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/berlin/group/v1_3/BerlinGroupServerSetupV1_3.scala b/obp-api/src/test/scala/code/api/berlin/group/v1_3/BerlinGroupServerSetupV1_3.scala index 3c55ed5ee2..527d402230 100644 --- a/obp-api/src/test/scala/code/api/berlin/group/v1_3/BerlinGroupServerSetupV1_3.scala +++ b/obp-api/src/test/scala/code/api/berlin/group/v1_3/BerlinGroupServerSetupV1_3.scala @@ -1,5 +1,6 @@ package code.api.berlin.group.v1_3 +import org.json4s._ import code.api.Constant import code.api.Constant.SYSTEM_READ_ACCOUNTS_BERLIN_GROUP_VIEW_ID import code.api.berlin.group.ConstantsBG @@ -9,7 +10,7 @@ import code.api.v4_0_0.{PostAccountAccessJsonV400, PostViewJsonV400} import code.setup.ServerSetupWithTestData import code.views.Views import dispatch.Req -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag trait BerlinGroupServerSetupV1_3 extends ServerSetupWithTestData { diff --git a/obp-api/src/test/scala/code/api/berlin/group/v1_3/ConfirmationOfFundsServicePIISApiTest.scala b/obp-api/src/test/scala/code/api/berlin/group/v1_3/ConfirmationOfFundsServicePIISApiTest.scala index 843a008bc1..c0ea12b2c4 100644 --- a/obp-api/src/test/scala/code/api/berlin/group/v1_3/ConfirmationOfFundsServicePIISApiTest.scala +++ b/obp-api/src/test/scala/code/api/berlin/group/v1_3/ConfirmationOfFundsServicePIISApiTest.scala @@ -1,5 +1,6 @@ package code.api.berlin.group.v1_3 +import org.json4s._ import code.api.berlin.group.v1_3.JSONFactory_BERLIN_GROUP_1_3.ErrorMessagesBG import com.openbankproject.commons.model.ErrorMessage import code.api.berlin.group.v1_3.{Http4sBGv13PIIS => APIMethods_ConfirmationOfFundsServicePIISApi} @@ -9,8 +10,8 @@ import code.model.dataAccess.{BankAccountRouting, MappedBankAccount} import code.setup.{APIResponse, DefaultUsers} import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.enums.AccountRoutingScheme -import net.liftweb.json -import net.liftweb.json.Serialization.write +import com.openbankproject.commons.util.json +import org.json4s.native.Serialization.write import net.liftweb.mapper.By import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/berlin/group/v1_3/JSONFactory_BERLIN_GROUP_1_3Test.scala b/obp-api/src/test/scala/code/api/berlin/group/v1_3/JSONFactory_BERLIN_GROUP_1_3Test.scala index 82b7872693..36512956c7 100644 --- a/obp-api/src/test/scala/code/api/berlin/group/v1_3/JSONFactory_BERLIN_GROUP_1_3Test.scala +++ b/obp-api/src/test/scala/code/api/berlin/group/v1_3/JSONFactory_BERLIN_GROUP_1_3Test.scala @@ -31,7 +31,8 @@ import code.api.util.CustomJsonFormats import code.model.ModeratedTransaction import code.setup.PropsReset import com.openbankproject.commons.model._ -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import org.scalatest.{FeatureSpec, GivenWhenThen, Matchers} diff --git a/obp-api/src/test/scala/code/api/berlin/group/v1_3/PaymentInitiationServicePISApiTest.scala b/obp-api/src/test/scala/code/api/berlin/group/v1_3/PaymentInitiationServicePISApiTest.scala index ed5603ff76..fe162244ad 100644 --- a/obp-api/src/test/scala/code/api/berlin/group/v1_3/PaymentInitiationServicePISApiTest.scala +++ b/obp-api/src/test/scala/code/api/berlin/group/v1_3/PaymentInitiationServicePISApiTest.scala @@ -1,5 +1,6 @@ package code.api.berlin.group.v1_3 +import org.json4s._ import code.api.BerlinGroup.ScaStatus import code.api.Constant.SYSTEM_INITIATE_PAYMENTS_BERLIN_GROUP_VIEW_ID import code.api.berlin.group.v1_3.JSONFactory_BERLIN_GROUP_1_3.{CancelPaymentResponseJson, CancellationJsonV13, ErrorMessagesBG, InitiatePaymentResponseJson, StartPaymentAuthorisationJson} @@ -14,7 +15,7 @@ import code.views.Views import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.enums.{AccountRoutingScheme, PaymentServiceTypes, TransactionRequestTypes} import com.openbankproject.commons.model.{SepaCreditTransfers, SepaCreditTransfersBerlinGroupV13, ViewId} -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import net.liftweb.mapper.By import org.scalatest.Tag @@ -377,8 +378,10 @@ class PaymentInitiationServicePISApiTest extends BerlinGroupServerSetupV1_3 with Then(s"We can test the ${updatePaymentPsuDataTransactionAuthorisation.name}") val updatePaymentPsuDataJsonBody = Http4sBGv13PIS.resourceDocs .filter(_.partialFunctionName == "updatePaymentPsuDataTransactionAuthorisation") - .head.exampleRequestBody.asInstanceOf[JvalueCaseClass] //All the Json String convert to JvalueCaseClass implicitly - .jvalueToCaseclass + .head.exampleRequestBody match { + case jvc: JvalueCaseClass => jvc.jvalueToCaseclass + case jv: org.json4s.JValue => jv + } val requestUpdatePaymentPsuData = (V1_3_BG / PaymentServiceTypes.payments.toString / TransactionRequestTypes.SEPA_CREDIT_TRANSFERS.toString / paymentId / "authorisations"/authorisationId).PUT <@ (user1) val responseUpdatePaymentPsuData: APIResponse = makePutRequest(requestUpdatePaymentPsuData, write(updatePaymentPsuDataJsonBody)) diff --git a/obp-api/src/test/scala/code/api/berlin/group/v2/JSONFactoryBGv2Test.scala b/obp-api/src/test/scala/code/api/berlin/group/v2/JSONFactoryBGv2Test.scala index c2e91c0e18..32d6f4045a 100644 --- a/obp-api/src/test/scala/code/api/berlin/group/v2/JSONFactoryBGv2Test.scala +++ b/obp-api/src/test/scala/code/api/berlin/group/v2/JSONFactoryBGv2Test.scala @@ -1,7 +1,9 @@ package code.api.berlin.group.v2 +import org.json4s._ import code.util.Helper.MdcLoggable -import net.liftweb.json.{Extraction, Formats, prettyRender} +import org.json4s.{Extraction, Formats} +import com.openbankproject.commons.util.JsonAliases.prettyRender import code.api.util.CustomJsonFormats import org.scalatest.{FlatSpec, Matchers, Tag} diff --git a/obp-api/src/test/scala/code/api/dynamic/entity/query/QuerySpec.scala b/obp-api/src/test/scala/code/api/dynamic/entity/query/QuerySpec.scala index 6ac8f96567..39cc15589f 100644 --- a/obp-api/src/test/scala/code/api/dynamic/entity/query/QuerySpec.scala +++ b/obp-api/src/test/scala/code/api/dynamic/entity/query/QuerySpec.scala @@ -1,7 +1,7 @@ package code.api.dynamic.entity.query import com.openbankproject.commons.model.enums.DynamicEntityFieldType -import net.liftweb.json.JsonAST.JObject +import org.json4s.JsonAST.JObject import org.scalatest.{FlatSpec, Matchers} /** @@ -13,7 +13,7 @@ class QuerySpec extends FlatSpec with Matchers { private def params(kvs: (String, String)*): Map[String, List[String]] = kvs.groupBy(_._1).map { case (k, vs) => k -> vs.map(_._2).toList } - private def rec(s: String): JObject = net.liftweb.json.parse(s).asInstanceOf[JObject] + private def rec(s: String): JObject = com.openbankproject.commons.util.JsonAliases.parse(s).asInstanceOf[JObject] private val indexed: Map[String, FieldSpec] = Map( "price" -> FieldSpec(DynamicEntityFieldType.number, "scalar"), diff --git a/obp-api/src/test/scala/code/api/gateWayloginTest.scala b/obp-api/src/test/scala/code/api/gateWayloginTest.scala index eb8e953eff..236338d49c 100644 --- a/obp-api/src/test/scala/code/api/gateWayloginTest.scala +++ b/obp-api/src/test/scala/code/api/gateWayloginTest.scala @@ -1,12 +1,13 @@ package code.api +import org.json4s._ import code.api.util.{APIUtil, ErrorMessages} import com.openbankproject.commons.model._ import code.setup.{APIResponse, DefaultUsers, ServerSetup} import net.liftweb.common.Full -import net.liftweb.json -import net.liftweb.json.Extraction -import net.liftweb.json.JsonAST.{JField, JObject, JString} +import com.openbankproject.commons.util.json +import org.json4s.Extraction +import org.json4s.JsonAST.{JField, JObject, JString} import net.liftweb.util.Props import org.scalatest._ import code.api.util.APIUtil.OAuth._ diff --git a/obp-api/src/test/scala/code/api/http4sbridge/Http4sServerIntegrationTest.scala b/obp-api/src/test/scala/code/api/http4sbridge/Http4sServerIntegrationTest.scala index e6042c6125..d0453f202c 100644 --- a/obp-api/src/test/scala/code/api/http4sbridge/Http4sServerIntegrationTest.scala +++ b/obp-api/src/test/scala/code/api/http4sbridge/Http4sServerIntegrationTest.scala @@ -1,13 +1,14 @@ package code.api.http4sbridge +import org.json4s._ import code.Http4sTestServer import code.api.util.APIUtil import code.setup.{DefaultUsers, ServerSetup, ServerSetupWithTestData} import code.views.system.AccountAccess import dispatch.Defaults._ import dispatch._ -import net.liftweb.json.JsonAST.JObject -import net.liftweb.json.JsonParser.parse +import org.json4s.JsonAST.JObject +import com.openbankproject.commons.util.JsonAliases.parse import org.scalatest.Tag import scala.collection.JavaConverters._ diff --git a/obp-api/src/test/scala/code/api/util/http4s/Http4sJsonContentTypeTest.scala b/obp-api/src/test/scala/code/api/util/http4s/Http4sJsonContentTypeTest.scala index a097270f8c..8995604f05 100644 --- a/obp-api/src/test/scala/code/api/util/http4s/Http4sJsonContentTypeTest.scala +++ b/obp-api/src/test/scala/code/api/util/http4s/Http4sJsonContentTypeTest.scala @@ -1,10 +1,11 @@ package code.api.util.http4s +import org.json4s._ import cats.effect.IO import cats.effect.unsafe.implicits.global import code.api.util.CallContext import code.api.util.http4s.Http4sRequestAttributes.{EndpointHelpers, callContextKey} -import net.liftweb.json.{DefaultFormats, Formats} +import org.json4s.{DefaultFormats, Formats} import org.http4s.{Request, Response} import org.scalatest.{FeatureSpec, GivenWhenThen, Matchers} import org.typelevel.ci.CIString diff --git a/obp-api/src/test/scala/code/api/util/http4s/ResourceDocMatcherTest.scala b/obp-api/src/test/scala/code/api/util/http4s/ResourceDocMatcherTest.scala index 99d10b2e4e..3c85edf458 100644 --- a/obp-api/src/test/scala/code/api/util/http4s/ResourceDocMatcherTest.scala +++ b/obp-api/src/test/scala/code/api/util/http4s/ResourceDocMatcherTest.scala @@ -1,10 +1,11 @@ package code.api.util.http4s +import org.json4s._ import code.api.util.APIUtil.ResourceDoc import code.api.util.ApiTag.ResourceDocTag import com.openbankproject.commons.util.ApiShortVersions import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonAST.JObject +import org.json4s.JsonAST.JObject import org.http4s._ import org.scalatest.{FeatureSpec, GivenWhenThen, Matchers, Tag} diff --git a/obp-api/src/test/scala/code/api/util/http4s/ResourceDocMiddlewareEnableDisableTest.scala b/obp-api/src/test/scala/code/api/util/http4s/ResourceDocMiddlewareEnableDisableTest.scala index ae87a41c9c..2fab12a9fa 100644 --- a/obp-api/src/test/scala/code/api/util/http4s/ResourceDocMiddlewareEnableDisableTest.scala +++ b/obp-api/src/test/scala/code/api/util/http4s/ResourceDocMiddlewareEnableDisableTest.scala @@ -1,9 +1,10 @@ package code.api.util.http4s +import org.json4s._ import code.api.util.APIUtil.ResourceDoc import code.api.util.ApiTag.ResourceDocTag import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion} -import net.liftweb.json.JsonAST.JObject +import org.json4s.JsonAST.JObject import org.scalatest.{FeatureSpec, GivenWhenThen, Matchers, Tag} /** diff --git a/obp-api/src/test/scala/code/api/v1_2_1/API1_2_1Test.scala b/obp-api/src/test/scala/code/api/v1_2_1/API1_2_1Test.scala index 2b18e387dd..a54337e39a 100644 --- a/obp-api/src/test/scala/code/api/v1_2_1/API1_2_1Test.scala +++ b/obp-api/src/test/scala/code/api/v1_2_1/API1_2_1Test.scala @@ -26,7 +26,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v1_2_1 -import _root_.net.liftweb.json.Serialization.write +import _root_.org.json4s.native.Serialization.write import code.api.Constant._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil @@ -37,7 +37,8 @@ import code.bankconnectors.Connector import code.setup.{APIResponse, DefaultUsers, PrivateUser2AccountsAndSetUpWithTestData, ServerSetupWithTestData} import code.views.Views import com.openbankproject.commons.model._ -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.util.Helpers._ import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v1_4_0/CustomerTest.scala b/obp-api/src/test/scala/code/api/v1_4_0/CustomerTest.scala index 827ac2f053..8fc956b9d0 100644 --- a/obp-api/src/test/scala/code/api/v1_4_0/CustomerTest.scala +++ b/obp-api/src/test/scala/code/api/v1_4_0/CustomerTest.scala @@ -1,5 +1,6 @@ package code.api.v1_4_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.util.APIUtil.OAuth._ import code.api.util.{ApiRole, ErrorMessages} @@ -9,7 +10,7 @@ import code.customer.CustomerX import code.entitlement.Entitlement import code.setup.DefaultUsers import code.usercustomerlinks.UserCustomerLink -import net.liftweb.json.Serialization._ +import org.json4s.native.Serialization._ class CustomerTest extends V200ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v1_4_0/JSONFactory1_4_0NestedArrayTest.scala b/obp-api/src/test/scala/code/api/v1_4_0/JSONFactory1_4_0NestedArrayTest.scala index 353c1ceb1d..71cd474462 100644 --- a/obp-api/src/test/scala/code/api/v1_4_0/JSONFactory1_4_0NestedArrayTest.scala +++ b/obp-api/src/test/scala/code/api/v1_4_0/JSONFactory1_4_0NestedArrayTest.scala @@ -2,7 +2,8 @@ package code.api.v1_4_0 import code.api.util.CustomJsonFormats import code.util.Helper.MdcLoggable -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import org.scalatest.{BeforeAndAfterAll, BeforeAndAfterEach, FeatureSpec, GivenWhenThen, Matchers} /** diff --git a/obp-api/src/test/scala/code/api/v1_4_0/JSONFactory1_4_0PreservationTest.scala b/obp-api/src/test/scala/code/api/v1_4_0/JSONFactory1_4_0PreservationTest.scala index 64fc1fcd88..7fcaab028f 100644 --- a/obp-api/src/test/scala/code/api/v1_4_0/JSONFactory1_4_0PreservationTest.scala +++ b/obp-api/src/test/scala/code/api/v1_4_0/JSONFactory1_4_0PreservationTest.scala @@ -2,7 +2,8 @@ package code.api.v1_4_0 import code.api.util.CustomJsonFormats import code.util.Helper.MdcLoggable -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import org.scalatest.{BeforeAndAfterAll, BeforeAndAfterEach, FeatureSpec, GivenWhenThen, Matchers} import java.util.Date diff --git a/obp-api/src/test/scala/code/api/v1_4_0/JSONFactory1_4_0Test.scala b/obp-api/src/test/scala/code/api/v1_4_0/JSONFactory1_4_0Test.scala index 064dc57d74..a0c44cc42f 100644 --- a/obp-api/src/test/scala/code/api/v1_4_0/JSONFactory1_4_0Test.scala +++ b/obp-api/src/test/scala/code/api/v1_4_0/JSONFactory1_4_0Test.scala @@ -9,8 +9,9 @@ import code.api.util.CustomJsonFormats import code.api.v1_4_0.JSONFactory1_4_0.ResourceDocJson import code.api.v3_0_0.OBPAPI3_0_0 import code.api.v1_2_1.OBPAPI1_2_1 -import net.liftweb.json.Extraction.decompose -import net.liftweb.json._ +import org.json4s.Extraction.decompose +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import org.everit.json.schema.loader.SchemaLoader import org.json.JSONObject diff --git a/obp-api/src/test/scala/code/api/v1_4_0/MappedCustomerMessagesTest.scala b/obp-api/src/test/scala/code/api/v1_4_0/MappedCustomerMessagesTest.scala index d5fcdb3429..36e198520d 100644 --- a/obp-api/src/test/scala/code/api/v1_4_0/MappedCustomerMessagesTest.scala +++ b/obp-api/src/test/scala/code/api/v1_4_0/MappedCustomerMessagesTest.scala @@ -1,5 +1,6 @@ package code.api.v1_4_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.{APIUtil, ApiRole} import code.api.v1_4_0.JSONFactory1_4_0.{AddCustomerMessageJson, CustomerFaceImageJson, CustomerMessagesJson} @@ -10,7 +11,7 @@ import code.setup.DefaultUsers import code.usercustomerlinks.UserCustomerLink import com.openbankproject.commons.model.Customer import net.liftweb.common.{Box, Empty, Full} -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write //TODO: API test should be independent of CustomerMessages implementation class MappedCustomerMessagesTest extends V140ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v2_0_0/AccountTest.scala b/obp-api/src/test/scala/code/api/v2_0_0/AccountTest.scala index 31bd4a182b..206ee729d4 100644 --- a/obp-api/src/test/scala/code/api/v2_0_0/AccountTest.scala +++ b/obp-api/src/test/scala/code/api/v2_0_0/AccountTest.scala @@ -1,11 +1,11 @@ package code.api.v2_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ErrorMessages import code.setup.{DefaultUsers, PrivateUser2AccountsAndSetUpWithTestData} import com.openbankproject.commons.model.{AmountOfMoneyJsonV121 => AmountOfMoneyJSON121} -import net.liftweb.json.JsonAST._ -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write class AccountTest extends V200ServerSetup with DefaultUsers with PrivateUser2AccountsAndSetUpWithTestData { val mockAccountId1 = "NEW_ACCOUNT_ID_01" diff --git a/obp-api/src/test/scala/code/api/v2_0_0/CreateUserTest.scala b/obp-api/src/test/scala/code/api/v2_0_0/CreateUserTest.scala index 043f15cd01..7036fa030d 100644 --- a/obp-api/src/test/scala/code/api/v2_0_0/CreateUserTest.scala +++ b/obp-api/src/test/scala/code/api/v2_0_0/CreateUserTest.scala @@ -1,8 +1,9 @@ package code.api.v2_0_0 +import org.json4s._ import code.consumer.Consumers -import net.liftweb.json.JsonAST.{JField, JObject, JString} -import net.liftweb.json.Serialization.write +import org.json4s.JsonAST.{JField, JObject, JString} +import org.json4s.native.Serialization.write import net.liftweb.util.Helpers._ import org.scalatest.{BeforeAndAfter, Tag} diff --git a/obp-api/src/test/scala/code/api/v2_0_0/CustomerTest.scala b/obp-api/src/test/scala/code/api/v2_0_0/CustomerTest.scala index bc5f2c75ab..a4eca689fe 100644 --- a/obp-api/src/test/scala/code/api/v2_0_0/CustomerTest.scala +++ b/obp-api/src/test/scala/code/api/v2_0_0/CustomerTest.scala @@ -1,5 +1,6 @@ package code.api.v2_0_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ @@ -8,7 +9,7 @@ import code.api.v1_4_0.JSONFactory1_4_0.CustomerJsonV140 import code.entitlement.Entitlement import code.setup.DefaultUsers import code.usercustomerlinks.UserCustomerLink -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write class CustomerTest extends V200ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v2_0_0/EntitlementTests.scala b/obp-api/src/test/scala/code/api/v2_0_0/EntitlementTests.scala index 17aa6d56fe..5ebf3faf93 100644 --- a/obp-api/src/test/scala/code/api/v2_0_0/EntitlementTests.scala +++ b/obp-api/src/test/scala/code/api/v2_0_0/EntitlementTests.scala @@ -1,5 +1,6 @@ package code.api.v2_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import com.openbankproject.commons.model.ErrorMessage import code.api.util.APIUtil.OAuth._ @@ -9,7 +10,7 @@ import code.api.util.ErrorMessages.{UserHasMissingRoles, _} import code.api.util.{ApiRole, ErrorMessages} import code.entitlement.Entitlement import code.setup.DefaultUsers -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write class EntitlementTests extends V200ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v2_1_0/CreateBranchTest.scala b/obp-api/src/test/scala/code/api/v2_1_0/CreateBranchTest.scala index c72099bf1c..460d8a7e25 100644 --- a/obp-api/src/test/scala/code/api/v2_1_0/CreateBranchTest.scala +++ b/obp-api/src/test/scala/code/api/v2_1_0/CreateBranchTest.scala @@ -1,13 +1,14 @@ package code.api.v2_1_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.{APIUtil, ApiRole} import code.api.util.ApiRole.{CanCreateBranch, CanUpdateBranch} import code.api.v1_4_0.JSONFactory1_4_0._ import code.setup.DefaultUsers import com.openbankproject.commons.model.{AccountId, BranchId, ViewId} -import net.liftweb.json.JsonAST.JString -import net.liftweb.json.Serialization.write +import org.json4s.JsonAST.JString +import org.json4s.native.Serialization.write class CreateBranchTest extends V210ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v2_1_0/CreateCreditCardTest.scala b/obp-api/src/test/scala/code/api/v2_1_0/CreateCreditCardTest.scala index d53193fff1..3ebef97e39 100644 --- a/obp-api/src/test/scala/code/api/v2_1_0/CreateCreditCardTest.scala +++ b/obp-api/src/test/scala/code/api/v2_1_0/CreateCreditCardTest.scala @@ -1,12 +1,13 @@ package code.api.v2_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.postPhysicalCardJSON import code.api.util.APIUtil.OAuth._ import code.api.util.{APIUtil, ApiRole} import code.api.util.ApiRole.CanCreateCardsForBank import code.api.v1_3_0.PhysicalCardJSON import code.setup.DefaultUsers -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import code.api.util.ErrorMessages._ class CreateCreditCardTest extends V210ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v2_1_0/CreateTransactionTypeTest.scala b/obp-api/src/test/scala/code/api/v2_1_0/CreateTransactionTypeTest.scala index 8a0bedf9b4..bac6305cc2 100644 --- a/obp-api/src/test/scala/code/api/v2_1_0/CreateTransactionTypeTest.scala +++ b/obp-api/src/test/scala/code/api/v2_1_0/CreateTransactionTypeTest.scala @@ -1,5 +1,6 @@ package code.api.v2_1_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.CanCreateTransactionType import code.api.util.{APIUtil, ApiRole, ErrorMessages} @@ -11,7 +12,7 @@ import code.transaction_types.MappedTransactionType import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{AmountOfMoneyJsonV121, ErrorMessage, TransactionTypeId} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization._ +import org.json4s.native.Serialization._ import org.scalatest.Tag /** diff --git a/obp-api/src/test/scala/code/api/v2_1_0/CustomerTest.scala b/obp-api/src/test/scala/code/api/v2_1_0/CustomerTest.scala index 4fe753c5f9..35df821a2d 100644 --- a/obp-api/src/test/scala/code/api/v2_1_0/CustomerTest.scala +++ b/obp-api/src/test/scala/code/api/v2_1_0/CustomerTest.scala @@ -1,5 +1,6 @@ package code.api.v2_1_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.util.APIUtil.OAuth._ import code.api.util.{ApiRole, ErrorMessages} @@ -8,7 +9,7 @@ import code.api.v1_4_0.JSONFactory1_4_0.CustomerFaceImageJson import code.entitlement.Entitlement import code.setup.DefaultUsers import code.usercustomerlinks.UserCustomerLink -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write class CustomerTest extends V210ServerSetup with DefaultUsers { def createCustomerJson(customerNumber: String): PostCustomerJsonV210 = { diff --git a/obp-api/src/test/scala/code/api/v2_1_0/SandboxDataLoadingTest.scala b/obp-api/src/test/scala/code/api/v2_1_0/SandboxDataLoadingTest.scala index 69b603677f..7c9331de60 100644 --- a/obp-api/src/test/scala/code/api/v2_1_0/SandboxDataLoadingTest.scala +++ b/obp-api/src/test/scala/code/api/v2_1_0/SandboxDataLoadingTest.scala @@ -26,6 +26,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v2_1_0 +import org.json4s._ import java.util.Date import code.api.Constant._ @@ -57,10 +58,12 @@ import com.openbankproject.commons.model._ import com.openbankproject.commons.model.enums.AccountRoutingScheme import dispatch._ import net.liftweb.common.{Empty, ParamFailure} -import net.liftweb.json.JsonAST.{JObject, JValue} -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.Serialization.write -import net.liftweb.json.{JField, _} +import org.json4s.JsonAST.{JObject, JValue} +import org.json4s.JsonDSL._ +import org.json4s.native.Serialization +import org.json4s.native.Serialization.write +import org.json4s.{JField, _} +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.mapper.{By, MetaMapper} import org.scalatest.{BeforeAndAfterEach, FlatSpec, Matchers} import code.model._ @@ -371,17 +374,24 @@ class SandboxDataLoadingTest extends FlatSpec with SendServerRequests with Match } def removeField(json : JValue, fieldSpecifier : List[String]): JValue = { - json.replace(fieldSpecifier, JNothing) + new org.json4s.MonadicJValue(json).replace(fieldSpecifier, JNothing) } - implicit class JValueWithSingleReplace(jValue : JValue) { - def replace(fieldName : String, fieldValue : String) = - jValue.replace(List(fieldName), fieldValue) + // Shadow jvalue2monadic from org.json4s to prevent ambiguity with JValueWithSingleReplace + private def jvalue2monadic(jv: JValue): JValueWithSingleReplace = JValueWithSingleReplace(jv) + + implicit class JValueWithSingleReplace(jValue: JValue) { + def replace(fieldName: String, fieldValue: String): JValue = + new org.json4s.MonadicJValue(jValue).replace(List(fieldName), JString(fieldValue)) + def replace(path: List[String], replacement: String): JValue = + new org.json4s.MonadicJValue(jValue).replace(path, JString(replacement)) + def replace(path: List[String], replacement: JValue): JValue = + new org.json4s.MonadicJValue(jValue).replace(path, replacement) } //TODO: remove this method? - def replaceField(json : JValue, fieldName : String, fieldValue : String) = - json.replace(List(fieldName), fieldValue) + def replaceField(json : JValue, fieldName : String, fieldValue : String): JValue = + new org.json4s.MonadicJValue(json).replace(List(fieldName), JString(fieldValue)) //TODO: remove this method? def replaceDisplayName(json : JValue, displayName : String) = diff --git a/obp-api/src/test/scala/code/api/v2_1_0/TransactionRequestsTest.scala b/obp-api/src/test/scala/code/api/v2_1_0/TransactionRequestsTest.scala index 00af41c26e..9146a166da 100644 --- a/obp-api/src/test/scala/code/api/v2_1_0/TransactionRequestsTest.scala +++ b/obp-api/src/test/scala/code/api/v2_1_0/TransactionRequestsTest.scala @@ -1,5 +1,6 @@ package code.api.v2_1_0 +import org.json4s._ import java.util.UUID import code.api.Constant._ @@ -20,7 +21,7 @@ import com.openbankproject.commons.model.enums.TransactionRequestStatus import com.openbankproject.commons.model.enums.TransactionRequestTypes._ import com.openbankproject.commons.model.enums.TransactionRequestTypes import com.openbankproject.commons.model.{AccountId, BankAccount, TransactionRequestId} -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.collection.immutable.List @@ -183,19 +184,19 @@ class TransactionRequestsTest extends V210ServerSetup with DefaultUsers { if (withChellenge) { And("We should have the INITIATED status in response body") - (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "status").values.toString should equal(TransactionRequestStatus.INITIATED.toString) + (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "status").extract[List[String]] should equal(List(TransactionRequestStatus.INITIATED.toString)) And("Challenge should be not null, this is the no challenge scenario") (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "challenge").children.size should not equal (0) And("We should have be null value for TransactionIds") - (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "transaction_ids").values.toString should equal("List()") + (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "transaction_ids").children.headOption.map(_.values.toString).getOrElse("List()") should equal("List()") } else { And("We should have the COMPLETED status in response body") - (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "status").values.toString should equal(TransactionRequestStatus.COMPLETED.toString) + (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "status").extract[List[String]] should equal(List(TransactionRequestStatus.COMPLETED.toString)) And("Challenge should be null, this is the no challenge scenario") - (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "challenge").children.size should equal(0) + (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "challenge").children.headOption.map(_.children.size).getOrElse(0) should equal(0) And("We should have a new TransactionIds value") (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "transaction_ids").values.toString should not equal ("") diff --git a/obp-api/src/test/scala/code/api/v2_1_0/UpdateConsumerRedirectUrlTest.scala b/obp-api/src/test/scala/code/api/v2_1_0/UpdateConsumerRedirectUrlTest.scala index 55ff69ff9d..b3b839c0b6 100644 --- a/obp-api/src/test/scala/code/api/v2_1_0/UpdateConsumerRedirectUrlTest.scala +++ b/obp-api/src/test/scala/code/api/v2_1_0/UpdateConsumerRedirectUrlTest.scala @@ -1,12 +1,13 @@ package code.api.v2_1_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.{APIUtil, ApiRole} import code.api.util.ApiRole.CanUpdateConsumerRedirectUrl import code.api.util.ErrorMessages.{UserHasMissingRoles, UserNoPermissionUpdateConsumer} import code.setup.DefaultUsers -import net.liftweb.json.JsonAST.JString -import net.liftweb.json.Serialization.write +import org.json4s.JsonAST.JString +import org.json4s.native.Serialization.write class UpdateConsumerRedirectUrlTest extends V210ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v2_2_0/API2_2_0Test.scala b/obp-api/src/test/scala/code/api/v2_2_0/API2_2_0Test.scala index 34e50d2b33..55ece37748 100644 --- a/obp-api/src/test/scala/code/api/v2_2_0/API2_2_0Test.scala +++ b/obp-api/src/test/scala/code/api/v2_2_0/API2_2_0Test.scala @@ -26,8 +26,9 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v2_2_0 +import org.json4s._ import code.api.Constant._ -import _root_.net.liftweb.json.Serialization.write +import _root_.org.json4s.native.Serialization.write import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.createViewJsonV300 import code.api.util.APIUtil.OAuth._ diff --git a/obp-api/src/test/scala/code/api/v2_2_0/AccountTest.scala b/obp-api/src/test/scala/code/api/v2_2_0/AccountTest.scala index 4521df27f3..f1a8fe91d5 100644 --- a/obp-api/src/test/scala/code/api/v2_2_0/AccountTest.scala +++ b/obp-api/src/test/scala/code/api/v2_2_0/AccountTest.scala @@ -1,5 +1,6 @@ package code.api.v2_2_0 +import org.json4s._ import code.api.Constant import code.api.util.APIUtil.OAuth._ import code.api.util.APIUtil.extractErrorMessageCode @@ -8,8 +9,7 @@ import code.api.util.ErrorMessages.UserHasMissingRoles import code.entitlement.Entitlement import code.setup.DefaultUsers import com.openbankproject.commons.model.{AccountRoutingJsonV121, AmountOfMoneyJsonV121} -import net.liftweb.json.JsonAST._ -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import java.util.concurrent.TimeUnit import scala.util.Random diff --git a/obp-api/src/test/scala/code/api/v2_2_0/CreateCounterpartyTest.scala b/obp-api/src/test/scala/code/api/v2_2_0/CreateCounterpartyTest.scala index b6035be7c1..b9f4e56b00 100644 --- a/obp-api/src/test/scala/code/api/v2_2_0/CreateCounterpartyTest.scala +++ b/obp-api/src/test/scala/code/api/v2_2_0/CreateCounterpartyTest.scala @@ -1,5 +1,6 @@ package code.api.v2_2_0 +import org.json4s._ import code.api.Constant._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON @@ -8,8 +9,7 @@ import code.api.util.ErrorMessages import code.setup.DefaultUsers import code.views.Views import com.openbankproject.commons.model.{AccountId, BankId, ViewId, BankIdAccountIdViewId} -import net.liftweb.json.JsonAST._ -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write class CreateCounterpartyTest extends V220ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v3_0_0/UserTest.scala b/obp-api/src/test/scala/code/api/v3_0_0/UserTest.scala index ff1dc56163..4ead1c5f1a 100644 --- a/obp-api/src/test/scala/code/api/v3_0_0/UserTest.scala +++ b/obp-api/src/test/scala/code/api/v3_0_0/UserTest.scala @@ -1,5 +1,6 @@ package code.api.v3_0_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.util.APIUtil.OAuth._ import code.api.util.{ApiRole, ErrorMessages} @@ -11,10 +12,10 @@ import code.entitlement.Entitlement import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonAST._ -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import net.liftweb.util.Helpers.randomString import org.scalatest.Tag +import com.openbankproject.commons.util.JsonAliases.compactRender class UserTest extends V300ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v3_0_0/ViewsTests.scala b/obp-api/src/test/scala/code/api/v3_0_0/ViewsTests.scala index 1d6df40d91..4a434407a2 100644 --- a/obp-api/src/test/scala/code/api/v3_0_0/ViewsTests.scala +++ b/obp-api/src/test/scala/code/api/v3_0_0/ViewsTests.scala @@ -26,8 +26,9 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_0_0 +import org.json4s._ import code.api.Constant._ -import _root_.net.liftweb.json.Serialization.write +import _root_.org.json4s.native.Serialization.write import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._ import code.api.util.APIUtil.OAuth._ diff --git a/obp-api/src/test/scala/code/api/v3_0_0/WarehouseTest.scala b/obp-api/src/test/scala/code/api/v3_0_0/WarehouseTest.scala index 3a88f90f26..286b27ad3f 100644 --- a/obp-api/src/test/scala/code/api/v3_0_0/WarehouseTest.scala +++ b/obp-api/src/test/scala/code/api/v3_0_0/WarehouseTest.scala @@ -2,6 +2,7 @@ package code.api.v3_0_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.CanSearchWarehouse @@ -10,7 +11,7 @@ import code.api.util.ErrorMessages.UserHasMissingRoles import code.api.v3_0_0.OBPAPI3_0_0.Implementations3_0_0 import code.setup.{APIResponse, DefaultUsers} import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v3_0_0/WarehouseTestAsync.scala b/obp-api/src/test/scala/code/api/v3_0_0/WarehouseTestAsync.scala index 6d0ee31883..b7cabd32c3 100644 --- a/obp-api/src/test/scala/code/api/v3_0_0/WarehouseTestAsync.scala +++ b/obp-api/src/test/scala/code/api/v3_0_0/WarehouseTestAsync.scala @@ -2,6 +2,7 @@ package code.api.v3_0_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.CanSearchWarehouse @@ -10,7 +11,7 @@ import code.api.util.ErrorMessages.UserHasMissingRoles import code.api.v3_0_0.OBPAPI3_0_0.Implementations3_0_0 import code.setup.{APIResponse, DefaultUsers} import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.concurrent.Future diff --git a/obp-api/src/test/scala/code/api/v3_1_0/AccountAttributeTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/AccountAttributeTest.scala index 6e14d08e21..0840caa931 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/AccountAttributeTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/AccountAttributeTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.accountAttributeJson import code.api.util.APIUtil @@ -37,7 +38,7 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.model.enums.ProductAttributeType import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AccountAttributeTest extends V310ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v3_1_0/AccountTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/AccountTest.scala index f777d30511..b32dd1ebb1 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/AccountTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/AccountTest.scala @@ -1,5 +1,6 @@ package code.api.v3_1_0 +import org.json4s._ import code.api.Constant import com.openbankproject.commons.model.{AccountRouting, AccountRoutingJsonV121, AmountOfMoneyJsonV121, ErrorMessage, enums} import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON @@ -20,7 +21,7 @@ import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.enums.AccountRoutingScheme import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import java.util.UUID diff --git a/obp-api/src/test/scala/code/api/v3_1_0/CardAttributeTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/CardAttributeTest.scala index c8ca386367..76d1f4e992 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/CardAttributeTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/CardAttributeTest.scala @@ -1,6 +1,7 @@ package code.api.v3_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.createPhysicalCardJsonV310 import code.api.util.APIUtil.OAuth._ @@ -11,7 +12,7 @@ import code.entitlement.Entitlement import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class CardAttributeTest extends V310ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v3_1_0/CardTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/CardTest.scala index 7d2ac71236..cdf972e6ea 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/CardTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/CardTest.scala @@ -1,5 +1,6 @@ package code.api.v3_1_0 +import org.json4s._ import java.util.Date import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON @@ -11,7 +12,7 @@ import code.api.v3_1_0.OBPAPI3_1_0.Implementations3_1_0 import code.entitlement.Entitlement import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import code.api.util.ErrorMessages._ import code.api.v1_3_0.ReplacementJSON diff --git a/obp-api/src/test/scala/code/api/v3_1_0/ConsentTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/ConsentTest.scala index 03fd2b5f11..5d83a8e264 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/ConsentTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/ConsentTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import code.api.Constant import code.api.RequestHeader import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON @@ -38,7 +39,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import java.util.Date diff --git a/obp-api/src/test/scala/code/api/v3_1_0/CustomerAddressTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/CustomerAddressTest.scala index beaf7a5d7a..313b5a16d8 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/CustomerAddressTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/CustomerAddressTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ @@ -36,7 +37,7 @@ import code.customer.CustomerX import code.entitlement.Entitlement import code.usercustomerlinks.UserCustomerLink import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.collection.immutable.List diff --git a/obp-api/src/test/scala/code/api/v3_1_0/CustomerTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/CustomerTest.scala index b1f9b4bae3..44e2e20f38 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/CustomerTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/CustomerTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ @@ -39,7 +40,7 @@ import code.entitlement.Entitlement import code.setup.PropsReset import code.usercustomerlinks.UserCustomerLink import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class CustomerTest extends V310ServerSetup with PropsReset{ diff --git a/obp-api/src/test/scala/code/api/v3_1_0/FundsAvailableTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/FundsAvailableTest.scala index ffb3107ff0..af09867e38 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/FundsAvailableTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/FundsAvailableTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.canCheckFundsAvailable @@ -34,7 +35,7 @@ import code.api.v1_2_1.{CreateViewJsonV121, ViewJSONV121} import code.api.v3_1_0.OBPAPI3_1_0.Implementations3_1_0 import code.setup.APIResponse import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import net.liftweb.util.Helpers.randomString import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v3_1_0/MeetingsTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/MeetingsTest.scala index f2519fc86b..1a68ded29d 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/MeetingsTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/MeetingsTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ @@ -33,7 +34,7 @@ import code.api.util.ErrorMessages.{InvalidJsonFormat, AuthenticatedUserIsRequir import code.api.v2_0_0.CreateMeetingJson import code.api.v3_1_0.OBPAPI3_1_0.Implementations3_1_0 import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class MeetingsTest extends V310ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v3_1_0/MethodRoutingTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/MethodRoutingTest.scala index ad564b6e5c..f220f10980 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/MethodRoutingTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/MethodRoutingTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -34,7 +35,7 @@ import code.api.v3_1_0.OBPAPI3_1_0.Implementations3_1_0 import code.entitlement.Entitlement import code.methodrouting.{MethodRoutingCommons, MethodRoutingParam} import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.collection.immutable.List diff --git a/obp-api/src/test/scala/code/api/v3_1_0/ProductAttributeTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/ProductAttributeTest.scala index 054e42092d..42373946b0 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/ProductAttributeTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/ProductAttributeTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.productAttributeJson import code.api.util.APIUtil.OAuth._ @@ -35,7 +36,7 @@ import code.api.v3_1_0.OBPAPI3_1_0.Implementations3_1_0 import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.enums.ProductAttributeType -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class ProductAttributeTest extends V310ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v3_1_0/ProductCollectionTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/ProductCollectionTest.scala index 54e6e55ba1..c282876f22 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/ProductCollectionTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/ProductCollectionTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanCreateProduct, CanMaintainProductCollection} @@ -32,8 +33,8 @@ import com.openbankproject.commons.util.ApiVersion import code.api.v3_1_0.OBPAPI3_1_0.Implementations3_1_0 import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write -import net.liftweb.json.prettyRender +import org.json4s.native.Serialization.write +import com.openbankproject.commons.util.JsonAliases.prettyRender import org.scalatest.Tag class ProductCollectionTest extends V310ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v3_1_0/ProductTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/ProductTest.scala index bf51c985ad..634ec1b980 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/ProductTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/ProductTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.productAttributeJson @@ -35,8 +36,9 @@ import code.api.util.ErrorMessages._ import code.api.v3_1_0.OBPAPI3_1_0.Implementations3_1_0 import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.{Extraction, prettyRender} -import net.liftweb.json.Serialization.write +import org.json4s.Extraction +import com.openbankproject.commons.util.JsonAliases.prettyRender +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.collection.immutable.{List, Nil} diff --git a/obp-api/src/test/scala/code/api/v3_1_0/RateLimitTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/RateLimitTest.scala index f0a8cbcf16..20a4241e9b 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/RateLimitTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/RateLimitTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import code.api.cache.Redis import java.time.format.DateTimeFormatter @@ -41,7 +42,7 @@ import code.setup.PropsReset import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class RateLimitTest extends V310ServerSetup with PropsReset { diff --git a/obp-api/src/test/scala/code/api/v3_1_0/SystemViewsTests.scala b/obp-api/src/test/scala/code/api/v3_1_0/SystemViewsTests.scala index 2db6316145..1bece325e8 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/SystemViewsTests.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/SystemViewsTests.scala @@ -26,7 +26,8 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 -import _root_.net.liftweb.json.Serialization.write +import org.json4s._ +import _root_.org.json4s.native.Serialization.write import com.openbankproject.commons.model.ErrorMessage import code.api.Constant._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._ diff --git a/obp-api/src/test/scala/code/api/v3_1_0/TaxResidenceTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/TaxResidenceTest.scala index 475c281716..b7d1a2580f 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/TaxResidenceTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/TaxResidenceTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ @@ -34,7 +35,7 @@ import code.api.util.ErrorMessages._ import code.api.v3_1_0.OBPAPI3_1_0.Implementations3_1_0 import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class TaxResidenceTest extends V310ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v3_1_0/TransactionTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/TransactionTest.scala index 7850cf3ba0..724b3d98e3 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/TransactionTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/TransactionTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import code.api.Constant._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON @@ -45,7 +46,7 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.AmountOfMoneyJsonV121 import com.openbankproject.commons.util.ApiVersion import org.scalatest.Tag -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write class TransactionTest extends V310ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v3_1_0/UserAuthContextTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/UserAuthContextTest.scala index a3283be496..c7f710c407 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/UserAuthContextTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/UserAuthContextTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ @@ -34,7 +35,7 @@ import code.api.util.ErrorMessages._ import code.api.v3_1_0.OBPAPI3_1_0.Implementations3_1_0 import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.language.postfixOps diff --git a/obp-api/src/test/scala/code/api/v3_1_0/UserAuthContextUpdateTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/UserAuthContextUpdateTest.scala index 00c03b529a..b624e64ae2 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/UserAuthContextUpdateTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/UserAuthContextUpdateTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanCreateCustomer, CanGetUserAuthContext, CanGetUserCustomerLink} @@ -40,7 +41,7 @@ import com.openbankproject.commons.model.UserAuthContextUpdateStatus import com.openbankproject.commons.model.enums.StrongCustomerAuthentication import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.Full -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.language.postfixOps diff --git a/obp-api/src/test/scala/code/api/v3_1_0/V310ServerSetup.scala b/obp-api/src/test/scala/code/api/v3_1_0/V310ServerSetup.scala index 5387f0bf31..2dbaf9273a 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/V310ServerSetup.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/V310ServerSetup.scala @@ -1,5 +1,6 @@ package code.api.v3_1_0 +import org.json4s._ import code.api.util.APIUtil.OAuth.{Consumer, Token, _} import code.api.util.ApiRole.CanCreateProduct import code.api.v1_2_1._ @@ -8,7 +9,7 @@ import code.api.v3_0_0.{TransactionJsonV300, TransactionsJsonV300, ViewsJsonV300 import code.entitlement.Entitlement import code.setup.{APIResponse, DefaultUsers, ServerSetupWithTestData} import dispatch.Req -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import scala.util.Random.nextInt diff --git a/obp-api/src/test/scala/code/api/v3_1_0/WebUiPropsTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/WebUiPropsTest.scala index b5660eeccf..ba825fd978 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/WebUiPropsTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/WebUiPropsTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -34,7 +35,7 @@ import code.api.v3_1_0.OBPAPI3_1_0.Implementations3_1_0 import code.entitlement.Entitlement import code.webuiprops.WebUiPropsCommons import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class WebUiPropsTest extends V310ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v3_1_0/WebhooksTest.scala b/obp-api/src/test/scala/code/api/v3_1_0/WebhooksTest.scala index 9ce8c552ec..aa3bcf99cd 100644 --- a/obp-api/src/test/scala/code/api/v3_1_0/WebhooksTest.scala +++ b/obp-api/src/test/scala/code/api/v3_1_0/WebhooksTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v3_1_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.accountWebhookPutJson @@ -36,7 +37,7 @@ import code.api.v3_1_0.OBPAPI3_1_0.Implementations3_1_0 import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class WebhooksTest extends V310ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/AccountAccessTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/AccountAccessTest.scala index 50722acb29..e1784ab9fc 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/AccountAccessTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/AccountAccessTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.createViewJsonV300 @@ -14,7 +15,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.AmountOfMoneyJsonV121 import net.liftweb.common.Box -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import java.util.concurrent.TimeUnit diff --git a/obp-api/src/test/scala/code/api/v4_0_0/AccountTagTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/AccountTagTest.scala index 7d879fb68d..f0973a451b 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/AccountTagTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/AccountTagTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ @@ -7,7 +8,7 @@ import com.openbankproject.commons.util.ApiVersion import code.api.util.ErrorMessages.AuthenticatedUserIsRequired import code.api.v4_0_0.OBPAPI4_0_0.Implementations4_0_0 import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AccountTagTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/AccountTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/AccountTest.scala index 516a592196..5b42238a0d 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/AccountTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/AccountTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.accountAttributeJson import code.api.util.APIUtil.OAuth._ @@ -15,7 +16,7 @@ import com.openbankproject.commons.model.enums.AccountRoutingScheme import com.openbankproject.commons.model.{AccountRoutingJsonV121, AmountOfMoneyJsonV121, ErrorMessage} import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.Box -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import java.util.concurrent.TimeUnit diff --git a/obp-api/src/test/scala/code/api/v4_0_0/ApiCollectionEndpointTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/ApiCollectionEndpointTest.scala index 0aaec7df8a..5e57ea2a7e 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/ApiCollectionEndpointTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/ApiCollectionEndpointTest.scala @@ -25,12 +25,13 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.v4_0_0.APIMethods400.Implementations4_0_0 import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class ApiCollectionEndpointTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/ApiCollectionTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/ApiCollectionTest.scala index cca293c7df..e889dc5718 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/ApiCollectionTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/ApiCollectionTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole @@ -33,7 +34,7 @@ import code.api.v4_0_0.APIMethods400.Implementations4_0_0 import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class ApiCollectionTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/AtmsTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/AtmsTest.scala index c49434dbf2..cd7fa76343 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/AtmsTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/AtmsTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole @@ -10,7 +11,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AtmsTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/AttributeDefinitionTransactionRequestTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/AttributeDefinitionTransactionRequestTest.scala index 53d2938a72..4baaf792c5 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/AttributeDefinitionTransactionRequestTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/AttributeDefinitionTransactionRequestTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ErrorMessages.{UserHasMissingRoles, AuthenticatedUserIsRequired} @@ -7,7 +8,7 @@ import code.api.v4_0_0.OBPAPI4_0_0.Implementations4_0_0 import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AttributeDefinitionTransactionRequestTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationAttributeTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationAttributeTest.scala index e0a539820c..dafb3d4cbe 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationAttributeTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationAttributeTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ErrorMessages.{UserHasMissingRoles, AuthenticatedUserIsRequired} @@ -7,7 +8,7 @@ import code.api.v4_0_0.OBPAPI4_0_0.Implementations4_0_0 import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AttributeDefinitionAttributeTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationCardTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationCardTest.scala index 52e89e179d..3f719174a5 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationCardTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationCardTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ErrorMessages.{UserHasMissingRoles, AuthenticatedUserIsRequired} @@ -7,7 +8,7 @@ import code.api.v4_0_0.OBPAPI4_0_0.Implementations4_0_0 import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AttributeDefinitionCardTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationCustomerTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationCustomerTest.scala index 81f7e17d2d..245dd10742 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationCustomerTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationCustomerTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ErrorMessages.{UserHasMissingRoles, AuthenticatedUserIsRequired} @@ -7,7 +8,7 @@ import code.api.v4_0_0.OBPAPI4_0_0.Implementations4_0_0 import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AttributeDefinitionCustomerTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationProductTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationProductTest.scala index 54c8d309ad..396d364fca 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationProductTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationProductTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ErrorMessages.{UserHasMissingRoles, AuthenticatedUserIsRequired} @@ -7,7 +8,7 @@ import code.api.v4_0_0.OBPAPI4_0_0.Implementations4_0_0 import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AttributeDefinitionProductTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationTransactionTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationTransactionTest.scala index db02c6ec29..0efcfad9b6 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationTransactionTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/AttributeDocumentationTransactionTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ErrorMessages.{UserHasMissingRoles, AuthenticatedUserIsRequired} @@ -7,7 +8,7 @@ import code.api.v4_0_0.OBPAPI4_0_0.Implementations4_0_0 import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AttributeDefinitionTransactionTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/AuthenticationTypeValidationTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/AuthenticationTypeValidationTest.scala index b6a9344bfa..5af94309ca 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/AuthenticationTypeValidationTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/AuthenticationTypeValidationTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole import code.api.util.ApiRole._ @@ -11,9 +12,9 @@ import code.setup.APIResponse import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json -import net.liftweb.json.JsonAST.JBool -import net.liftweb.json.{JArray, JString} +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.JBool +import org.json4s.{JArray, JString} import org.scalatest.Tag class AuthenticationTypeValidationTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/BankAttributeTests.scala b/obp-api/src/test/scala/code/api/v4_0_0/BankAttributeTests.scala index 01998f3ee1..695518aa30 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/BankAttributeTests.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/BankAttributeTests.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanCreateBankAttribute, CanDeleteBankAttribute, CanGetBankAttribute, CanUpdateBankAttribute} @@ -11,7 +12,7 @@ import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class BankAttributeTests extends V400ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/BankTests.scala b/obp-api/src/test/scala/code/api/v4_0_0/BankTests.scala index b7f595dc20..9a636be20a 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/BankTests.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/BankTests.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.Constant.{INCOMING_SETTLEMENT_ACCOUNT_ID, OUTGOING_SETTLEMENT_ACCOUNT_ID} import com.openbankproject.commons.model.{AccountId, BankId, ErrorMessage} import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.bankJson400 @@ -12,7 +13,7 @@ import code.entitlement.Entitlement import code.setup.{APIResponse, DefaultUsers} import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class BankTests extends V400ServerSetupAsync with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/ConnectorMethodTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/ConnectorMethodTest.scala index ec2d327f5b..1de74e756b 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/ConnectorMethodTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/ConnectorMethodTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.ApiRole._ import code.api.util.APIUtil.OAuth._ @@ -39,11 +40,11 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{Bank, BankId, ErrorMessage} import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.Full -import net.liftweb.json.JArray -import net.liftweb.json.Serialization.write +import org.json4s.JArray +import org.json4s.native.Serialization.write import org.scalatest.Tag import dispatch.Req -import net.liftweb.json.JArray +import org.json4s.JArray import java.net.URLEncoder import java.util.concurrent.TimeUnit diff --git a/obp-api/src/test/scala/code/api/v4_0_0/CounterpartyTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/CounterpartyTest.scala index 016bce8f2f..64d1c0c22c 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/CounterpartyTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/CounterpartyTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.Constant.SYSTEM_OWNER_VIEW_ID import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ @@ -11,7 +12,7 @@ import code.views.Views import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{AccountId, ErrorMessage, ViewId, BankIdAccountIdViewId} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class CounterpartyTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/CustomerAttributesTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/CustomerAttributesTest.scala index 0e37f5ebc5..92a1f37bae 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/CustomerAttributesTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/CustomerAttributesTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -13,7 +14,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.collection.immutable.List diff --git a/obp-api/src/test/scala/code/api/v4_0_0/CustomerMessageTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/CustomerMessageTest.scala index 34dbca7eb5..ec76608432 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/CustomerMessageTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/CustomerMessageTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -35,7 +36,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.collection.immutable.Nil diff --git a/obp-api/src/test/scala/code/api/v4_0_0/CustomerTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/CustomerTest.scala index 4d1c73ca56..13be809dbc 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/CustomerTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/CustomerTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.postCustomerPhoneNumberJsonV400 import code.api.util.APIUtil.OAuth._ @@ -40,7 +41,7 @@ import code.usercustomerlinks.UserCustomerLink import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class CustomerTest extends V400ServerSetup with PropsReset{ diff --git a/obp-api/src/test/scala/code/api/v4_0_0/DeleteAccountCascadeTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/DeleteAccountCascadeTest.scala index 5d879439d3..c154c263f5 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/DeleteAccountCascadeTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/DeleteAccountCascadeTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.Constant import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.createViewJsonV300 @@ -13,7 +14,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{AmountOfMoneyJsonV121, ErrorMessage} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import java.util.concurrent.TimeUnit diff --git a/obp-api/src/test/scala/code/api/v4_0_0/DeleteBankCascadeTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/DeleteBankCascadeTest.scala index 9b6b23d8ea..a77ce4c3e9 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/DeleteBankCascadeTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/DeleteBankCascadeTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.Constant import java.util.concurrent.TimeUnit @@ -15,7 +16,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{AmountOfMoneyJsonV121, ErrorMessage} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class DeleteBankCascadeTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/DirectDebitTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/DirectDebitTest.scala index cc864b0515..7248ec5c07 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/DirectDebitTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/DirectDebitTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ @@ -9,7 +10,7 @@ import com.openbankproject.commons.util.ApiVersion import code.api.util.ErrorMessages.{NoViewPermission, UserHasMissingRoles, AuthenticatedUserIsRequired} import code.api.v4_0_0.OBPAPI4_0_0.Implementations4_0_0 import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class DirectDebitTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/DynamicEndpointHelperTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/DynamicEndpointHelperTest.scala index 45b976114f..d3f4f1b118 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/DynamicEndpointHelperTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/DynamicEndpointHelperTest.scala @@ -1,12 +1,14 @@ package code.api.v4_0_0 +import org.json4s._ import code.DynamicData.DynamicDataT import code.api.dynamic.endpoint.helper.DynamicEndpointHelper import code.api.util.APIUtil.defaultBankId import code.connector.MockedCbsConnector.testBankId1 -import net.liftweb.json -import net.liftweb.json.JsonAST.JValue -import net.liftweb.json.{Formats, JArray, prettyRender} +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.JValue +import org.json4s.{Formats, JArray} +import com.openbankproject.commons.util.JsonAliases.prettyRender import org.scalatest.{FlatSpec, Matchers, Tag} import scala.collection.immutable.List @@ -14,7 +16,7 @@ import scala.collection.immutable.List class DynamicEndpointHelperTest extends FlatSpec with Matchers { object FunctionsTag extends Tag("DynamicEndpointHelper") - implicit def formats: Formats = net.liftweb.json.DefaultFormats + implicit def formats: Formats = org.json4s.DefaultFormats "prepareMappingFields single" should "work well" taggedAs FunctionsTag in { @@ -96,8 +98,8 @@ class DynamicEndpointHelperTest extends FlatSpec with Matchers { | } |}""".stripMargin - val expectJsonResult = prettyRender(DynamicEndpointHelper.prepareMappingFields(orignalJson)) - expectJson should equal(expectJsonResult) + val expectedJValue = json.parse(expectJson) + DynamicEndpointHelper.prepareMappingFields(orignalJson) should equal(expectedJValue) } "prepareMappingFields Array" should "work well" taggedAs FunctionsTag in { val orignalJson = """{ @@ -174,9 +176,8 @@ class DynamicEndpointHelperTest extends FlatSpec with Matchers { | } |}""".stripMargin - val resultJson = prettyRender(DynamicEndpointHelper.prepareMappingFields(orignalJson)) - println(resultJson) - expectJson should equal(resultJson) + val expectedJValue = json.parse(expectJson) + DynamicEndpointHelper.prepareMappingFields(orignalJson) should equal(expectedJValue) } "getAllEntitiesFromMapping " should "work well" taggedAs FunctionsTag in { @@ -668,34 +669,7 @@ class DynamicEndpointHelperTest extends FlatSpec with Matchers { val result = DynamicEndpointHelper.getObjectsByParams(jArray, params) - val str1 = prettyRender(result) - println(str1) - - val expectString ="""[ - | { - | "field1":1, - | "field2":2, - | "field3":"field3-1", - | "field4":"field4-1", - | "field5":"field5-1", - | "field6":6, - | "field7":"field7-1", - | "field8":"available", - | "pet_entity_id":"bd1f083b-af72-42cf-8a70-21d7740f3861" - | }, - | { - | "field1":3, - | "field2":222, - | "field3":"field3-3", - | "field4":"field4-3", - | "field5":"field5-3", - | "field6":666, - | "field7":"field7-3", - | "field8":"available", - | "pet_entity_id":"33ca0384-5835-431e-9b88-4257f71f1483" - | } - |]""".stripMargin - expectString should equal(str1) + result should equal(JArray(List(jValue1, jValue3))) } "getObjectsByKeyValuePair no param" should "work well " taggedAs FunctionsTag in { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/DynamicEntityTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/DynamicEntityTest.scala index 5d423f39fb..ca1cec323e 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/DynamicEntityTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/DynamicEntityTest.scala @@ -33,9 +33,10 @@ import code.api.util.ErrorMessages._ import code.api.v4_0_0.APIMethods400.Implementations4_0_0 import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.Serialization.write -import net.liftweb.json._ +import org.json4s.JsonDSL._ +import org.json4s.native.Serialization.write +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import org.scalatest.Tag class DynamicEntityTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/DynamicIntegrationTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/DynamicIntegrationTest.scala index 412b2bbed3..45a904fe60 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/DynamicIntegrationTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/DynamicIntegrationTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -11,7 +12,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class DynamicIntegrationTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/DynamicMessageDocTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/DynamicMessageDocTest.scala index 95195bc0fd..2c53c8af95 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/DynamicMessageDocTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/DynamicMessageDocTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -38,8 +39,8 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{Bank, BankId, ErrorMessage} import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.Box -import net.liftweb.json.JArray -import net.liftweb.json.Serialization.write +import org.json4s.JArray +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.concurrent.Await diff --git a/obp-api/src/test/scala/code/api/v4_0_0/DynamicResourceDocTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/DynamicResourceDocTest.scala index c9f8c421cc..70d4f035bf 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/DynamicResourceDocTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/DynamicResourceDocTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -36,9 +37,9 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json -import net.liftweb.json.JArray -import net.liftweb.json.Serialization.write +import com.openbankproject.commons.util.json +import org.json4s.JArray +import org.json4s.native.Serialization.write import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v4_0_0/DynamicendPointsTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/DynamicendPointsTest.scala index ab118fe6da..fa1e108a52 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/DynamicendPointsTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/DynamicendPointsTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -12,9 +13,9 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JArray -import net.liftweb.json.JsonAST.{JField, JString} -import net.liftweb.json.Serialization.write +import org.json4s.JArray +import org.json4s.JsonAST.{JField, JString} +import org.json4s.native.Serialization.write import org.scalatest.Tag class DynamicEndpointsTest extends V400ServerSetup { @@ -1700,7 +1701,7 @@ class DynamicEndpointsTest extends V400ServerSetup { duplicatedRequest.body.extract[ErrorMessage].message.toString contains (DynamicEndpointExists) should be (true) - val id = responseWithRole.body.\\("dynamic_endpoint_id").values.get("dynamic_endpoint_id").head.toString + val id = responseWithRole.body.\\("dynamic_endpoint_id").values.toString val request400 = (v4_0_0_Request / "management" / "dynamic-endpoints" /id).GET<@ (user1) val response400 = makeGetRequest(request400) @@ -1759,7 +1760,7 @@ class DynamicEndpointsTest extends V400ServerSetup { responseWithRole.code should equal(201) - val id = responseWithRole.body.\\("dynamic_endpoint_id").values.get("dynamic_endpoint_id").head.toString + val id = responseWithRole.body.\\("dynamic_endpoint_id").values.toString val request400 = (v4_0_0_Request / "management" / "dynamic-endpoints" /id).GET<@ (user1) val response400 = makeGetRequest(request400) @@ -1797,7 +1798,7 @@ class DynamicEndpointsTest extends V400ServerSetup { responseWithRole.code should equal(201) - val id = responseWithRole.body.\\("dynamic_endpoint_id").values.get("dynamic_endpoint_id").head.toString + val id = responseWithRole.body.\\("dynamic_endpoint_id").values.toString val request400 = (v4_0_0_Request / "my" / "dynamic-endpoints").GET<@ (user1) val response400 = makeGetRequest(request400) diff --git a/obp-api/src/test/scala/code/api/v4_0_0/EndpointMappingBankLevelTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/EndpointMappingBankLevelTest.scala index 28f77eb238..cacded65e2 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/EndpointMappingBankLevelTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/EndpointMappingBankLevelTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.jsonCodeTemplateJson import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -11,7 +12,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class EndpointMappingBankLevelTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/EndpointMappingTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/EndpointMappingTest.scala index c981549d89..cc7dc6ef88 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/EndpointMappingTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/EndpointMappingTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.jsonCodeTemplateJson import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -11,7 +12,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class EndpointMappingTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/EndpointTagTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/EndpointTagTest.scala index 7174b951e1..1dee578409 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/EndpointTagTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/EndpointTagTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole @@ -32,7 +33,7 @@ import code.api.v4_0_0.APIMethods400.Implementations4_0_0 import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class EndpointTagTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/EntitlementTests.scala b/obp-api/src/test/scala/code/api/v4_0_0/EntitlementTests.scala index 0bf1dca2b6..9a779beb1b 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/EntitlementTests.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/EntitlementTests.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import com.openbankproject.commons.model.ErrorMessage import code.api.util.ApiRole.{CanCreateBranch, CanGetEntitlementsForAnyBank, CanGetEntitlementsForAnyUserAtAnyBank, CanGetEntitlementsForOneBank, CanUpdateBranch} @@ -13,7 +14,7 @@ import code.api.v2_0_0.CreateEntitlementJSON import code.api.v4_0_0.APIMethods400.Implementations4_0_0 import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class EntitlementTests extends V400ServerSetupAsync with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/ForceErrorValidationTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/ForceErrorValidationTest.scala index fab407dd70..5bbe3375e2 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/ForceErrorValidationTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/ForceErrorValidationTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole import code.api.util.ApiRole._ @@ -14,7 +15,8 @@ import code.setup.{APIResponse, PropsReset} import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.{JInt, JString, prettyRender} +import org.json4s.{JInt, JString} +import com.openbankproject.commons.util.JsonAliases.prettyRender import org.scalatest.Tag class ForceErrorValidationTest extends V400ServerSetup with PropsReset { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/JsonSchemaValidationTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/JsonSchemaValidationTest.scala index f5473a7cba..e1cb541449 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/JsonSchemaValidationTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/JsonSchemaValidationTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole import code.api.util.ApiRole._ @@ -11,9 +12,9 @@ import code.setup.APIResponse import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json -import net.liftweb.json.JsonAST.JBool -import net.liftweb.json.{JArray, JString} +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.JBool +import org.json4s.{JArray, JString} import org.scalatest.Tag class JsonSchemaValidationTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/MakerCheckerTransactionRequestTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/MakerCheckerTransactionRequestTest.scala index ec06e5c455..93debfd372 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/MakerCheckerTransactionRequestTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/MakerCheckerTransactionRequestTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.Constant._ import code.api.util.APIUtil import code.api.util.APIUtil.OAuth._ @@ -17,7 +18,7 @@ import com.openbankproject.commons.model.enums.TransactionRequestStatus import com.openbankproject.commons.model.enums.TransactionRequestTypes._ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class MakerCheckerTransactionRequestTest extends V400ServerSetup with DefaultUsers { @@ -81,7 +82,8 @@ class MakerCheckerTransactionRequestTest extends V400ServerSetup with DefaultUse (createResponse.body \ "status").values.toString should equal(TransactionRequestStatus.INITIATED.toString) - val challengeId = (createResponse.body \ "challenges" \ "id").values.toString + val challengeId = (createResponse.body \ "challenges").extract[List[JValue]].headOption + .map(c => (c \ "id").values.toString).getOrElse("") challengeId should not equal ("") (bankId, fromAccount, transactionRequestType, transRequestId, challengeId) diff --git a/obp-api/src/test/scala/code/api/v4_0_0/PasswordRecoverTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/PasswordRecoverTest.scala index ce104b65d1..d1a50c582b 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/PasswordRecoverTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/PasswordRecoverTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v4_0_0 +import org.json4s._ import java.util.UUID import com.openbankproject.commons.model.ErrorMessage @@ -39,7 +40,7 @@ import code.users.Users import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.User import net.liftweb.common.Box -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import net.liftweb.mapper.By import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v4_0_0/ProductFeeTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/ProductFeeTest.scala index 0cb847a746..2ba3315370 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/ProductFeeTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/ProductFeeTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.productFeeJsonV400 import code.api.util.APIUtil.OAuth._ @@ -34,7 +35,7 @@ import code.api.v4_0_0.OBPAPI4_0_0.Implementations4_0_0 import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class ProductFeeTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/ProductTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/ProductTest.scala index 395acf0a13..6c3276f044 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/ProductTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/ProductTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.ErrorMessages._ import code.api.util.APIUtil.OAuth._ @@ -34,7 +35,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.collection.immutable.{List, Nil} diff --git a/obp-api/src/test/scala/code/api/v4_0_0/RateLimitingTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/RateLimitingTest.scala index 5690524ae8..0c92ac817f 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/RateLimitingTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/RateLimitingTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v4_0_0 +import org.json4s._ import code.api.cache.Redis import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanUpdateRateLimits, canCreateDynamicEndpoint} @@ -37,7 +38,7 @@ import code.setup.PropsReset import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import java.time.format.DateTimeFormatter diff --git a/obp-api/src/test/scala/code/api/v4_0_0/ScopesTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/ScopesTest.scala index be9f7f106d..d851e33f78 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/ScopesTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/ScopesTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole @@ -13,7 +14,7 @@ import code.setup.APIResponse import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class ScopesTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/SettlementAccountTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/SettlementAccountTest.scala index efa45a4953..4c626c841b 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/SettlementAccountTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/SettlementAccountTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.accountAttributeJson import code.api.util.APIUtil.OAuth._ @@ -15,7 +16,7 @@ import com.openbankproject.commons.model.enums.AccountRoutingScheme import com.openbankproject.commons.model.{AccountRoutingJsonV121, AmountOfMoneyJsonV121, ErrorMessage} import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.Box -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import java.util.concurrent.TimeUnit diff --git a/obp-api/src/test/scala/code/api/v4_0_0/StandingOrderTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/StandingOrderTest.scala index 33eb4b7f4d..a5a1acbca2 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/StandingOrderTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/StandingOrderTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.util.APIUtil.OAuth._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON @@ -9,7 +10,7 @@ import com.openbankproject.commons.util.ApiVersion import code.api.util.ErrorMessages.{NoViewPermission, UserHasMissingRoles, AuthenticatedUserIsRequired} import code.api.v4_0_0.OBPAPI4_0_0.Implementations4_0_0 import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class StandingOrderTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/TransactionAttributesTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/TransactionAttributesTest.scala index 45a2b65b32..d5d81d2efe 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/TransactionAttributesTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/TransactionAttributesTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.Constant import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ @@ -10,7 +11,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{BankId, ErrorMessage} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v4_0_0/TransactionRequestAttributesTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/TransactionRequestAttributesTest.scala index 5a5a15ab60..c229510c56 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/TransactionRequestAttributesTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/TransactionRequestAttributesTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.Constant import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil @@ -11,7 +12,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v4_0_0/TransactionRequestsTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/TransactionRequestsTest.scala index e2fe39b1fe..08bf4d59e9 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/TransactionRequestsTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/TransactionRequestsTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.Constant import java.util.{Date, UUID} @@ -29,7 +30,7 @@ import com.openbankproject.commons.model.enums.TransactionRequestTypes import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model._ import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.collection.immutable.List @@ -233,7 +234,7 @@ class TransactionRequestsTest extends V400ServerSetup with DefaultUsers { (createTransactionRequestResponse.body \ "transaction_ids").values.toString should equal("List()") Then("Challenge should have body, this is the with challenge scenario") (createTransactionRequestResponse.body \ "challenges").children.size should not equal (0) - challengeId = (createTransactionRequestResponse.body \ "challenges" \ "id").values.toString + challengeId = (createTransactionRequestResponse.body \ "challenges" \ "id").children.headOption.map(_.values.toString).getOrElse("") challengeId should not equal ("") } else { Then("We should have the COMPLETED status in response body") @@ -266,19 +267,19 @@ class TransactionRequestsTest extends V400ServerSetup with DefaultUsers { if (withChellenge) { And("We should have the INITIATED status in response body") - (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "status").values.toString should equal(TransactionRequestStatus.INITIATED.toString) + (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "status").extract[List[String]] should equal(List(TransactionRequestStatus.INITIATED.toString)) And("Challenge should be not null, this is the no challenge scenario") (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "challenge").children.size should not equal (0) And("We should have be null value for TransactionIds") - (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "transaction_ids").values.toString should equal("List()") + (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "transaction_ids").children.headOption.map(_.values.toString).getOrElse("List()") should equal("List()") } else { And("We should have the COMPLETED status in response body") - (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "status").values.toString should equal(TransactionRequestStatus.COMPLETED.toString) + (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "status").extract[List[String]] should equal(List(TransactionRequestStatus.COMPLETED.toString)) And("Challenge should be null, this is the no challenge scenario") - (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "challenge").children.size should equal(0) + (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "challenge").children.headOption.map(_.children.size).getOrElse(0) should equal(0) And("We should have a new TransactionIds value") (getTransactionRequestResponse.body \ "transaction_requests_with_charges" \ "transaction_ids").values.toString should not equal ("") diff --git a/obp-api/src/test/scala/code/api/v4_0_0/UserAttributesTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/UserAttributesTest.scala index be22d80a7f..4937100d75 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/UserAttributesTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/UserAttributesTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -10,7 +11,7 @@ import code.users.UserAttribute import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v4_0_0/UserCustomerLinkTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/UserCustomerLinkTest.scala index 85d8ec9e31..71063059cc 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/UserCustomerLinkTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/UserCustomerLinkTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanCreateUserCustomerLink, CanDeleteUserCustomerLink, CanGetUserCustomerLink} @@ -10,7 +11,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class UserCustomerLinkTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/UserInvitationApiTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/UserInvitationApiTest.scala index 66c8e20feb..c4615b4c71 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/UserInvitationApiTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/UserInvitationApiTest.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole @@ -11,7 +12,7 @@ import code.users.UserInvitationProvider import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class UserInvitationApiTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v4_0_0/V400ServerSetup.scala b/obp-api/src/test/scala/code/api/v4_0_0/V400ServerSetup.scala index dbd09abf61..77d2a7279c 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/V400ServerSetup.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/V400ServerSetup.scala @@ -1,5 +1,6 @@ package code.api.v4_0_0 +import org.json4s._ import java.time.LocalDateTime import java.time.format.DateTimeFormatter import code.api.Constant._ @@ -25,7 +26,7 @@ import code.transactionattribute.MappedTransactionAttribute import com.openbankproject.commons.model.{AccountId, AccountRoutingJsonV121, AmountOfMoneyJsonV121, BankId, CreateViewJson, UpdateViewJSON} import com.openbankproject.commons.util.ApiShortVersions import dispatch.Req -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import net.liftweb.mapper.By import net.liftweb.util.Helpers.randomString diff --git a/obp-api/src/test/scala/code/api/v4_0_0/WebhooksTest.scala b/obp-api/src/test/scala/code/api/v4_0_0/WebhooksTest.scala index 8484dc4d3c..e42734c595 100644 --- a/obp-api/src/test/scala/code/api/v4_0_0/WebhooksTest.scala +++ b/obp-api/src/test/scala/code/api/v4_0_0/WebhooksTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v4_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.ApiRole._ import code.api.util.APIUtil.OAuth._ @@ -34,7 +35,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class WebhooksTest extends V400ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v5_0_0/ATMTest.scala b/obp-api/src/test/scala/code/api/v5_0_0/ATMTest.scala index 2506d75e12..04ebe6f9bf 100644 --- a/obp-api/src/test/scala/code/api/v5_0_0/ATMTest.scala +++ b/obp-api/src/test/scala/code/api/v5_0_0/ATMTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.{postUserAuthContextJson, postUserAuthContextUpdateJsonV310} import code.api.util.APIUtil.OAuth._ @@ -36,7 +37,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.language.postfixOps diff --git a/obp-api/src/test/scala/code/api/v5_0_0/AccountTest.scala b/obp-api/src/test/scala/code/api/v5_0_0/AccountTest.scala index 57fa875aec..c96fb08b1d 100644 --- a/obp-api/src/test/scala/code/api/v5_0_0/AccountTest.scala +++ b/obp-api/src/test/scala/code/api/v5_0_0/AccountTest.scala @@ -1,5 +1,6 @@ package code.api.v5_0_0 +import org.json4s._ import code.api.Constant import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ @@ -19,7 +20,7 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.enums.AccountRoutingScheme import com.openbankproject.commons.model.{AccountRoutingJsonV121, AmountOfMoneyJsonV121, ErrorMessage} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import java.util.UUID diff --git a/obp-api/src/test/scala/code/api/v5_0_0/BankTests.scala b/obp-api/src/test/scala/code/api/v5_0_0/BankTests.scala index 0374b73385..6619f30a69 100644 --- a/obp-api/src/test/scala/code/api/v5_0_0/BankTests.scala +++ b/obp-api/src/test/scala/code/api/v5_0_0/BankTests.scala @@ -1,5 +1,6 @@ package code.api.v5_0_0 +import org.json4s._ import code.api.Constant.{INCOMING_SETTLEMENT_ACCOUNT_ID, OUTGOING_SETTLEMENT_ACCOUNT_ID} import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.postBankJson500 import code.api.util.ApiRole.CanCreateBank @@ -12,7 +13,7 @@ import code.setup.{APIResponse, DefaultUsers} import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{AccountId, BankId, ErrorMessage} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class BankTests extends V500ServerSetupAsync with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v5_0_0/ConsentRequestTest.scala b/obp-api/src/test/scala/code/api/v5_0_0/ConsentRequestTest.scala index 89c2862b52..6a4d8297e4 100644 --- a/obp-api/src/test/scala/code/api/v5_0_0/ConsentRequestTest.scala +++ b/obp-api/src/test/scala/code/api/v5_0_0/ConsentRequestTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_0_0 +import org.json4s._ import code.api.{Constant, RequestHeader} import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ @@ -41,7 +42,7 @@ import code.setup.PropsReset import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{AccountRoutingJsonV121, ErrorMessage} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.language.postfixOps diff --git a/obp-api/src/test/scala/code/api/v5_0_0/CustomerAccountLinkTest.scala b/obp-api/src/test/scala/code/api/v5_0_0/CustomerAccountLinkTest.scala index cbc74b20fb..321108311a 100644 --- a/obp-api/src/test/scala/code/api/v5_0_0/CustomerAccountLinkTest.scala +++ b/obp-api/src/test/scala/code/api/v5_0_0/CustomerAccountLinkTest.scala @@ -1,5 +1,6 @@ package code.api.v5_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.v5_0_0.OBPAPI5_0_0.Implementations5_0_0 import code.setup.DefaultUsers @@ -12,7 +13,7 @@ import code.api.util.ApiRole.{canCreateCustomerAccountLink, canDeleteCustomerAcc import code.api.util.ErrorMessages.{UserHasMissingRoles, AuthenticatedUserIsRequired} import code.entitlement.Entitlement import com.openbankproject.commons.model.ErrorMessage -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write class CustomerAccountLinkTest extends V500ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v5_0_0/CustomerOverviewTest.scala b/obp-api/src/test/scala/code/api/v5_0_0/CustomerOverviewTest.scala index 46ed5e0789..244cd865b0 100644 --- a/obp-api/src/test/scala/code/api/v5_0_0/CustomerOverviewTest.scala +++ b/obp-api/src/test/scala/code/api/v5_0_0/CustomerOverviewTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -37,7 +38,7 @@ import code.usercustomerlinks.UserCustomerLink import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.language.postfixOps diff --git a/obp-api/src/test/scala/code/api/v5_0_0/CustomerTest.scala b/obp-api/src/test/scala/code/api/v5_0_0/CustomerTest.scala index b57b5df3c7..940d00e117 100644 --- a/obp-api/src/test/scala/code/api/v5_0_0/CustomerTest.scala +++ b/obp-api/src/test/scala/code/api/v5_0_0/CustomerTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.{postUserAuthContextJson, postUserAuthContextUpdateJsonV310} import code.api.util.APIUtil.OAuth._ @@ -41,7 +42,7 @@ import code.usercustomerlinks.UserCustomerLink import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import java.util.Date diff --git a/obp-api/src/test/scala/code/api/v5_0_0/Http4s500SystemViewsTest.scala b/obp-api/src/test/scala/code/api/v5_0_0/Http4s500SystemViewsTest.scala index 12deeb73cf..7de4bc0dfa 100644 --- a/obp-api/src/test/scala/code/api/v5_0_0/Http4s500SystemViewsTest.scala +++ b/obp-api/src/test/scala/code/api/v5_0_0/Http4s500SystemViewsTest.scala @@ -1,5 +1,6 @@ package code.api.v5_0_0 +import org.json4s._ import code.Http4sTestServer import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._ import code.api.util.APIUtil @@ -9,15 +10,16 @@ import code.setup.ServerSetupWithTestData import code.views.system.AccountAccess import dispatch.Defaults._ import dispatch._ -import net.liftweb.json.JValue -import net.liftweb.json.JsonAST.{JField, JObject, JString} -import net.liftweb.json.JsonParser.parse -import net.liftweb.json.Serialization.write +import org.json4s.JValue +import org.json4s.JsonAST.{JField, JObject, JString} +import com.openbankproject.commons.util.JsonAliases.parse +import org.json4s.native.Serialization.write import net.liftweb.mapper.By import org.scalatest.Tag import scala.concurrent.Await import scala.concurrent.duration._ +import com.openbankproject.commons.util.JsonAliases.RichJField /** * HTTP4S v5.0.0 System Views CRUD Integration Test @@ -29,6 +31,18 @@ class Http4s500SystemViewsTest extends ServerSetupWithTestData { object Http4s500SystemViewsTag extends Tag("Http4s500SystemViews") + // json4s-native 3.6.x rejects primitive root values (e.g. a bare `true` from a DELETE). + // Wrap in a single-element array so the native parser accepts it, then extract the element. + private def parsePermissive(body: String): JValue = + try parse(body) + catch { + case _: Throwable => + parse(s"[$body]") match { + case JArray(v :: _) => v + case other => other + } + } + // Use Http4sTestServer for full integration testing private val http4sServer = Http4sTestServer private val baseUrl = s"http://${http4sServer.host}:${http4sServer.port}" @@ -55,7 +69,7 @@ class Http4s500SystemViewsTest extends ServerSetupWithTestData { try { val response = Http.default(finalRequest.setHeader("Accept", "*/*") > as.Response(p => (p.getStatusCode, p.getResponseBody))) val (statusCode, responseBody) = Await.result(response, 10.seconds) - val json = if (responseBody.trim.isEmpty) JObject(Nil) else parse(responseBody) + val json = if (responseBody.trim.isEmpty) JObject(Nil) else parsePermissive(responseBody) (statusCode, json) } catch { case e: java.util.concurrent.ExecutionException => diff --git a/obp-api/src/test/scala/code/api/v5_0_0/ProductTest.scala b/obp-api/src/test/scala/code/api/v5_0_0/ProductTest.scala index 918cf47e4b..3ae3ad0b2c 100644 --- a/obp-api/src/test/scala/code/api/v5_0_0/ProductTest.scala +++ b/obp-api/src/test/scala/code/api/v5_0_0/ProductTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.ApiRole._ import code.api.util.APIUtil.OAuth._ @@ -36,7 +37,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.collection.immutable.Nil diff --git a/obp-api/src/test/scala/code/api/v5_0_0/UserAuthContextTest.scala b/obp-api/src/test/scala/code/api/v5_0_0/UserAuthContextTest.scala index f8908dba59..beff37d7d6 100644 --- a/obp-api/src/test/scala/code/api/v5_0_0/UserAuthContextTest.scala +++ b/obp-api/src/test/scala/code/api/v5_0_0/UserAuthContextTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_0_0 +import org.json4s._ import com.openbankproject.commons.model.ErrorMessage import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.{postUserAuthContextJson, postUserAuthContextUpdateJsonV310} @@ -36,7 +37,7 @@ import code.api.v3_1_0.CustomerJsonV310 import code.api.v5_0_0.OBPAPI5_0_0.Implementations5_0_0 import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.language.postfixOps diff --git a/obp-api/src/test/scala/code/api/v5_0_0/V500ServerSetup.scala b/obp-api/src/test/scala/code/api/v5_0_0/V500ServerSetup.scala index 97333ebef1..e4193b3c66 100644 --- a/obp-api/src/test/scala/code/api/v5_0_0/V500ServerSetup.scala +++ b/obp-api/src/test/scala/code/api/v5_0_0/V500ServerSetup.scala @@ -1,5 +1,6 @@ package code.api.v5_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth.{Consumer, Token} import code.api.util.ApiRole.CanCreateCustomer @@ -13,7 +14,7 @@ import com.openbankproject.commons.util.ApiShortVersions import dispatch.Req import code.api.util.APIUtil.OAuth._ import code.api.v2_0_0.BasicAccountsJSON -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import scala.util.Random.nextInt diff --git a/obp-api/src/test/scala/code/api/v5_1_0/AccountAccessTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/AccountAccessTest.scala index fd2111263d..a3c07f1814 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/AccountAccessTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/AccountAccessTest.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.Constant.{SYSTEM_AUDITOR_VIEW_ID, SYSTEM_MANAGE_CUSTOM_VIEWS_VIEW_ID, SYSTEM_OWNER_VIEW_ID} import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.createViewJsonV300 @@ -16,7 +17,7 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{AmountOfMoneyJsonV121, ErrorMessage} import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.Box -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AccountAccessTest extends V510ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/AccountBalanceTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/AccountBalanceTest.scala index 321decd6f1..917c68e475 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/AccountBalanceTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/AccountBalanceTest.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ErrorMessages.AuthenticatedUserIsRequired import code.api.v4_0_0.{AccountsBalancesJsonV400, BalanceJsonV400} @@ -8,7 +9,7 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion import dispatch.Req -import net.liftweb.json +import com.openbankproject.commons.util.json import org.scalatest.Tag class AccountBalanceTest extends V510ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/AccountTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/AccountTest.scala index 5e25f3675e..3f6e166d55 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/AccountTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/AccountTest.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanGetAccountsHeldAtAnyBank, CanGetAccountsHeldAtOneBank, CanSyncUser} import code.api.util.ErrorMessages.{UserHasMissingRoles, AuthenticatedUserIsRequired} @@ -7,7 +8,7 @@ import code.api.v5_1_0.OBPAPI5_1_0.Implementations5_1_0 import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AccountTest extends V510ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/AgentTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/AgentTest.scala index b909050c66..919826452b 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/AgentTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/AgentTest.scala @@ -1,12 +1,13 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.{postAgentJsonV510, putAgentJsonV510} import code.api.util.ErrorMessages.{BankNotFound, UserHasMissingRoles, AuthenticatedUserIsRequired} import code.api.v5_1_0.OBPAPI5_1_0.Implementations5_1_0 import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{canUpdateAgentStatusAtAnyBank, canUpdateAgentStatusAtOneBank} diff --git a/obp-api/src/test/scala/code/api/v5_1_0/ApiCollectionTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/ApiCollectionTest.scala index 30e5ccd389..9585702cd9 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/ApiCollectionTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/ApiCollectionTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole @@ -36,7 +37,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class ApiCollectionTest extends V510ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/AtmAttributeTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/AtmAttributeTest.scala index 114e6f93c4..8e168a5ef7 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/AtmAttributeTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/AtmAttributeTest.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -11,7 +12,7 @@ import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AtmAttributeTest extends V510ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/AtmTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/AtmTest.scala index 375b6b818a..87362e3a8e 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/AtmTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/AtmTest.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -13,7 +14,7 @@ import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AtmTest extends V510ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/BankAccountBalanceTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/BankAccountBalanceTest.scala index 7807edc2ae..325ad33c4e 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/BankAccountBalanceTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/BankAccountBalanceTest.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -10,7 +11,7 @@ import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class BankAccountBalanceTest extends V510ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/ConsentObpTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/ConsentObpTest.scala index a2c38d523e..ebba60b518 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/ConsentObpTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/ConsentObpTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_1_0 +import org.json4s._ import code.api.{Constant, RequestHeader} import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.ApiRole._ @@ -39,7 +40,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class ConsentObpTest extends V510ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/ConsentsTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/ConsentsTest.scala index fc244768d6..6b8225113c 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/ConsentsTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/ConsentsTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_1_0 +import org.json4s._ import code.api.{Constant, RequestHeader} import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ @@ -43,7 +44,7 @@ import code.setup.PropsReset import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{AccountRoutingJsonV121, ErrorMessage} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.language.postfixOps diff --git a/obp-api/src/test/scala/code/api/v5_1_0/ConsumerTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/ConsumerTest.scala index 9f337ba42c..92b2a6afa9 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/ConsumerTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/ConsumerTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -34,7 +35,7 @@ import code.api.v5_1_0.OBPAPI5_1_0.Implementations5_1_0 import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class ConsumerTest extends V510ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/CounterpartyLimitTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/CounterpartyLimitTest.scala index 8d52c41814..716ba6c172 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/CounterpartyLimitTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/CounterpartyLimitTest.scala @@ -1,4 +1,5 @@ package code.api.v5_1_0 +import org.json4s._ import java.util.UUID import code.api.Constant.{SYSTEM_OWNER_VIEW_ID} import code.api.util.ErrorMessages._ @@ -9,7 +10,7 @@ import code.api.v5_1_0.OBPAPI5_1_0.Implementations5_1_0 import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{AmountOfMoneyJsonV121, ErrorMessage} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class CounterpartyLimitTest extends V510ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/CustomViewTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/CustomViewTest.scala index e0dc4034fe..abd3f973ae 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/CustomViewTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/CustomViewTest.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.Constant.{SYSTEM_AUDITOR_VIEW_ID, SYSTEM_MANAGE_CUSTOM_VIEWS_VIEW_ID, SYSTEM_OWNER_VIEW_ID, SYSTEM_STAGE_ONE_VIEW_ID} import code.api.util.APIUtil.OAuth._ import code.api.util.ErrorMessages._ @@ -7,7 +8,7 @@ import code.api.v5_1_0.OBPAPI5_1_0.Implementations5_1_0 import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import net.liftweb.util.StringHelpers import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v5_1_0/CustomerTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/CustomerTest.scala index b6bd24be29..35d9c8a91a 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/CustomerTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/CustomerTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.postCustomerLegalNameJsonV510 import code.api.util.APIUtil.OAuth._ @@ -39,7 +40,7 @@ import code.usercustomerlinks.UserCustomerLink import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import java.util.Date diff --git a/obp-api/src/test/scala/code/api/v5_1_0/LogCacheEndpointTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/LogCacheEndpointTest.scala index a9db4e968c..388a12622b 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/LogCacheEndpointTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/LogCacheEndpointTest.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanGetSystemLogCacheAll,CanGetSystemLogCacheInfo} import code.api.util.ErrorMessages.{UserHasMissingRoles, AuthenticatedUserIsRequired} @@ -8,7 +9,6 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonAST._ import org.scalatest.Tag class LogCacheEndpointTest extends V510ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/RegulatedEntityAttributeTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/RegulatedEntityAttributeTest.scala index e84e6cabf1..5b1c1665a9 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/RegulatedEntityAttributeTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/RegulatedEntityAttributeTest.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ @@ -10,7 +11,7 @@ import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class RegulatedEntityAttributeTest extends V510ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/RegulatedEntityTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/RegulatedEntityTest.scala index 2cb8ca0e1c..dc017b5bda 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/RegulatedEntityTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/RegulatedEntityTest.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.regulatedEntityPostJsonV510 import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanCreateRegulatedEntity, CanDeleteRegulatedEntity, CanGetSystemIntegrity} @@ -9,7 +10,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization._ +import org.json4s.native.Serialization._ import org.scalatest.Tag class RegulatedEntityTest extends V510ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/ResponseHeadersTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/ResponseHeadersTest.scala index 4e37e3902c..a5fd12e7b2 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/ResponseHeadersTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/ResponseHeadersTest.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import java.util.Date import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._ @@ -11,7 +12,7 @@ import code.entitlement.Entitlement import code.setup.{APIResponse, DefaultUsers} import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class ResponseHeadersTest extends V510ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v5_1_0/SystemViewPermissionTests.scala b/obp-api/src/test/scala/code/api/v5_1_0/SystemViewPermissionTests.scala index 90161fb7a9..1b1901a6ce 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/SystemViewPermissionTests.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/SystemViewPermissionTests.scala @@ -1,6 +1,7 @@ package code.api.v5_1_0 -import _root_.net.liftweb.json.Serialization.write +import org.json4s._ +import _root_.org.json4s.native.Serialization.write import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._ import code.api.util.APIUtil import code.api.util.APIUtil.OAuth._ diff --git a/obp-api/src/test/scala/code/api/v5_1_0/TransactionRequestTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/TransactionRequestTest.scala index 6dc03c1edd..2c76638438 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/TransactionRequestTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/TransactionRequestTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_1_0 +import org.json4s._ import code.api.Constant import code.api.util.ErrorMessages._ import code.api.util.APIUtil.OAuth._ @@ -36,7 +37,7 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.enums.TransactionRequestStatus import com.openbankproject.commons.model.{AmountOfMoneyJsonV121, ErrorMessage, TransactionRequestAttributeJsonV400} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import java.util.UUID diff --git a/obp-api/src/test/scala/code/api/v5_1_0/UserAttributesTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/UserAttributesTest.scala index 841725ade7..10aa7bb2b5 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/UserAttributesTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/UserAttributesTest.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole @@ -10,7 +11,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v5_1_0/UserTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/UserTest.scala index 2ae08eeb39..00b0d2c80f 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/UserTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/UserTest.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanGetAnyUser, CanGetEntitlementsForAnyUserAtAnyBank, CanValidateUser} import code.api.util.ErrorMessages.{UserHasMissingRoles, AuthenticatedUserIsRequired, attemptedToOpenAnEmptyBox} @@ -12,7 +13,7 @@ import code.users.Users import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import net.liftweb.util.Helpers.randomString import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v5_1_0/V510ServerSetup.scala b/obp-api/src/test/scala/code/api/v5_1_0/V510ServerSetup.scala index 4a88bca733..94cc565019 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/V510ServerSetup.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/V510ServerSetup.scala @@ -1,5 +1,6 @@ package code.api.v5_1_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.createViewJsonV300 import code.api.util.APIUtil.OAuth.{Consumer, Token, _} @@ -18,7 +19,7 @@ import code.setup.{APIResponse, DefaultUsers, ServerSetupWithTestData} import com.openbankproject.commons.model.{AccountRoutingJsonV121, AmountOfMoneyJsonV121, CreateViewJson} import com.openbankproject.commons.util.ApiShortVersions import dispatch.Req -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import scala.util.Random import scala.util.Random.nextInt diff --git a/obp-api/src/test/scala/code/api/v5_1_0/VRPConsentRequestTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/VRPConsentRequestTest.scala index 68789e3d5d..b98fcf953d 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/VRPConsentRequestTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/VRPConsentRequestTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_1_0 +import org.json4s._ import code.api.RequestHeader import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.{accountRoutingJsonV121, bankRoutingJsonV121, branchRoutingJsonV141, postCounterpartyLimitV510} @@ -49,7 +50,7 @@ import code.setup.PropsReset import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{AmountOfMoneyJsonV121, ErrorMessage} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import scala.language.postfixOps diff --git a/obp-api/src/test/scala/code/api/v5_1_0/WebUiPropsTest.scala b/obp-api/src/test/scala/code/api/v5_1_0/WebUiPropsTest.scala index 80606a1993..3b2c77c105 100644 --- a/obp-api/src/test/scala/code/api/v5_1_0/WebUiPropsTest.scala +++ b/obp-api/src/test/scala/code/api/v5_1_0/WebUiPropsTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v5_1_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ import code.api.util.ErrorMessages._ @@ -34,7 +35,7 @@ import code.webuiprops.WebUiPropsCommons import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v6_0_0/AbacRuleTests.scala b/obp-api/src/test/scala/code/api/v6_0_0/AbacRuleTests.scala index 021c530a44..d528dd2968 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/AbacRuleTests.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/AbacRuleTests.scala @@ -1,5 +1,6 @@ package code.api.v6_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{canCreateAbacRule, canExecuteAbacRule} import code.api.util.ErrorMessages @@ -10,7 +11,7 @@ import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class AbacRuleTests extends V600ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v6_0_0/BankTests.scala b/obp-api/src/test/scala/code/api/v6_0_0/BankTests.scala index 498eb2882e..8d5bb5f3b3 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/BankTests.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/BankTests.scala @@ -1,5 +1,6 @@ package code.api.v6_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.postBankJson600 import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.CanCreateBank @@ -11,7 +12,7 @@ import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import net.liftweb.util.Helpers.randomString import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v6_0_0/CacheEndpointsTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/CacheEndpointsTest.scala index 9d1c53dc54..f98b11794b 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/CacheEndpointsTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/CacheEndpointsTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v6_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanGetCacheConfig, CanGetCacheInfo, CanInvalidateCacheNamespace} import code.api.util.ErrorMessages.{InvalidJsonFormat, UserHasMissingRoles, AuthenticatedUserIsRequired} @@ -33,7 +34,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class CacheEndpointsTest extends V600ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v6_0_0/CardanoTransactionRequestTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/CardanoTransactionRequestTest.scala index cd9c1d7c8b..d147ba273a 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/CardanoTransactionRequestTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/CardanoTransactionRequestTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v6_0_0 +import org.json4s._ import code.api.Constant import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.ApiRole @@ -36,7 +37,7 @@ import code.methodrouting.MethodRoutingCommons import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{AmountOfMoneyJsonV121, ErrorMessage} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole diff --git a/obp-api/src/test/scala/code/api/v6_0_0/CounterpartyAttributeTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/CounterpartyAttributeTest.scala index a1ca21f7c6..0d681bdf10 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/CounterpartyAttributeTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/CounterpartyAttributeTest.scala @@ -1,5 +1,6 @@ package code.api.v6_0_0 +import org.json4s._ import java.util.UUID import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._ import code.api.util.APIUtil.OAuth._ @@ -11,7 +12,7 @@ import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class CounterpartyAttributeTest extends V600ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v6_0_0/CreateUserTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/CreateUserTest.scala index bcf3bb9b2c..c60447f5d9 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/CreateUserTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/CreateUserTest.scala @@ -1,12 +1,13 @@ package code.api.v6_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ErrorMessages import code.api.util.ErrorMessages.InvalidStrongPasswordFormat import code.consumer.Consumers import code.model.dataAccess.AuthUser import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import net.liftweb.mapper.By import net.liftweb.util.Helpers.randomString import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v6_0_0/CustomViewsTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/CustomViewsTest.scala index 30991895d2..0220a729e7 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/CustomViewsTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/CustomViewsTest.scala @@ -1,5 +1,6 @@ package code.api.v6_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanCreateCustomView, CanGetCustomViews} import code.api.util.ErrorMessages @@ -12,7 +13,7 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{BankId, ViewId} import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonAST.JArray +import org.json4s.JsonAST.JArray import org.scalatest.Tag class CustomViewsTest extends V600ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v6_0_0/CustomerTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/CustomerTest.scala index ee0468dd8f..56a6b4a31f 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/CustomerTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/CustomerTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v6_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON.postCustomerLegalNameJsonV510 import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanCreateCustomer, CanGetCustomersAtOneBank} @@ -38,7 +39,7 @@ import code.usercustomerlinks.UserCustomerLink import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class CustomerTest extends V600ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v6_0_0/DirectLoginV600Test.scala b/obp-api/src/test/scala/code/api/v6_0_0/DirectLoginV600Test.scala index fcd7b2df26..061820515e 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/DirectLoginV600Test.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/DirectLoginV600Test.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v6_0_0 +import org.json4s._ import code.api.Constant.localIdentityProvider import code.api.util.ErrorMessages import code.api.util.ErrorMessages._ @@ -38,7 +39,7 @@ import code.userlocks.UserLocksProvider import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonAST.{JArray, JField, JObject, JString} +import org.json4s.JsonAST.{JArray, JField, JObject, JString} import net.liftweb.mapper.By import net.liftweb.util.Helpers._ import org.scalatest.{BeforeAndAfter, Tag} diff --git a/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityAccessFlagsTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityAccessFlagsTest.scala index dd475fa55e..aebf94e6d3 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityAccessFlagsTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityAccessFlagsTest.scala @@ -29,9 +29,10 @@ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ import code.entitlement.Entitlement import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.Serialization.write -import net.liftweb.json._ +import org.json4s.JsonDSL._ +import org.json4s.native.Serialization.write +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import org.scalatest.Tag class DynamicEntityAccessFlagsTest extends V600ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityFieldRolesTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityFieldRolesTest.scala index 8a2f754cba..9371189401 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityFieldRolesTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityFieldRolesTest.scala @@ -30,9 +30,10 @@ import com.openbankproject.commons.model.ErrorMessage import code.api.util.ApiRole._ import code.entitlement.Entitlement import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.Serialization.write -import net.liftweb.json._ +import org.json4s.JsonDSL._ +import org.json4s.native.Serialization.write +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases.parse import org.scalatest.Tag /** diff --git a/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityFilterAndBankAccessTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityFilterAndBankAccessTest.scala index fb82e43bbb..7f02e37bae 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityFilterAndBankAccessTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityFilterAndBankAccessTest.scala @@ -29,10 +29,11 @@ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ import code.entitlement.Entitlement import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonAST.JArray -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.Serialization.write -import net.liftweb.json._ +import org.json4s.JsonAST.JArray +import org.json4s.JsonDSL._ +import org.json4s.native.Serialization.write +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import org.scalatest.Tag /** diff --git a/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityTest.scala index 59f401769f..5b93577102 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/DynamicEntityTest.scala @@ -35,9 +35,10 @@ import code.scope.Scope import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.Serialization.write -import net.liftweb.json._ +import org.json4s.JsonDSL._ +import org.json4s.native.Serialization.write +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import org.scalatest.Tag class DynamicEntityTest extends V600ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v6_0_0/GetUserByUserIdTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/GetUserByUserIdTest.scala index c393da1fd3..ec49f1fb07 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/GetUserByUserIdTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/GetUserByUserIdTest.scala @@ -1,5 +1,6 @@ package code.api.v6_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.CanGetAnyUser import code.api.util.ErrorMessages @@ -58,8 +59,8 @@ class GetUserByUserIdTest extends V600ServerSetup with DefaultUsers { And("The response should contain user details") (response.body \ "user_id").extract[String] should equal(resourceUser1.userId) And("The response should include first_name and last_name fields") - response.body \ "first_name" should not equal net.liftweb.json.JNothing - response.body \ "last_name" should not equal net.liftweb.json.JNothing + response.body \ "first_name" should not equal org.json4s.JNothing + response.body \ "last_name" should not equal org.json4s.JNothing } } diff --git a/obp-api/src/test/scala/code/api/v6_0_0/GroupEntitlementsTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/GroupEntitlementsTest.scala index a5dba7bed5..3aa0c60cd2 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/GroupEntitlementsTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/GroupEntitlementsTest.scala @@ -1,5 +1,6 @@ package code.api.v6_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{ CanCreateGroupAtAllBanks, @@ -13,7 +14,7 @@ import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class GroupEntitlementsTest extends V600ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v6_0_0/MessageDocsJsonSchemaTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/MessageDocsJsonSchemaTest.scala index 6afd996b69..14a5a9b2d1 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/MessageDocsJsonSchemaTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/MessageDocsJsonSchemaTest.scala @@ -8,7 +8,8 @@ import com.fasterxml.jackson.databind.ObjectMapper import com.github.dwickern.macros.NameOf.nameOf import com.networknt.schema.{JsonSchemaFactory, SpecVersion} import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import org.scalatest.Tag /** diff --git a/obp-api/src/test/scala/code/api/v6_0_0/PasswordResetTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/PasswordResetTest.scala index c2f018db87..f08fd0a81a 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/PasswordResetTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/PasswordResetTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v6_0_0 +import org.json4s._ import java.util.UUID import code.api.util.ExampleValue import com.openbankproject.commons.model.ErrorMessage @@ -41,7 +42,7 @@ import code.users.Users import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.User import net.liftweb.common.{Box, Full} -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import net.liftweb.mapper.By import org.scalatest.Tag @@ -137,7 +138,7 @@ class PasswordResetTest extends V600ServerSetup { ack.status should equal("sent") ack.to should equal(postJson.email) And("The response body must NOT contain a reset_password_url field") - (response600.body \ "reset_password_url") should equal(net.liftweb.json.JNothing) + (response600.body \ "reset_password_url") should equal(org.json4s.JNothing) } scenario("We will call the endpoint with unvalidated user", ApiEndpoint1, VersionOfApi) { diff --git a/obp-api/src/test/scala/code/api/v6_0_0/RateLimitsTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/RateLimitsTest.scala index 338101ceda..b111dddb31 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/RateLimitsTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/RateLimitsTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v6_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanCreateRateLimits, CanDeleteRateLimits, CanGetRateLimits} import code.api.util.ErrorMessages.{UserHasMissingRoles, AuthenticatedUserIsRequired} @@ -34,7 +35,7 @@ import code.entitlement.Entitlement import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag import java.time.format.DateTimeFormatter diff --git a/obp-api/src/test/scala/code/api/v6_0_0/RetailAndCorporateCustomerTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/RetailAndCorporateCustomerTest.scala index b0b0a89199..9a875eec33 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/RetailAndCorporateCustomerTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/RetailAndCorporateCustomerTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v6_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.{CanCreateCustomer, CanGetCustomersAtOneBank} import code.api.util.ErrorMessages._ @@ -35,7 +36,7 @@ import code.usercustomerlinks.UserCustomerLink import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class RetailAndCorporateCustomerTest extends V600ServerSetup { diff --git a/obp-api/src/test/scala/code/api/v6_0_0/V6EntitlementCascadeTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/V6EntitlementCascadeTest.scala index 7daae43356..cf3eaa4b3c 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/V6EntitlementCascadeTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/V6EntitlementCascadeTest.scala @@ -1,12 +1,13 @@ package code.api.v6_0_0 +import org.json4s._ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON import code.api.util.APIUtil.OAuth._ import code.api.util.ErrorMessages import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion import code.setup.DefaultUsers -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class V6EntitlementCascadeTest extends V600ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v6_0_0/VerifyExternalUserCredentialsTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/VerifyExternalUserCredentialsTest.scala index 608c7b9946..cb5369c5d6 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/VerifyExternalUserCredentialsTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/VerifyExternalUserCredentialsTest.scala @@ -1,5 +1,6 @@ package code.api.v6_0_0 +import org.json4s._ import code.api.Constant import code.api.util.APIUtil.OAuth._ import code.api.util.{CallContext, ErrorMessages} @@ -15,7 +16,7 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.{ErrorMessage, InboundExternalUser} import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.{Box, Empty, Full} -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import net.liftweb.util.Helpers.randomString import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v6_0_0/VerifyOidcClientTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/VerifyOidcClientTest.scala index 38e80f900f..1432c8a7cf 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/VerifyOidcClientTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/VerifyOidcClientTest.scala @@ -1,5 +1,6 @@ package code.api.v6_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole.CanVerifyOidcClient import code.api.util.ErrorMessages @@ -10,7 +11,7 @@ import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import org.scalatest.Tag class VerifyOidcClientTest extends V600ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/api/v6_0_0/VerifyUserCredentialsTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/VerifyUserCredentialsTest.scala index bb5ad4d290..901e934d2f 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/VerifyUserCredentialsTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/VerifyUserCredentialsTest.scala @@ -1,5 +1,6 @@ package code.api.v6_0_0 +import org.json4s._ import code.api.Constant import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole @@ -16,7 +17,7 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion import net.liftweb.common.Full -import net.liftweb.json.Serialization.write +import org.json4s.native.Serialization.write import net.liftweb.util.Helpers.randomString import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v6_0_0/WebUiPropsTest.scala b/obp-api/src/test/scala/code/api/v6_0_0/WebUiPropsTest.scala index d1e900ec34..5fbfb0aa66 100644 --- a/obp-api/src/test/scala/code/api/v6_0_0/WebUiPropsTest.scala +++ b/obp-api/src/test/scala/code/api/v6_0_0/WebUiPropsTest.scala @@ -25,6 +25,7 @@ TESOBE (http://www.tesobe.com/) */ package code.api.v6_0_0 +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.ApiRole._ import code.api.util.ErrorMessages._ @@ -34,8 +35,8 @@ import code.webuiprops.WebUiPropsCommons import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.ErrorMessage import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json.JsonAST.JNothing -import net.liftweb.json.Serialization.write +import org.json4s.JsonAST.JNothing +import org.json4s.native.Serialization.write import org.scalatest.Tag diff --git a/obp-api/src/test/scala/code/api/v7_0_0/Http4s700RoutesTest.scala b/obp-api/src/test/scala/code/api/v7_0_0/Http4s700RoutesTest.scala index 220505ee50..c2acc10ba4 100644 --- a/obp-api/src/test/scala/code/api/v7_0_0/Http4s700RoutesTest.scala +++ b/obp-api/src/test/scala/code/api/v7_0_0/Http4s700RoutesTest.scala @@ -1,5 +1,6 @@ package code.api.v7_0_0 +import org.json4s._ import cats.effect.IO import cats.effect.unsafe.IORuntime import code.api.util.http4s.Http4sStandardHeaders @@ -28,10 +29,11 @@ import org.typelevel.ci.CIString import java.util.Date import code.setup.ServerSetupWithTestData -import net.liftweb.json.JValue -import net.liftweb.json.JsonAST.{JArray, JBool, JField, JInt, JNull, JObject, JString} -import net.liftweb.json.JsonParser.parse +import org.json4s.JValue +import org.json4s.JsonAST.{JArray, JBool, JField, JInt, JNull, JObject, JString} +import com.openbankproject.commons.util.JsonAliases.parse import org.scalatest.Tag +import com.openbankproject.commons.util.JsonAliases.RichJField /** * HTTP4S v7.0.0 Routes Test @@ -1785,7 +1787,7 @@ class Http4s700RoutesTest extends ServerSetupWithTestData { case JObject(fields) => val map = toFieldMap(fields) map.keys should contain allOf ("id", "batch_reference", "status", "total_payments", "succeeded_count", "failed_count", "payments") - map.get("total_payments") shouldBe Some(net.liftweb.json.JsonAST.JInt(2)) + map.get("total_payments") shouldBe Some(org.json4s.JsonAST.JInt(2)) map.get("status") match { case Some(JString(s)) => s should (be("PARTIALLY_COMPLETED") or be("FAILED") or be("COMPLETED")) case _ => fail("status should be a string") diff --git a/obp-api/src/test/scala/code/api/v7_0_0/Http4s700TransactionTest.scala b/obp-api/src/test/scala/code/api/v7_0_0/Http4s700TransactionTest.scala index 5687b05ae6..c8e523b1e1 100644 --- a/obp-api/src/test/scala/code/api/v7_0_0/Http4s700TransactionTest.scala +++ b/obp-api/src/test/scala/code/api/v7_0_0/Http4s700TransactionTest.scala @@ -1,19 +1,21 @@ package code.api.v7_0_0 +import org.json4s._ import code.Http4sTestServer import code.api.util.ApiRole.{canCreateEntitlementAtAnyBank, canDeleteEntitlementAtAnyBank} import code.entitlement.Entitlement import code.setup.ServerSetupWithTestData import dispatch.Defaults._ import dispatch._ -import net.liftweb.json.JsonAST.{JObject, JString} -import net.liftweb.json.JsonParser.parse -import net.liftweb.json.JValue +import org.json4s.JsonAST.{JObject, JString} +import com.openbankproject.commons.util.JsonAliases.parse +import org.json4s.JValue import org.scalatest.Tag import scala.collection.JavaConverters._ import scala.concurrent.Await import scala.concurrent.duration._ +import com.openbankproject.commons.util.JsonAliases.RichJField /** * Integration tests for the v7 request-scoped transaction feature. diff --git a/obp-api/src/test/scala/code/api/v7_0_0/V7ResourceDocsAggregationTest.scala b/obp-api/src/test/scala/code/api/v7_0_0/V7ResourceDocsAggregationTest.scala index 7469f620ba..2f2a3ea477 100644 --- a/obp-api/src/test/scala/code/api/v7_0_0/V7ResourceDocsAggregationTest.scala +++ b/obp-api/src/test/scala/code/api/v7_0_0/V7ResourceDocsAggregationTest.scala @@ -1,17 +1,19 @@ package code.api.v7_0_0 +import org.json4s._ import code.Http4sTestServer import code.setup.ServerSetupWithTestData import dispatch.Defaults._ import dispatch._ -import net.liftweb.json.JValue -import net.liftweb.json.JsonAST.{JArray, JObject, JString} -import net.liftweb.json.JsonParser.parse +import org.json4s.JValue +import org.json4s.JsonAST.{JArray, JObject, JString} +import com.openbankproject.commons.util.JsonAliases.parse import org.scalatest.Tag import scala.collection.JavaConverters._ import scala.concurrent.Await import scala.concurrent.duration._ +import com.openbankproject.commons.util.JsonAliases.RichJField /** * Regression test for v7 Resource Docs Aggregation. @@ -78,7 +80,7 @@ class V7ResourceDocsAggregationTest extends ServerSetupWithTestData { } } - private def toFieldMap(fields: List[net.liftweb.json.JsonAST.JField]): Map[String, JValue] = + private def toFieldMap(fields: List[org.json4s.JsonAST.JField]): Map[String, JValue] = fields.map(field => field.name -> field.value).toMap private def extractResourceDocs(json: JValue): List[JObject] = { diff --git a/obp-api/src/test/scala/code/bankaccountcreation/BankAccountCreationListenerTest.scala b/obp-api/src/test/scala/code/bankaccountcreation/BankAccountCreationListenerTest.scala index 5193b41891..8e92146e8b 100644 --- a/obp-api/src/test/scala/code/bankaccountcreation/BankAccountCreationListenerTest.scala +++ b/obp-api/src/test/scala/code/bankaccountcreation/BankAccountCreationListenerTest.scala @@ -11,7 +11,6 @@ import net.liftweb.util.Props import org.scalatest.Tag import com.tesobe.model.CreateBankAccount import code.model.dataAccess.{BankAccountCreationListener, ResourceUser} -import net.liftmodules.amqp.AMQPMessage import code.bankconnectors.Connector import code.connector.MockedCbsConnector.{defaultProvider, resourceUser1Name, resourceUser1} import code.model.UserX @@ -82,10 +81,7 @@ class BankAccountCreationListenerTest extends ServerSetup with DefaultConnectorT //what to do if this slugification results in an id collision has not been determined yet val msgContent = CreateBankAccount(userProviderId, userProvider, accountNumber, bankIdentifier, expectedBankId) - BankAccountCreationListener.createBankAccountListener ! AMQPMessage(msgContent) - - //sleep to give the actor time to process the message - Thread.sleep(5000) + BankAccountCreationListener.handleMessage(msgContent) thenCheckAccountCreated(user) @@ -108,10 +104,7 @@ class BankAccountCreationListenerTest extends ServerSetup with DefaultConnectorT When("We create a bank account") val msgContent = CreateBankAccount(userProviderId, userProvider, accountNumber, createdBank.nationalIdentifier, createdBank.bankId.value) - BankAccountCreationListener.createBankAccountListener ! AMQPMessage(msgContent) - - //sleep to give the actor time to process the message - Thread.sleep(5000) + BankAccountCreationListener.handleMessage(msgContent) thenCheckAccountCreated(user) } diff --git a/obp-api/src/test/scala/code/connector/MessageDocTest.scala b/obp-api/src/test/scala/code/connector/MessageDocTest.scala index ab322bd4b6..5dbadf32e3 100644 --- a/obp-api/src/test/scala/code/connector/MessageDocTest.scala +++ b/obp-api/src/test/scala/code/connector/MessageDocTest.scala @@ -1,5 +1,6 @@ package code.connector +import org.json4s._ import code.api.v2_2_0.JSONFactory220.MessageDocJson import code.api.v2_2_0.OBPAPI2_2_0.Implementations2_2_0 import code.api.v2_2_0.V220ServerSetup @@ -7,8 +8,8 @@ import code.bankconnectors.LocalMappedConnector import code.setup.DefaultUsers import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.util.ApiVersion -import net.liftweb.json -import net.liftweb.json.JValue +import com.openbankproject.commons.util.json +import org.json4s.JValue import org.scalatest.Tag import scala.collection.immutable.List diff --git a/obp-api/src/test/scala/code/connector/MockedCbsConnector.scala b/obp-api/src/test/scala/code/connector/MockedCbsConnector.scala index 24ca50053b..89c7f393df 100644 --- a/obp-api/src/test/scala/code/connector/MockedCbsConnector.scala +++ b/obp-api/src/test/scala/code/connector/MockedCbsConnector.scala @@ -1,5 +1,6 @@ package code.connector +import org.json4s._ import code.api.Constant._ import code.api.util.{CallContext, CustomJsonFormats} import code.bankconnectors._ @@ -10,7 +11,7 @@ import net.liftweb.common.{Box, Full} import scala.collection.immutable.List import com.openbankproject.commons.ExecutionContext.Implicits.global -import net.liftweb.json.Formats +import org.json4s.Formats import scala.concurrent.Future diff --git a/obp-api/src/test/scala/code/connector/RestConnector_vMar2019_FrozenTest.scala b/obp-api/src/test/scala/code/connector/RestConnector_vMar2019_FrozenTest.scala index e52490a458..e9e5c3177f 100644 --- a/obp-api/src/test/scala/code/connector/RestConnector_vMar2019_FrozenTest.scala +++ b/obp-api/src/test/scala/code/connector/RestConnector_vMar2019_FrozenTest.scala @@ -64,10 +64,19 @@ class RestConnector_vMar2019_FrozenTest extends FlatSpec with Matchers with Befo .filterKeys(typeNameToFieldsInfoPersisted.contains(_)) .toList + // Normalize type names so that reflection aliases produce equal strings: + // json4s defines package-level aliases (org.json4s.JValue) for types inside + // org.json4s.JsonAST; Scala reflection may report either form depending on how + // the import is written. Treat them as identical for structural comparison. + def normalizeTypeName(name: String): String = + name.replace("org.json4s.JsonAST.", "org.json4s.") + def normalizeStructure(m: Map[String, String]): Map[String, String] = + m.map { case (k, v) => k -> normalizeTypeName(v) } + val theSameStructureAsFrozen: Matcher[(String, Map[String, String])] = Matcher{ fullNameAndStructure => val (fullName: String, structure: Map[String, String]) = fullNameAndStructure MatchResult( - structure == typeNameToFieldsInfoPersisted(fullName), + normalizeStructure(structure) == normalizeStructure(typeNameToFieldsInfoPersisted(fullName)), s"$fullName structure is changed, frozen structure is ${typeNameToFieldsInfoPersisted(fullName)}, current structure is $structure", s"$fullName structure is not changed" ) diff --git a/obp-api/src/test/scala/code/connector/RestConnector_vMar2019_frozen_meta_data b/obp-api/src/test/scala/code/connector/RestConnector_vMar2019_frozen_meta_data index f94beb5dfb..cfa2daeb33 100644 Binary files a/obp-api/src/test/scala/code/connector/RestConnector_vMar2019_frozen_meta_data and b/obp-api/src/test/scala/code/connector/RestConnector_vMar2019_frozen_meta_data differ diff --git a/obp-api/src/test/scala/code/customer/MappedCustomerInfoTest.scala b/obp-api/src/test/scala/code/customer/MappedCustomerInfoTest.scala index 5999ae48b9..c229825614 100644 --- a/obp-api/src/test/scala/code/customer/MappedCustomerInfoTest.scala +++ b/obp-api/src/test/scala/code/customer/MappedCustomerInfoTest.scala @@ -1,5 +1,6 @@ package code.customer +import org.json4s._ import code.api.util.APIUtil.OAuth._ import code.api.util.{APIUtil, ApiRole} import code.api.v1_4_0.JSONFactory1_4_0.CustomerFaceImageJson @@ -11,7 +12,7 @@ import code.setup.DefaultUsers import code.usercustomerlinks.UserCustomerLink import com.openbankproject.commons.model.{BankId, Customer} import net.liftweb.common.{Box, Empty, Full} -import net.liftweb.json.Serialization._ +import org.json4s.native.Serialization._ class MappedCustomerProviderTest extends V140ServerSetup with DefaultUsers { diff --git a/obp-api/src/test/scala/code/external/API3_0_0Test.scala b/obp-api/src/test/scala/code/external/API3_0_0Test.scala index ed584bca7d..3b9a5f7a0b 100644 --- a/obp-api/src/test/scala/code/external/API3_0_0Test.scala +++ b/obp-api/src/test/scala/code/external/API3_0_0Test.scala @@ -36,7 +36,7 @@ //import code.api.v1_2._ //import code.api.v3_0_0.V300ServerSetup //import code.setup.{APIResponse, DefaultUsers, User1AllPrivileges} -//import net.liftweb.json._ +//import org.json4s._ //import net.liftweb.util.Helpers._ //import org.scalatest._ // diff --git a/obp-api/src/test/scala/code/setup/SendServerRequests.scala b/obp-api/src/test/scala/code/setup/SendServerRequests.scala index 05f5835f44..1cac46e50e 100644 --- a/obp-api/src/test/scala/code/setup/SendServerRequests.scala +++ b/obp-api/src/test/scala/code/setup/SendServerRequests.scala @@ -33,8 +33,9 @@ import code.api.ResponseHeader import dispatch.Defaults._ import dispatch._ import net.liftweb.common.Full -import net.liftweb.json.JsonAST.JValue -import net.liftweb.json._ +import org.json4s.JsonAST.JValue +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.util.Helpers._ import java.net.URLDecoder @@ -136,12 +137,19 @@ trait SendServerRequests { if (isYaml) { APIResponse(response.getStatusCode, JString(body), Some(response.getHeaders())) } else { - val parsedBody = tryo { - parse(body) - } + // json4s-native 3.6.x rejects primitive root values (booleans, strings, numbers, null). + // Wrap in a single-element array so the native parser accepts it, then extract the + // first element — handles all JSON primitive types generically. + val parsedBody: Option[JValue] = tryo { parse(body) }.toOption orElse + tryo { + parse(s"[$body]") match { + case JArray(v :: _) => v + case _ => throw new RuntimeException("empty array") + } + }.toOption parsedBody match { - case Full(b) => APIResponse(response.getStatusCode, b, Some(response.getHeaders())) - case _ => throw new Exception(s"couldn't parse response from ${req.url} : $body") + case Some(b) => APIResponse(response.getStatusCode, b, Some(response.getHeaders())) + case None => throw new Exception(s"couldn't parse response from ${req.url} : $body") } } } diff --git a/obp-api/src/test/scala/code/setup/ServerSetup.scala b/obp-api/src/test/scala/code/setup/ServerSetup.scala index 70f250def4..fc53ba0d9d 100644 --- a/obp-api/src/test/scala/code/setup/ServerSetup.scala +++ b/obp-api/src/test/scala/code/setup/ServerSetup.scala @@ -27,7 +27,8 @@ TESOBE (http://www.tesobe.com/) package code.setup -import _root_.net.liftweb.json.JsonAST.JObject +import org.json4s._ +import _root_.org.json4s.JsonAST.JObject import bootstrap.liftweb.ToSchemify import code.TestServer import code.api.util.APIUtil._ @@ -38,7 +39,7 @@ import code.util.Helper.MdcLoggable import com.openbankproject.commons.model.{AccountId, BankId} import dispatch._ import net.liftweb.common.{Empty, Full} -import net.liftweb.json.JsonDSL._ +import org.json4s.JsonDSL._ import net.liftweb.mapper.MetaMapper import org.scalatest._ diff --git a/obp-api/src/test/scala/code/setup/ServerSetupAsync.scala b/obp-api/src/test/scala/code/setup/ServerSetupAsync.scala index fc24d727f9..320a9c797d 100644 --- a/obp-api/src/test/scala/code/setup/ServerSetupAsync.scala +++ b/obp-api/src/test/scala/code/setup/ServerSetupAsync.scala @@ -27,16 +27,17 @@ TESOBE (http://www.tesobe.com/) package code.setup +import org.json4s._ import java.text.SimpleDateFormat -import _root_.net.liftweb.json.JsonAST.JObject +import _root_.org.json4s.JsonAST.JObject import code.TestServer import code.api.util.{APIUtil, CustomJsonFormats} import code.util.Helper.MdcLoggable import com.openbankproject.commons.model.{AccountId, BankId} import dispatch._ import net.liftweb.common.{Empty, Full} -import net.liftweb.json.JsonDSL._ +import org.json4s.JsonDSL._ import org.scalatest._ trait ServerSetupAsync extends AsyncFeatureSpec with SendServerRequests diff --git a/obp-api/src/test/scala/code/util/APIUtilTest.scala b/obp-api/src/test/scala/code/util/APIUtilTest.scala index cae93c7e72..7f8b752f5e 100644 --- a/obp-api/src/test/scala/code/util/APIUtilTest.scala +++ b/obp-api/src/test/scala/code/util/APIUtilTest.scala @@ -27,6 +27,7 @@ TESOBE (http://www.tesobe.com/) package code.util +import org.json4s._ import code.api.Constant import code.api.util.APIUtil.{DateWithMsFormat, DefaultToDate, theEpochTime, _} import code.api.util.ErrorMessages._ @@ -37,7 +38,8 @@ import com.github.dwickern.macros.NameOf.nameOf import com.openbankproject.commons.model.UserAuthContextCommons import net.liftweb.common.{Box, Empty, Full} import code.api.util.APIUtil.HTTPParam -import net.liftweb.json.{JValue, parse} +import org.json4s.JValue +import com.openbankproject.commons.util.JsonAliases.parse import org.scalatest.{FeatureSpec, GivenWhenThen, Matchers} import java.time.format.DateTimeFormatter diff --git a/obp-api/src/test/scala/code/util/CustomJsonFormatsTest.scala b/obp-api/src/test/scala/code/util/CustomJsonFormatsTest.scala index 39da6fc1b4..6b9a32370e 100644 --- a/obp-api/src/test/scala/code/util/CustomJsonFormatsTest.scala +++ b/obp-api/src/test/scala/code/util/CustomJsonFormatsTest.scala @@ -1,12 +1,13 @@ package code.util +import org.json4s._ import code.api.UKOpenBanking.v2_0_0.OBP_UKOpenBanking_200 import com.openbankproject.commons.util.ApiVersion import code.api.util.{ CustomJsonFormats} import com.openbankproject.commons.util.OBPRequired -import net.liftweb.json -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.{Formats, JObject} +import com.openbankproject.commons.util.json +import org.json4s.JsonDSL._ +import org.json4s.{Formats, JObject} import org.scalatest.{FeatureSpec, GivenWhenThen, Matchers} case class FirstTypeForTest(val name: String, age: Option[Int]) diff --git a/obp-api/src/test/scala/code/util/DynamicUtilTest.scala b/obp-api/src/test/scala/code/util/DynamicUtilTest.scala index a7b054a341..abd2d9e748 100644 --- a/obp-api/src/test/scala/code/util/DynamicUtilTest.scala +++ b/obp-api/src/test/scala/code/util/DynamicUtilTest.scala @@ -27,13 +27,14 @@ TESOBE (http://www.tesobe.com/) package code.util +import org.json4s._ import code.api.util.DynamicUtil.Sandbox import code.api.util._ import code.setup.PropsReset import com.openbankproject.commons.model.BankId import com.openbankproject.commons.util.{JsonUtils, ReflectUtils} import net.liftweb.common.{Box} -import net.liftweb.json +import com.openbankproject.commons.util.json import org.scalatest.{FeatureSpec, FlatSpec, GivenWhenThen, Matchers, Tag} import java.io.File @@ -197,13 +198,13 @@ class DynamicUtilTest extends FlatSpec with Matchers { s""" | $caseClasses | - | // throws exception: net.liftweb.json.MappingException: + | // throws exception: org.json4s.MappingException: | //No usable value for name | //Did not find value which can be converted into java.lang.String | |implicit val formats = code.api.util.CustomJsonFormats.formats |(str: String) => { - | net.liftweb.json.parse(str).extract[RootJsonClass] + | com.openbankproject.commons.util.JsonAliases.parse(str).extract[RootJsonClass] |} |""".stripMargin @@ -218,13 +219,12 @@ class DynamicUtilTest extends FlatSpec with Matchers { val func3 = buildFunction(zson3) val value1 = func.apply(zson) val value2 = func2.apply(zson2) - val value3 = func2.apply(zson3) - + val value3 = func3.apply(zson3).asInstanceOf[List[_]].head.asInstanceOf[AnyRef] ReflectUtils.getNestedField(value1.asInstanceOf[AnyRef], "street", "name") should be ("hongqi") ReflectUtils.getField(value1.asInstanceOf[AnyRef], "weight") shouldEqual Some(12.11) ReflectUtils.getField(value2.asInstanceOf[AnyRef], "number") shouldEqual (123) - ReflectUtils.getField(value3.asInstanceOf[AnyRef], "number") shouldEqual (123) + ReflectUtils.getField(value3, "number") shouldEqual (123) } "DynamicUtil.toCaseObject method" should "return correct object" taggedAs DynamicUtilsTag in { diff --git a/obp-api/src/test/scala/code/util/JsonUtilsTest.scala b/obp-api/src/test/scala/code/util/JsonUtilsTest.scala index 367c4bd3f2..334fdce533 100644 --- a/obp-api/src/test/scala/code/util/JsonUtilsTest.scala +++ b/obp-api/src/test/scala/code/util/JsonUtilsTest.scala @@ -1,10 +1,11 @@ package code.util +import org.json4s._ import org.scalatest.{FlatSpec, Matchers, Tag} import com.openbankproject.commons.util.JsonUtils.buildJson -import net.liftweb.json -import net.liftweb.json.JBool -import net.liftweb.json.JsonAST.{JNothing, JValue} +import com.openbankproject.commons.util.json +import org.json4s.JBool +import org.json4s.JsonAST.{JNothing, JValue} class JsonUtilsTest extends FlatSpec with Matchers { object JsonUtilsTag extends Tag("JsonUtils") diff --git a/obp-api/src/test/scala/code/util/PegdownOptionsTest.scala b/obp-api/src/test/scala/code/util/PegdownOptionsTest.scala index c24aa2a9d2..041950917b 100644 --- a/obp-api/src/test/scala/code/util/PegdownOptionsTest.scala +++ b/obp-api/src/test/scala/code/util/PegdownOptionsTest.scala @@ -2,7 +2,6 @@ package code.util import code.api.util.PegdownOptions import code.api.util.PegdownOptions.convertPegdownToHtmlTweaked -import net.liftweb.util.Html5 import org.scalatest.{FlatSpec, Matchers, Tag} import scala.xml.NodeSeq @@ -14,9 +13,8 @@ class PegdownOptionsTest extends FlatSpec with Matchers { * @return */ def stringToNodeSeq(html : String) : NodeSeq = { - val newHtmlString =scala.xml.XML.loadString("
" + html + "
").toString() - //Note: `parse` method: We much enclose the div, otherwise only the first element is returned. - Html5.parse(newHtmlString).head + //Note: we must enclose the div, otherwise only the first element is returned. + scala.xml.XML.loadString("
" + html + "
") } object FunctionsTag extends Tag("PegdownOptions") diff --git a/obp-commons/pom.xml b/obp-commons/pom.xml index df3d111d2e..6740fc285e 100644 --- a/obp-commons/pom.xml +++ b/obp-commons/pom.xml @@ -15,26 +15,8 @@ - net.liftweb - lift-common_${scala.version} - - - net.liftweb - lift-util_${scala.version} - - - javax.activation - activation - - - javax.mail - mail - - - - - net.liftweb - lift-mapper_${scala.version} + com.github.OpenBankProject.lift-persistence + lift-persistence_${scala.version} org.scala-lang @@ -51,9 +33,8 @@ scalactic_${scala.version} - net.liftweb - lift-json_${scala.version} - ${lift.version} + org.json4s + json4s-native_${scala.version} diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/dto/JsonsTransfer.scala b/obp-commons/src/main/scala/com/openbankproject/commons/dto/JsonsTransfer.scala index 132311f5c7..bdad86dec1 100644 --- a/obp-commons/src/main/scala/com/openbankproject/commons/dto/JsonsTransfer.scala +++ b/obp-commons/src/main/scala/com/openbankproject/commons/dto/JsonsTransfer.scala @@ -26,11 +26,12 @@ package com.openbankproject.commons.dto +import org.json4s._ import com.openbankproject.commons.model._ import com.openbankproject.commons.model.enums.StrongCustomerAuthentication.SCA import com.openbankproject.commons.model.enums.StrongCustomerAuthenticationStatus.SCAStatus import com.openbankproject.commons.model.enums.{TransactionRequestStatus, _} -import net.liftweb.json.{JObject, JValue} +import org.json4s.{JObject, JValue} import java.util.Date diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/model/CommonModel.scala b/obp-commons/src/main/scala/com/openbankproject/commons/model/CommonModel.scala index d8fa9210af..c155c8f66c 100644 --- a/obp-commons/src/main/scala/com/openbankproject/commons/model/CommonModel.scala +++ b/obp-commons/src/main/scala/com/openbankproject/commons/model/CommonModel.scala @@ -26,13 +26,14 @@ TESOBE (http://www.tesobe.com/) */ package com.openbankproject.commons.model +import org.json4s._ import com.openbankproject.commons.model.enums.StrongCustomerAuthentication.SCA import com.openbankproject.commons.model.enums.StrongCustomerAuthenticationStatus.SCAStatus import com.openbankproject.commons.model.enums._ import com.openbankproject.commons.util.{ReflectUtils, optional} -import net.liftweb.json.JsonAST.{JObject, JValue} -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.{Formats, JInt, JString} +import org.json4s.JsonAST.{JObject, JValue} +import org.json4s.JsonDSL._ +import org.json4s.{Formats, JInt, JString} import java.lang import java.util.Date diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/model/enums/Enumerations.scala b/obp-commons/src/main/scala/com/openbankproject/commons/model/enums/Enumerations.scala index 5962a9af1d..2bb7066acf 100644 --- a/obp-commons/src/main/scala/com/openbankproject/commons/model/enums/Enumerations.scala +++ b/obp-commons/src/main/scala/com/openbankproject/commons/model/enums/Enumerations.scala @@ -2,8 +2,9 @@ package com.openbankproject.commons.model.enums import com.openbankproject.commons.util.{EnumValue, JsonAble, OBPEnumeration} import net.liftweb.common.Box -import net.liftweb.json.JsonAST.{JNothing, JString} -import net.liftweb.json._ +import org.json4s.JsonAST.{JNothing, JString} +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import java.time.format.DateTimeFormatter diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/util/ApiVersion.scala b/obp-commons/src/main/scala/com/openbankproject/commons/util/ApiVersion.scala index ec89d8e28b..013b310d8f 100644 --- a/obp-commons/src/main/scala/com/openbankproject/commons/util/ApiVersion.scala +++ b/obp-commons/src/main/scala/com/openbankproject/commons/util/ApiVersion.scala @@ -1,6 +1,7 @@ package com.openbankproject.commons.util -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import java.util.concurrent.ConcurrentHashMap diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonAliases.scala b/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonAliases.scala new file mode 100644 index 0000000000..7421a4ff49 --- /dev/null +++ b/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonAliases.scala @@ -0,0 +1,67 @@ +package com.openbankproject.commons.util + +import org.json4s._ +import org.json4s.JValue +import org.json4s.native.JsonMethods + +/** + * Helpers mirroring the surface of the former lift-json package object, + * so call sites keep their original shape on top of json4s: + * - parse / parseOpt / compactRender / prettyRender as plain functions + * - JField member access by name (json4s aliases JField to (String, JValue)) + */ +object JsonAliases { + + def parse(s: String): JValue = JsonMethods.parse(s) + + def parseOpt(s: String): Option[JValue] = JsonMethods.parseOpt(s) + + def compactRender(value: JValue): String = JsonMethods.compact(JsonMethods.render(value)) + + def prettyRender(value: JValue): String = JsonMethods.pretty(JsonMethods.render(value)) + + implicit class RichJField(private val jfield: org.json4s.JField) extends AnyVal { + def name: String = jfield._1 + def value: JValue = jfield._2 + } +} + +/** + * Forwarder object standing in for the former lift-json package, + * keeping `json.parse(...)` / `json.JValue` style call sites compiling + * against json4s after `import com.openbankproject.commons.util.json`. + */ +object json { + type JValue = org.json4s.JValue + type JObject = org.json4s.JObject + type JArray = org.json4s.JArray + type JString = org.json4s.JString + type JInt = org.json4s.JInt + type JDouble = org.json4s.JDouble + type JBool = org.json4s.JBool + type JField = org.json4s.JField + type Formats = org.json4s.Formats + type MappingException = org.json4s.MappingException + + val JNothing = org.json4s.JNothing + val JNull = org.json4s.JNull + val JObject = org.json4s.JObject + val JArray = org.json4s.JArray + val JString = org.json4s.JString + val JInt = org.json4s.JInt + val JDouble = org.json4s.JDouble + val JBool = org.json4s.JBool + val JField = org.json4s.JField + val JsonAST = org.json4s.JsonAST + val JsonDSL = org.json4s.JsonDSL + val Extraction = org.json4s.Extraction + val DefaultFormats = org.json4s.DefaultFormats + val NoTypeHints = org.json4s.NoTypeHints + val Serialization = org.json4s.native.Serialization + val JsonParser = org.json4s.native.JsonParser + + def parse(s: String): JValue = JsonAliases.parse(s) + def parseOpt(s: String): Option[JValue] = JsonAliases.parseOpt(s) + def compactRender(value: JValue): String = JsonAliases.compactRender(value) + def prettyRender(value: JValue): String = JsonAliases.prettyRender(value) +} diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonBoxSerializer.scala b/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonBoxSerializer.scala index 56091ed83a..627ae82336 100644 --- a/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonBoxSerializer.scala +++ b/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonBoxSerializer.scala @@ -16,10 +16,11 @@ package com.openbankproject.commons.util +import org.json4s._ import net.liftweb.common.{Box, Empty, Failure, Full, ParamFailure} -import net.liftweb.json.Extraction.{decompose, extract} -import net.liftweb.json.JsonAST.{JField, JNothing, JNull, JObject, JString, JValue} -import net.liftweb.json.{Formats, MappingException, Serializer, TypeInfo} +import org.json4s.Extraction.{decompose, extract} +import org.json4s.JsonAST.{JField, JNothing, JNull, JObject, JString, JValue} +import org.json4s.{Formats, MappingException, Serializer, TypeInfo} import org.apache.commons.codec.binary.Base64 import java.io._ diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonSerializers.scala b/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonSerializers.scala index b1e5725fe2..b5fce2df05 100644 --- a/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonSerializers.scala +++ b/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonSerializers.scala @@ -5,10 +5,11 @@ import com.openbankproject.commons.model.{JsonFieldReName, ListResult} import com.openbankproject.commons.util.Functions.Implicits._ import com.openbankproject.commons.util.Functions.Memo import net.liftweb.common.Box -import net.liftweb.json -import net.liftweb.json.JsonAST.JValue -import net.liftweb.json.JsonDSL._ -import net.liftweb.json._ +import com.openbankproject.commons.util.json +import org.json4s.JsonAST.JValue +import org.json4s.JsonDSL._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import net.liftweb.mapper.Mapper import net.liftweb.util.StringHelpers @@ -19,7 +20,7 @@ import scala.reflect.runtime.{universe => ru} object JsonSerializers { object CustomFormats extends DefaultFormats { - private val defaultFormats = net.liftweb.json.DefaultFormats + private val defaultFormats = org.json4s.DefaultFormats val losslessDate = defaultFormats.losslessDate val UTC = defaultFormats.UTC @@ -28,11 +29,14 @@ object JsonSerializers { * Here override it to: when execute fail, try to call constructor.getParamters */ override val parameterNameReader: ParameterNameReader = new ParameterNameReader { - override def lookupParameterNames(constructor: Constructor[_]): Traversable[String] = try { - defaultFormats.parameterNameReader.lookupParameterNames(constructor) - } catch { - case _ : Throwable => constructor.getParameters.map(_.getName) - } + override def lookupParameterNames(constructor: org.json4s.reflect.Executable): Seq[String] = try { + defaultFormats.parameterNameReader.lookupParameterNames(constructor) + } catch { + case _: Throwable => + val underlying: java.lang.reflect.Executable = + if (constructor.constructor != null) constructor.constructor else constructor.method + underlying.getParameters.map(_.getName).toIndexedSeq + } } } @@ -96,9 +100,14 @@ object EnumValueSerializer extends Serializer[EnumValue] { */ object AbstractTypeDeserializer extends ObpDeSerializer[AnyRef] { + private val enumValueClass = classOf[EnumValue] + override def deserialize(implicit format: Formats): PartialFunction[(TypeInfo, JValue), AnyRef] = { - case (TypeInfo(clazz, _), json) if Modifier.isAbstract(clazz.getModifiers) && ReflectUtils.isObpClass(clazz) => - val Some(commonClass) = ReflectUtils.findImplementedClass(clazz) + case (TypeInfo(clazz, _), json) + if Modifier.isAbstract(clazz.getModifiers) && ReflectUtils.isObpClass(clazz) + && !enumValueClass.isAssignableFrom(clazz) + && ReflectUtils.findImplementedClass(clazz).isDefined => + val commonClass = ReflectUtils.findImplementedClass(clazz).get implicit val manifest = ManifestFactory.classType[AnyRef](commonClass) json.extract[AnyRef](format, manifest) @@ -175,7 +184,7 @@ object StringDeserializer extends ObpDeSerializer[String] { private val IntervalClass = classOf[String] override def deserialize(implicit format: Formats): PartialFunction[(TypeInfo, JValue), String] = { - case (TypeInfo(IntervalClass, _), json) if !json.isInstanceOf[JString] => + case (TypeInfo(IntervalClass, _), json) if !json.isInstanceOf[JString] && json != JNull && json != JNothing => compactRender(json) } } @@ -378,7 +387,7 @@ object JNothingSerializer extends ObpDeSerializer[Any] { } /** - * absolutely simulate net.liftweb.json.Meta.Constructor#bestMatching, + * absolutely simulate org.json4s.Meta.Constructor#bestMatching, * to find beast matching constructor parameters * @param constructors * @param names json object Field Names @@ -439,9 +448,26 @@ object ListResultSerializer extends Serializer[ListResult[_]] { private val clazz = classOf[ListResult[_]] def deserialize(implicit format: Formats): PartialFunction[(TypeInfo, JValue), ListResult[_]] = { - case (TypeInfo(entityType, Some(parameterizedType)), json) if clazz.isAssignableFrom(entityType) => json match { + case (typeInfoFull @ TypeInfo(entityType, Some(_)), json) if clazz.isAssignableFrom(entityType) => json match { case JObject(singleField::Nil) => { - val resultsItemType = parameterizedType.getActualTypeArguments.apply(1) + // json4s passes a package-private SourceType subclass carrying the full ScalaType. + // Access it via Java reflection to recover non-erased type args without a compile-time + // dependency on the package-private SourceType trait. + val resultsItemType: Class[_] = { + import scala.util.Try + def invoke(obj: AnyRef, m: String): AnyRef = obj.getClass.getMethod(m).invoke(obj) + Try { + val scalaType = invoke(typeInfoFull, "scalaType") + val listSt = invoke(scalaType, "typeArgs").asInstanceOf[Seq[_]].head.asInstanceOf[AnyRef] + val itemSt = invoke(listSt, "typeArgs").asInstanceOf[Seq[_]].head.asInstanceOf[AnyRef] + invoke(itemSt, "erasure").asInstanceOf[Class[_]] + }.getOrElse( + throw new MappingException( + "when do deserialize to type ListResult, should supply exactly type parameter, " + + "should not give wildcard like this: jValue.extract[ListResult[List[_]]]" + ) + ) + } assume(resultsItemType != classOf[Object], "when do deserialize to type ListResult, should supply exactly type parameter, should not give wildcard like this: jValue.extract[ListResult[List[_]]]") val name = singleField.name diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonUtils.scala b/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonUtils.scala index abdab4125d..330253ae25 100644 --- a/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonUtils.scala +++ b/obp-commons/src/main/scala/com/openbankproject/commons/util/JsonUtils.scala @@ -1,12 +1,12 @@ package com.openbankproject.commons.util +import org.json4s._ import com.openbankproject.commons.util.Functions.Implicits._ -import net.liftweb -import net.liftweb.json -import net.liftweb.json.JsonAST._ -import net.liftweb.json.JsonDSL._ -import net.liftweb.json.JsonParser.ParseException -import net.liftweb.json.{Diff, JDouble, JInt, JNothing, JNull, JString} +import com.openbankproject.commons.util.json +import com.openbankproject.commons.util.JsonAliases.RichJField +import org.json4s.JsonDSL._ +import org.json4s.ParserUtil.ParseException +import org.json4s.{Diff, JDouble, JInt, JNothing, JNull, JString} import org.apache.commons.lang3.{StringUtils, Validate} import java.util.Objects @@ -262,7 +262,7 @@ object JsonUtils { //If it is the JObject, we need to loop the JObject(obj: List[JField]) obj field: //for each field, we need to call `rec` until to Stop flag case JObject(l) => JObject(l.map { field => - f(field.copy(value = rec(field.value, buildPath(path, field.name))), path) + f(JField(field.name, rec(field.value, buildPath(path, field.name))), path) } ) case JArray(l) => JArray(l.map(rec(_, path))) @@ -535,7 +535,14 @@ object JsonUtils { case (_, Nil) => v case (JArray(arr), fieldName::tail) => - val values = arr.map(_ \ fieldName) + val values = arr.map { jv => + jv \ fieldName match { + // json4s JArray.\ always wraps in JArray even for single element; + // unwrap single-element results when the source element is itself a JArray + case JArray(List(single)) if jv.isInstanceOf[JArray] => single + case other => other + } + } val newArray = JArray(values) getField(newArray, tail) @@ -638,7 +645,7 @@ object JsonUtils { /** * recursive delete fields of JValue. - * what different between this function with net.liftweb.json.JsonAST.JValue#removeField: + * what different between this function with org.json4s.JsonAST.JValue#removeField: * this function delete fields, removeField function set field's value to JNothing, this cause error when do deserialization * * @param jValue to delete fields json @@ -648,7 +655,7 @@ object JsonUtils { def deleteFieldRec(jValue:JValue)(p: JField => Boolean): JValue = { def rec(v: JValue): JValue = v match { case JObject(l) => JObject(l.collect { - case field @JField(_, value) if !p(field) => field.copy(value = rec(value)) + case field @JField(name, value) if !p(field) => JField(name, rec(value)) }) case JArray(l) => JArray(l.map(rec)) case x => x @@ -658,7 +665,7 @@ object JsonUtils { /** * delete fields of JValue. - * what different between this function with net.liftweb.json.JsonAST.JValue#removeField: + * what different between this function with org.json4s.JsonAST.JValue#removeField: * this function not delete nested fields, removeField function recursive set field's value to JNothing, this cause error when do deserialization * @param jValue to delete fields json * @param p checker of whether delete given field. diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/util/ReflectUtils.scala b/obp-commons/src/main/scala/com/openbankproject/commons/util/ReflectUtils.scala index dc32cad3fc..bf3a999d5d 100644 --- a/obp-commons/src/main/scala/com/openbankproject/commons/util/ReflectUtils.scala +++ b/obp-commons/src/main/scala/com/openbankproject/commons/util/ReflectUtils.scala @@ -1,5 +1,6 @@ package com.openbankproject.commons.util +import org.json4s._ import java.lang.reflect.{Field, Modifier} import net.liftweb.common.{Box, Empty, Failure, Full} @@ -12,7 +13,7 @@ import scala.language.postfixOps import scala.reflect.runtime.universe._ import scala.reflect.runtime.{universe => ru} import scala.util.Success -import net.liftweb.json.JValue +import org.json4s.JValue import org.apache.commons.lang3.StringUtils import org.apache.commons.lang3.reflect.FieldUtils diff --git a/obp-commons/src/main/scala/com/openbankproject/commons/util/RequiredFieldValidation.scala b/obp-commons/src/main/scala/com/openbankproject/commons/util/RequiredFieldValidation.scala index f531c9aaa2..9b82799143 100644 --- a/obp-commons/src/main/scala/com/openbankproject/commons/util/RequiredFieldValidation.scala +++ b/obp-commons/src/main/scala/com/openbankproject/commons/util/RequiredFieldValidation.scala @@ -1,15 +1,16 @@ package com.openbankproject.commons.util +import org.json4s._ import java.util.Objects import com.openbankproject.commons.util.ApiVersion.allVersion -import net.liftweb.json.JsonAST.{JArray, JField, JNothing, JNull, JObject, JString} +import org.json4s.JsonAST.{JArray, JField, JNothing, JNull, JObject, JString} import scala.annotation.StaticAnnotation import scala.reflect.runtime.universe._ import Functions.Implicits._ -import net.liftweb.json.{Formats, JValue} -import net.liftweb.json.JsonDSL._ +import org.json4s.{Formats, JValue} +import org.json4s.JsonDSL._ import scala.collection.GenTraversableOnce import scala.collection.mutable.ArrayBuffer diff --git a/obp-commons/src/test/scala/com/openbankproject/commons/util/JsonUtilsTest.scala b/obp-commons/src/test/scala/com/openbankproject/commons/util/JsonUtilsTest.scala index 12f64bece9..dea4e6683d 100644 --- a/obp-commons/src/test/scala/com/openbankproject/commons/util/JsonUtilsTest.scala +++ b/obp-commons/src/test/scala/com/openbankproject/commons/util/JsonUtilsTest.scala @@ -1,12 +1,13 @@ package com.openbankproject.commons.util import net.liftweb.common.Full -import net.liftweb.json +import com.openbankproject.commons.util.json import java.util.Date -import net.liftweb.json.Extraction.decompose -import net.liftweb.json._ -import net.liftweb.json.JsonAST.JValue +import org.json4s.Extraction.decompose +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ +import org.json4s.JsonAST.JValue import org.scalatest.{FlatSpec, Matchers, Tag} import java.text.SimpleDateFormat @@ -14,18 +15,18 @@ import scala.collection.immutable.{List, Nil} class JsonUtilsTest extends FlatSpec with Matchers { object FunctionsTag extends Tag("JsonUtils") - implicit def formats: Formats = net.liftweb.json.DefaultFormats + implicit def formats: Formats = org.json4s.DefaultFormats - "collectFieldNames" should "return all the field names and path" taggedAs FunctionsTag in { + case class NestNestClass(nestNestField: String) + case class NestClass(nestField: String, nestNestClass: NestNestClass) + case class TestObject( + stringField: String, + nestClass: NestClass, + date: Date, + boolean: Boolean + ) - case class NestNestClass(nestNestField: String) - case class NestClass(nestField: String, nestNestClass: NestNestClass) - case class TestObject( - stringField: String, - nestClass: NestClass, - date: Date, - boolean: Boolean - ) + "collectFieldNames" should "return all the field names and path" taggedAs FunctionsTag in { val testObject = TestObject( "1", @@ -34,7 +35,7 @@ class JsonUtilsTest extends FlatSpec with Matchers { true ) - implicit def formats: Formats = net.liftweb.json.DefaultFormats + implicit def formats: Formats = org.json4s.DefaultFormats val fields = JsonUtils.collectFieldNames(decompose(testObject)) val names: List[String] = fields.map(_._1).toList @@ -49,15 +50,6 @@ class JsonUtilsTest extends FlatSpec with Matchers { "deleteFieldRec" should "work " taggedAs FunctionsTag in { - case class NestNestClass(nestNestField: String) - case class NestClass(nestField: String, nestNestClass: NestNestClass) - case class TestObject( - stringField: String, - nestClass: NestClass, - date: Date, - boolean: Boolean - ) - val DateWithDay = "yyyy-MM-dd" val DateWithDay2 = "yyyyMMdd" val DateWithDay3 = "dd/MM/yyyy" @@ -93,7 +85,7 @@ class JsonUtilsTest extends FlatSpec with Matchers { true ) - implicit def formats: Formats = net.liftweb.json.DefaultFormats + implicit def formats: Formats = org.json4s.DefaultFormats val excludedFieldValues = Full(s"""["$DateWithSecondsExampleString", "", null, [], {}]""").map[JArray](it => json.parse(it).asInstanceOf[JArray]) diff --git a/obp-commons/src/test/scala/com/openbankproject/commons/util/RequiredFieldValidationTest.scala b/obp-commons/src/test/scala/com/openbankproject/commons/util/RequiredFieldValidationTest.scala index d0a6064473..b8ddfd1638 100644 --- a/obp-commons/src/test/scala/com/openbankproject/commons/util/RequiredFieldValidationTest.scala +++ b/obp-commons/src/test/scala/com/openbankproject/commons/util/RequiredFieldValidationTest.scala @@ -6,7 +6,8 @@ import org.scalatest.PartialFunctionValues._ import scala.reflect.runtime.universe._ import Functions.Implicits.RichCollection -import net.liftweb.json._ +import org.json4s._ +import com.openbankproject.commons.util.JsonAliases._ import RequiredFieldValidation.getRequiredInfo class RequiredFieldValidationTest extends FlatSpec with Matchers { @@ -69,7 +70,7 @@ class RequiredFieldValidationTest extends FlatSpec with Matchers { // this test be grouped, every group is more complex than former. "method RequiredFieldValidation.getRequiredInfo" should "extract instance of T or invalid path names" taggedAs tag in { - implicit val formats = net.liftweb.json.DefaultFormats + implicit val formats = org.json4s.DefaultFormats val tp = typeOf[LevelFirst] val requiredInfo = getRequiredInfo(tp) diff --git a/pom.xml b/pom.xml index bb30fd5925..56e6a0e231 100644 --- a/pom.xml +++ b/pom.xml @@ -15,7 +15,7 @@ 1.1.5 1.1.0 1.8.2 - 3.5.0 + v1.0.4 0.23.30 UTF-8 @@ -88,25 +88,48 @@ accessors-smart 2.6.0 + + + org.json + json + 20250107 + + + + commons-validator + commons-validator + 1.9.0 + + + + com.google.code.gson + gson + 2.11.0 + + + + org.java-websocket + Java-WebSocket + 1.5.4 + com.tesobe obp-commons ${project.version} - net.liftweb - lift-common_${scala.version} - ${lift.version} - - - net.liftweb - lift-util_${scala.version} + com.github.OpenBankProject.lift-persistence + lift-persistence_${scala.version} ${lift.version} - net.liftweb - lift-mapper_${scala.version} - ${lift.version} + org.json4s + json4s-native_${scala.version} + 3.6.12