added Customer in getBankAccounts in Connector, and remove payloads and AvroSchemas files.

This commit is contained in:
hongwei1 2017-08-10 14:24:41 +10:00
parent 0cbddb02d8
commit dd892b5a6e
22 changed files with 245 additions and 156 deletions

View File

@ -29,7 +29,7 @@ package code.api
import authentikat.jwt.{JsonWebToken, JwtClaimsSet, JwtHeader}
import code.api.util.APIUtil.setGatewayResponseHeader
import code.api.util.ErrorMessages
import code.bankconnectors.{Connector, InboundAccountJune2017}
import code.bankconnectors.Connector
import code.consumer.Consumers
import code.model.dataAccess.AuthUser
import code.model.{Consumer, User}

View File

@ -6,7 +6,7 @@ import code.api.v1_4_0.{APIMethods140, JSONFactory1_4_0, OBPAPI1_4_0}
import code.api.v2_2_0.{APIMethods220, OBPAPI2_2_0}
import code.api.v3_0_0.{APIMethods300, OBPAPI3_0_0}
import code.api.v3_0_0.OBPAPI3_0_0._
import code.bankconnectors.{KafkaJSONFactory_vMar2017, KafkaMappedConnector_vMar2017}
import code.bankconnectors.KafkaMappedConnector_vMar2017
import net.liftweb.common.{Box, Empty, Full}
import code.util.Helper.MdcLoggable
import net.liftweb.http.rest.RestHelper

View File

@ -8,6 +8,7 @@ import code.branches.Branches.{Branch, BranchId, DriveUp, Lobby}
import code.common._
import net.liftweb.common.Full
import code.api.v3_0_0.JSONFactory300.createBranchJsonV300
import code.branches.{MessageDocJson, MessageDocsJson}
import scala.util.Try

View File

@ -9,13 +9,12 @@ import code.api.util.APIUtil.{isValidCurrencyISOCode, _}
import code.api.util.ApiRole._
import code.api.util.{ApiRole, ErrorMessages}
import code.api.util.ErrorMessages.{BankAccountNotFound, _}
import code.api.v2_2_0.JSONFactory220.transformV220ToBranch
import code.api.v2_1_0._
import code.api.v2_2_0._
import code.api.v2_1_0.JSONFactory210.createConsumerJSONs
import code.bankconnectors._
import code.branches.KafkaJSONFactory_vMar2017
import code.consumer.Consumers
import code.metrics.{ConnectorMetric, ConnectorMetricsProvider}
import code.model.dataAccess.BankAccountCreation

View File

@ -11,8 +11,8 @@ import code.api.v2_0_0.JSONFactory200
import code.api.v3_0_0.JSONFactory300._
import code.atms.Atms
import code.atms.Atms.AtmId
import code.bankconnectors.{Connector, InboundAdapterInfo}
import code.branches.Branches
import code.bankconnectors.Connector
import code.branches.{Branches, InboundAdapterInfo}
import code.branches.Branches.BranchId
import code.entitlement.Entitlement
import code.model.dataAccess.AuthUser

View File

@ -1,22 +0,0 @@
package code.bankconnectors
import com.sksamuel.avro4s.SchemaFor
/**
* Defines avro schemas for case classes used in communication via kafka.
*
* Example:
* implicit val schemaForMyCaseClass = SchemaFor[MyCaseClass]
*
*/
object AvroSchemas {
implicit val schemaForGetBanks = SchemaFor[GetBanks]
implicit val schemaForGetBank = SchemaFor[GetBank]
implicit val schemaForGetAdapterInfo = SchemaFor[GetAdapterInfo]
implicit val schemaForBanks = SchemaFor[Banks]
implicit val schemaForBank = SchemaFor[BankWrapper]
implicit val schemaForAdapterInfo = SchemaFor[AdapterInfo]
}

View File

@ -9,8 +9,9 @@ import code.api.util.ErrorMessages
import code.api.v2_1_0._
import code.atms.Atms
import code.atms.Atms.{Atm, AtmId, AtmT}
import code.bankconnectors.vJune.InboundAccountJune2017
import code.branches.Branches.{Branch, BranchId, BranchT}
import code.branches.MappedBranch
import code.branches.{InboundAdapterInfo, MappedBranch}
import code.fx.FXRate
import code.management.ImporterAPI.ImporterTransaction
import code.metadata.counterparties.{CounterpartyTrait, MappedCounterparty}

View File

@ -1,60 +0,0 @@
package code.bankconnectors
import code.api.util.APIUtil.InboundMessageBase
import code.model.{AccountId, BankAccount, BankId}
import code.model.dataAccess.MappedBankAccountData
import java.text.SimpleDateFormat
import java.util.{Date, Locale}
import net.liftweb.mapper.By
import net.liftweb.util.Helpers.today
case class InboundAccountJune2017(
errorCode: String,
cbsToken: String,
bankId: String,
branchId: String,
accountId: String,
accountNumber: String,
accountType: String,
balanceAmount: String,
balanceCurrency: String,
owners: List[String],
viewsToGenerate: List[String],
bankRoutingScheme: String,
bankRoutingAddress: String,
branchRoutingScheme: String,
branchRoutingAddress: String,
accountRoutingScheme: String,
accountRoutingAddress: String
) extends InboundMessageBase with InboundAccountCommon
case class BankAccountJune2017(r: InboundAccountJune2017) extends BankAccount {
def accountId: AccountId = AccountId(r.accountId)
def accountType: String = r.accountType
def balance: BigDecimal = BigDecimal(r.balanceAmount)
def currency: String = r.balanceCurrency
def name: String = r.owners.head
// Note: swift_bic--> swiftBic, but it extends from BankAccount
def swift_bic: Option[String] = Some("swift_bic")
// Note: deprecated, extends from BankAccount
def iban: Option[String] = Some("iban")
def number: String = r.accountNumber
def bankId: BankId = BankId(r.bankId)
def lastUpdate: Date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH).parse(today.getTime.toString)
def accountHolder: String = r.owners.head
// Fields modifiable from OBP are stored in mapper
def label: String = (for {
d <- MappedBankAccountData.find(By(MappedBankAccountData.accountId, r.accountId))
} yield {
d.getLabel
}).getOrElse(r.accountNumber)
def accountRoutingScheme: String = r.accountRoutingScheme
def accountRoutingAddress: String = r.accountRoutingAddress
def branchId: String = r.branchId
}

View File

@ -31,8 +31,8 @@ import code.api.util.ErrorMessages
import code.api.v2_1_0.{BranchJsonPostV210, TransactionRequestCommonBodyJSON}
import code.atms.Atms.AtmId
import code.atms.MappedAtm
import code.branches.Branches.{BranchT, Branch, BranchId}
import code.branches.MappedBranch
import code.branches.Branches.{Branch, BranchId, BranchT}
import code.branches.{InboundAdapterInfo, MappedBranch}
import code.fx.{FXRate, fx}
import code.management.ImporterAPI.ImporterTransaction
import code.metadata.comments.Comments

View File

@ -37,7 +37,7 @@ import code.api.v2_1_0.{AtmJsonPost, BranchJsonPostV210, TransactionRequestCommo
import code.atms.Atms.{Atm, AtmId, AtmT}
import code.atms.{Atms, MappedAtm}
import code.branches.Branches.{Branch, BranchId, BranchT}
import code.branches.MappedBranch
import code.branches.{InboundAdapterInfo, MappedBranch}
import code.fx.{FXRate, fx}
import code.management.ImporterAPI.ImporterTransaction
import code.metadata.comments.Comments

View File

@ -27,13 +27,15 @@ import java.text.SimpleDateFormat
import java.util.{Date, Locale, UUID}
import code.accountholder.AccountHolders
import code.api.util.APIUtil.{MessageDoc, saveConnectorMetric}
import code.api.util.ErrorMessages
import code.api.util.APIUtil.{MessageDoc, exampleDate, saveConnectorMetric}
import code.api.util.{APIUtil, ErrorMessages}
import code.api.v1_4_0.JSONFactory1_4_0
import code.api.v2_1_0._
import code.atms.Atms.AtmId
import code.atms.MappedAtm
import code.branches.Branches.{Branch, BranchId}
import code.branches.MappedBranch
import code.branches._
import code.customer.Customer
import code.fx.{FXRate, fx}
import code.management.ImporterAPI.ImporterTransaction
import code.metadata.comments.Comments
@ -48,6 +50,7 @@ import code.products.Products.{Product, ProductCode}
import code.transaction.MappedTransaction
import code.transactionrequests.TransactionRequests._
import code.transactionrequests.{TransactionRequestTypeCharge, TransactionRequests}
import code.usercustomerlinks.UserCustomerLink
import code.util.{Helper, TTLCache}
import code.views.Views
import net.liftweb.common._
@ -67,6 +70,8 @@ import com.google.common.cache.CacheBuilder
import code.util.Helper.MdcLoggable
import net.liftweb.json.JsonAST.JValue
import net.liftweb.json.Extraction._
import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._
import code.bankconnectors.vJune._
object KafkaMappedConnector_vJune2017 extends Connector with KafkaHelper with MdcLoggable {
@ -124,7 +129,7 @@ object KafkaMappedConnector_vJune2017 extends Connector with KafkaHelper with Md
)
)
override def getAdapterInfo: Box[InboundAdapterInfo] = {
val req = code.bankconnectors.GetAdapterInfo((new Date()).toString)
val req = GetAdapterInfo((new Date()).toString)
val rr = process[GetAdapterInfo](req)
val r = rr.extract[AdapterInfo].data
Full(r)
@ -234,7 +239,27 @@ object KafkaMappedConnector_vJune2017 extends Connector with KafkaHelper with Md
messageFormat = messageFormat,
description = "getBankAccounts from kafka",
exampleOutboundMessage = decompose(
GetAccounts(AuthInfo("userId", "username","cbsToken"))
OutboundGetAccounts(
AuthInfo("userId", "username","cbsToken"),
InternalCustomers(customers =List(InternalCustomer(
customer_id = "123",
customer_number = "123",
legal_name = "legal_name",
mobile_phone_number = "123",
email = "contact@tesobe.com",
face_image = customerFaceImageJson,
date_of_birth = exampleDate,
relationship_status = "123",
dependants = 123,
dob_of_dependants = List(exampleDate),
credit_rating = Option(customerCreditRatingJSON),
credit_limit = Option(amountOfMoneyJsonV121),
highest_education_attained = "123",
employment_status = "123",
kyc_status = true,
last_ok_date = exampleDate
)))
)
),
exampleInboundMessage = decompose(
InboundBankAccounts(
@ -262,13 +287,16 @@ object KafkaMappedConnector_vJune2017 extends Connector with KafkaHelper with Md
)
override def getBankAccounts(username: String): Box[List[InboundAccountJune2017]] = saveConnectorMetric {
memoizeSync(getAccountsTTL millisecond) {
val req = GetAccounts(AuthInfo(currentResourceUserId, username,"cbsToken"))
logger.debug(s"Kafka getBankAccounts says: req is: $req")
val rList = process[GetAccounts](req).extract[InboundBankAccounts].data
val res = rList //map (new BankAccountJune2017(_))
logger.debug(s"Kafka getBankAccounts says res is $res")
Full(res)
val customerIds: List[String]= UserCustomerLink.userCustomerLink.vend.getUserCustomerLinkByUserId(currentResourceUserId).map(_.customerId)
val customerList :List[Customer]= APIUtil.getCustomers(customerIds)
val internalCustomers = JsonFactory_vJune2017.createCustomersJson(customerList)
val req = OutboundGetAccounts(AuthInfo(currentResourceUserId, username,"cbsToken"),internalCustomers)
logger.debug(s"Kafka getBankAccounts says: req is: $req")
val rList = process[OutboundGetAccounts](req).extract[InboundBankAccounts].data
val res = rList //map (new BankAccountJune2017(_))
logger.debug(s"Kafka getBankAccounts says res is $res")
Full(res)
}}("getBankAccounts")

View File

@ -33,8 +33,8 @@ import code.api.util.ErrorMessages
import code.api.v2_1_0._
import code.atms.Atms.AtmId
import code.atms.MappedAtm
import code.branches.Branches.{BranchT, Branch, BranchId}
import code.branches.MappedBranch
import code.branches.Branches.{Branch, BranchId, BranchT}
import code.branches._
import code.fx.{FXRate, fx}
import code.management.ImporterAPI.ImporterTransaction
import code.metadata.comments.Comments

View File

@ -6,8 +6,8 @@ import java.util.{Date, TimeZone, UUID}
import code.api.v2_1_0.{BranchJsonPostV210, TransactionRequestCommonBodyJSON}
import code.atms.Atms.AtmId
import code.atms.MappedAtm
import code.branches.Branches.{BranchT, Branch, BranchId}
import code.branches.MappedBranch
import code.branches.Branches.{Branch, BranchId, BranchT}
import code.branches.{InboundAdapterInfo, MappedBranch}
import code.fx.{FXRate, fx}
import code.management.ImporterAPI.ImporterTransaction
import code.metadata.counterparties.{Counterparties, CounterpartyTrait, Metadata, MongoCounterparties}

View File

@ -8,7 +8,7 @@ import code.api.v2_1_0.{AtmJsonPost, BranchJsonPostV210, TransactionRequestCommo
import code.atms.Atms.{AtmId, AtmT}
import code.atms.{Atms, MappedAtm, MappedAtmsProvider}
import code.branches.Branches._
import code.branches.MappedBranch
import code.branches.{InboundAdapterInfo, MappedBranch}
import code.common.{Address, _}
import code.fx.{FXRate, MappedFXRate, fx}
import code.management.ImporterAPI.ImporterTransaction

View File

@ -11,8 +11,8 @@ import code.api.util.ErrorMessages
import code.api.v2_1_0.{BranchJsonPostV210, TransactionRequestCommonBodyJSON}
import code.atms.Atms.AtmId
import code.atms.MappedAtm
import code.branches.Branches.{BranchT, Branch, BranchId}
import code.branches.MappedBranch
import code.branches.Branches.{Branch, BranchId, BranchT}
import code.branches.{InboundAdapterInfo, MappedBranch}
import code.fx.{FXRate, fx}
import code.management.ImporterAPI.ImporterTransaction
import code.metadata.comments.Comments

View File

@ -9,6 +9,7 @@ import akka.pattern.pipe
import akka.stream.ActorMaterializer
import akka.stream.scaladsl.{Sink, Source}
import code.actorsystem.{ObpActorHelper, ObpActorInit}
import code.bankconnectors.Topics.TopicTrait
import code.util.Helper.MdcLoggable
import net.liftweb.json
import net.liftweb.json.{DefaultFormats, Extraction, JsonAST}
@ -152,8 +153,8 @@ class KafkaStreamsHelperActor extends Actor with ObpActorInit with ObpActorHelpe
any
}
// This is for KafkaMappedConnector_vJune2017, the request is TopicCaseClass
case request: TopicCaseClass =>
// This is for KafkaMappedConnector_vJune2017, the request is TopicTrait
case request: TopicTrait =>
logger.debug("kafka_request[TopicCaseClass]: " + request)
val f = for {
t <- Future(Topics.createTopicByClassName(request.getClass.getSimpleName))
@ -230,5 +231,33 @@ object Topics {
TopicPair(s"obp.${connectorVersion}.N." + className.replace("$", ""),
s"obp.${connectorVersion}.S." + className.replace("$", ""))
}
// @see 'case request: TopicTrait' in code/bankconnectors/kafkaStreamsHelper.scala
// This is for Kafka topics for both North and South sides.
// In OBP-API, these topics will be created automatically.
sealed trait TopicTrait
// There design for OutBound Topics : North --> South
trait GetAdapterInfoTopic extends TopicTrait
trait GetBanksTopic extends TopicTrait
trait GetBankTopic extends TopicTrait
trait GetUserByUsernamePasswordTopic extends TopicTrait
trait GetAccountsTopic extends TopicTrait
trait GetAccountbyAccountIDTopic extends TopicTrait
trait GetAccountbyAccountNumberTopic extends TopicTrait
trait GetTransactionsTopic extends TopicTrait
trait GetTransactionTopic extends TopicTrait
trait CreateCBSAuthTokenTopic extends TopicTrait
//There design for InBound Topics : South --> North
trait AdapterInfoTopic extends TopicTrait
trait UserWrapperTopic extends TopicTrait
trait BanksTopic extends TopicTrait
trait BankWrapperTopic extends TopicTrait
trait InboundBankAccountsTopic extends TopicTrait
trait InboundBankAccountTopic extends TopicTrait
trait InboundTransactionsTopic extends TopicTrait
trait InboundTransactionTopic extends TopicTrait
}

View File

@ -1,35 +0,0 @@
package code.bankconnectors
import java.util.Date
/**
* Created by slavisa on 6/5/17.
*/
case class AuthInfo(userId: String, username: String, cbsToken: String)
/**
* case classes used to define topics
*/
sealed trait TopicCaseClass
//This is special, it is only internal, will not call any JONI call,so no AuthInfo inside
case class GetAdapterInfo(date: String) extends TopicCaseClass
case class GetBanks(authInfo: AuthInfo, criteria: String) extends TopicCaseClass
case class GetBank(authInfo: AuthInfo, bankId: String) extends TopicCaseClass
case class GetUserByUsernamePassword(authInfo: AuthInfo, password: String) extends TopicCaseClass
case class GetAccounts(authInfo: AuthInfo) extends TopicCaseClass
case class GetAccountbyAccountID(authInfo: AuthInfo, bankId: String, accountId: String)extends TopicCaseClass
case class GetAccountbyAccountNumber(authInfo: AuthInfo, bankId: String, accountNumber: String)extends TopicCaseClass
case class GetTransactions(authInfo: AuthInfo,bankId: String, accountId: String, limit: Int, fromDate: String, toDate: String) extends TopicCaseClass
case class GetTransaction(authInfo: AuthInfo, bankId: String, accountId: String, transactionId: String) extends TopicCaseClass
case class CreateCBSAuthToken(authInfo: AuthInfo) extends TopicCaseClass
/**
* case classes used as payloads
*/
case class AdapterInfo(data: InboundAdapterInfo)
case class UserWrapper(data: Option[InboundValidatedUser])
case class Banks(authInfo: AuthInfo, data: List[InboundBank])
case class BankWrapper(authInfo: AuthInfo, data: InboundBank)
case class InboundBankAccounts(authInfo: AuthInfo, data: List[InboundAccountJune2017])
case class InboundBankAccount(authInfo: AuthInfo, data: InboundAccountJune2017)
case class InboundTransactions(authInfo: AuthInfo, data: List[InternalTransaction])
case class InboundTransaction(authInfo: AuthInfo, data: InternalTransaction)

View File

@ -0,0 +1,146 @@
package code.bankconnectors.vJune
import java.text.SimpleDateFormat
import java.util.{Date, Locale}
import code.api.util.APIUtil.InboundMessageBase
import code.api.v1_2_1.AmountOfMoneyJsonV121
import code.api.v1_4_0.JSONFactory1_4_0.CustomerFaceImageJson
import code.api.v2_1_0.CustomerCreditRatingJSON
import code.bankconnectors.Topics._
import code.bankconnectors._
import code.branches.{InboundAdapterInfo, InboundBank, InboundValidatedUser, InternalTransaction}
import code.customer.Customer
import code.model.dataAccess.MappedBankAccountData
import code.model.{AccountId, BankAccount, BankId}
import net.liftweb.mapper.By
import net.liftweb.util.Helpers.today
case class AuthInfo(userId: String, username: String, cbsToken: String)
/**
* case classes used to define topics
*/
case class GetAdapterInfo(date: String) extends GetAdapterInfoTopic
case class GetBanks(authInfo: AuthInfo, criteria: String) extends GetBanksTopic
case class GetBank(authInfo: AuthInfo, bankId: String) extends GetBankTopic
case class GetUserByUsernamePassword(authInfo: AuthInfo, password: String) extends GetUserByUsernamePasswordTopic
case class OutboundGetAccounts(authInfo: AuthInfo, customers:InternalCustomers ) extends GetAccountsTopic
case class GetAccountbyAccountID(authInfo: AuthInfo, bankId: String, accountId: String)extends GetAccountbyAccountIDTopic
case class GetAccountbyAccountNumber(authInfo: AuthInfo, bankId: String, accountNumber: String)extends GetAccountbyAccountNumberTopic
case class GetTransactions(authInfo: AuthInfo,bankId: String, accountId: String, limit: Int, fromDate: String, toDate: String) extends GetTransactionsTopic
case class GetTransaction(authInfo: AuthInfo, bankId: String, accountId: String, transactionId: String) extends GetTransactionTopic
case class CreateCBSAuthToken(authInfo: AuthInfo) extends CreateCBSAuthTokenTopic
/**
* case classes used as payloads
*/
case class AdapterInfo(data: InboundAdapterInfo)
case class UserWrapper(data: Option[InboundValidatedUser])
case class Banks(authInfo: AuthInfo, data: List[InboundBank])
case class BankWrapper(authInfo: AuthInfo, data: InboundBank)
case class InboundBankAccounts(authInfo: AuthInfo, data: List[InboundAccountJune2017])
case class InboundBankAccount(authInfo: AuthInfo, data: InboundAccountJune2017)
case class InboundTransactions(authInfo: AuthInfo, data: List[InternalTransaction])
case class InboundTransaction(authInfo: AuthInfo, data: InternalTransaction)
case class InboundAccountJune2017(
errorCode: String,
cbsToken: String,
bankId: String,
branchId: String,
accountId: String,
accountNumber: String,
accountType: String,
balanceAmount: String,
balanceCurrency: String,
owners: List[String],
viewsToGenerate: List[String],
bankRoutingScheme: String,
bankRoutingAddress: String,
branchRoutingScheme: String,
branchRoutingAddress: String,
accountRoutingScheme: String,
accountRoutingAddress: String
) extends InboundMessageBase with InboundAccountCommon
case class BankAccountJune2017(r: InboundAccountJune2017) extends BankAccount {
def accountId: AccountId = AccountId(r.accountId)
def accountType: String = r.accountType
def balance: BigDecimal = BigDecimal(r.balanceAmount)
def currency: String = r.balanceCurrency
def name: String = r.owners.head
// Note: swift_bic--> swiftBic, but it extends from BankAccount
def swift_bic: Option[String] = Some("swift_bic")
// Note: deprecated, extends from BankAccount
def iban: Option[String] = Some("iban")
def number: String = r.accountNumber
def bankId: BankId = BankId(r.bankId)
def lastUpdate: Date = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.ENGLISH).parse(today.getTime.toString)
def accountHolder: String = r.owners.head
// Fields modifiable from OBP are stored in mapper
def label: String = (for {
d <- MappedBankAccountData.find(By(MappedBankAccountData.accountId, r.accountId))
} yield {
d.getLabel
}).getOrElse(r.accountNumber)
def accountRoutingScheme: String = r.accountRoutingScheme
def accountRoutingAddress: String = r.accountRoutingAddress
def branchId: String = r.branchId
}
case class InternalCustomer(
customer_id: String,
customer_number: String,
legal_name: String,
mobile_phone_number: String,
email: String,
face_image: CustomerFaceImageJson,
date_of_birth: Date,
relationship_status: String,
dependants: Int,
dob_of_dependants: List[Date],
credit_rating: Option[CustomerCreditRatingJSON],
credit_limit: Option[AmountOfMoneyJsonV121],
highest_education_attained: String,
employment_status: String,
kyc_status: Boolean,
last_ok_date: Date
)
case class InternalCustomers(customers: List[InternalCustomer])
object JsonFactory_vJune2017 {
def createCustomerJson(cInfo : Customer) : InternalCustomer = {
InternalCustomer(
customer_id = cInfo.customerId,
customer_number = cInfo.number,
legal_name = cInfo.legalName,
mobile_phone_number = cInfo.mobileNumber,
email = cInfo.email,
face_image = CustomerFaceImageJson(url = cInfo.faceImage.url,
date = cInfo.faceImage.date),
date_of_birth = cInfo.dateOfBirth,
relationship_status = cInfo.relationshipStatus,
dependants = cInfo.dependents,
dob_of_dependants = cInfo.dobOfDependents,
credit_rating = Option(CustomerCreditRatingJSON(rating = cInfo.creditRating.rating, source = cInfo.creditRating.source)),
credit_limit = Option(AmountOfMoneyJsonV121(currency = cInfo.creditLimit.currency, amount = cInfo.creditLimit.amount)),
highest_education_attained = cInfo.highestEducationAttained,
employment_status = cInfo.employmentStatus,
kyc_status = cInfo.kycStatus,
last_ok_date = cInfo.lastOkDate
)
}
def createCustomersJson(customers : List[Customer]) : InternalCustomers = {
InternalCustomers(customers.map(createCustomerJson))
}
}

View File

@ -29,16 +29,17 @@ Berlin 13359, Germany
Ayoub Benali: ayoub AT tesobe DOT com
*/
package code.bankconnectors
package code.branches
import java.text.SimpleDateFormat
import java.util.{Date, Locale}
import code.api.util.APIUtil.{InboundMessageBase, MessageDoc, OutboundMessageBase}
import code.bankconnectors.InboundUser
import code.fx.FXRate
import code.metadata.counterparties.CounterpartyTrait
import code.model.dataAccess.MappedBankAccountData
import code.model._
import code.model.dataAccess.MappedBankAccountData
import code.transactionrequests.TransactionRequestTypeCharge
import net.liftweb.json.JsonAST.JValue
import net.liftweb.mapper.By

View File

@ -1,9 +1,9 @@
package code.api
import code.bankconnectors.InboundAccountJune2017
import code.bankconnectors.vJune.InboundAccountJune2017
import net.liftweb.json.{Extraction, compact, render}
import code.util.Helper.MdcLoggable
import net.liftweb.common.{ Full}
import net.liftweb.common.Full
import org.scalatest._
class gateWayloginTest extends FeatureSpec

View File

@ -6,9 +6,9 @@ import code.api.util.APIUtil.OAuth._
import code.api.v2_1_0.{BranchJsonPostV210, TransactionRequestCommonBodyJSON}
import code.atms.Atms.AtmId
import code.atms.MappedAtm
import code.bankconnectors.{Connector, InboundAdapterInfo, InboundUser, OBPQueryParam}
import code.bankconnectors.{Connector, InboundUser, OBPQueryParam}
import code.branches.Branches.{Branch, BranchId, BranchT}
import code.branches.MappedBranch
import code.branches.{InboundAdapterInfo, MappedBranch}
import code.fx.FXRate
import code.management.ImporterAPI.ImporterTransaction
import code.metadata.counterparties.CounterpartyTrait

View File

@ -6,8 +6,9 @@ import code.api.v2_1_0.{BranchJsonPostV210, TransactionRequestCommonBodyJSON}
import code.atms.Atms.AtmId
import code.atms.MappedAtm
import code.bankconnectors._
import code.bankconnectors.vJune.InboundAccountJune2017
import code.branches.Branches.{Branch, BranchId, BranchT}
import code.branches.MappedBranch
import code.branches.{InboundAdapterInfo, MappedBranch}
import code.fx.FXRate
import code.management.ImporterAPI.ImporterTransaction
import code.metadata.counterparties.CounterpartyTrait