move case classes of connector to obp-commons

This commit is contained in:
shuang 2019-03-29 21:07:16 +08:00
parent 579fa87fc4
commit dc62ae2c2f
49 changed files with 337 additions and 377 deletions

View File

@ -2,24 +2,22 @@ package code.api.ResourceDocs1_4_0
import java.util.Date
import code.api.v2_2_0.JSONFactory220.{AdapterImplementationJson, MessageDocJson, MessageDocsJson}
import code.api.{Constant}
import code.api.Constant
import code.api.UKOpenBanking.v2_0_0.JSONFactory_UKOpenBanking_200
import code.api.UKOpenBanking.v2_0_0.JSONFactory_UKOpenBanking_200.{Account, AccountBalancesUKV200, AccountInner, AccountList, Accounts, BalanceJsonUKV200, BalanceUKOpenBankingJson, BankTransactionCodeJson, CreditLineJson, DataJsonUKV200, Links, MetaBisJson, MetaInnerJson, TransactionCodeJson, TransactionInnerJson, TransactionsInnerJson, TransactionsJsonUKV200}
import code.api.berlin.group.v1.JSONFactory_BERLIN_GROUP_1.{AccountBalance, AccountBalances, AmountOfMoneyV1, Balances, ClosingBookedBody, CoreAccountJsonV1, CoreAccountsJsonV1, ExpectedBody, TransactionJsonV1, Transactions, TransactionsJsonV1, ViewAccount}
import code.api.util.{APIUtil, ApiTrigger}
import code.api.util.APIUtil.{defaultJValue, _}
import code.api.util.ApiRole._
import code.api.util.Glossary.GlossaryItem
import code.api.v1_2_1.AmountOfMoneyJsonV121
import code.api.util.{APIUtil, ApiTrigger}
import code.api.v2_2_0.JSONFactory220.{AdapterImplementationJson, MessageDocJson, MessageDocsJson}
import code.api.v3_0_0.JSONFactory300.createBranchJsonV300
import code.api.v3_0_0.custom.JSONFactoryCustom300
import code.api.v3_0_0.{LobbyJsonV330, _}
import code.api.v3_1_0.{BadLoginStatusJson, ContactDetailsJson, InviteeJson, ObpApiLoopbackJson, _}
import code.branches.Branches.{Branch, DriveUpString, LobbyString}
import code.sandbox.SandboxData
import code.transactionrequests.TransactionRequests.TransactionRequestTypes._
import code.branches.Branches.{Branch, DriveUpString, LobbyString}
import com.openbankproject.commons.model
import com.openbankproject.commons.model.PinResetReason.{FORGOT, GOOD_SECURITY_PRACTICE}
import com.openbankproject.commons.model._

View File

@ -2,12 +2,9 @@ package code.api.STET.v1_4
import java.util.Date
import code.api.STET.v1_4.JSONFactory_STET_1_4.{TransactionLastLink, TransactionNextLink}
import code.api.util.APIUtil
import code.api.v2_1_0.IbanJson
import code.model.{ModeratedBankAccount, ModeratedTransaction}
import code.transactionrequests.TransactionRequests.TransactionRequest
import com.openbankproject.commons.model.BankAccount
import com.openbankproject.commons.model.{BankAccount, TransactionRequest}
import scala.collection.immutable.List

View File

@ -4,10 +4,10 @@ import java.util.Date
import code.api.Constant
import code.api.util.APIUtil.DateWithDayExampleObject
import code.api.v1_2_1.AmountOfMoneyJsonV121
import com.openbankproject.commons.model.AmountOfMoneyJsonV121
import code.model.{ModeratedBankAccount, ModeratedTransaction}
import code.model.toBankAccountEx
import code.transactionrequests.TransactionRequests.TransactionRequest
import com.openbankproject.commons.model.TransactionRequest
import com.openbankproject.commons.model.BankAccount
import scala.collection.immutable.List

View File

@ -4,10 +4,8 @@ import java.util.Date
import code.api.Constant
import code.api.util.APIUtil.DateWithDayExampleObject
import code.api.v1_2_1.AmountOfMoneyJsonV121
import code.model.{ModeratedBankAccount, ModeratedTransaction}
import code.transactionrequests.TransactionRequests.TransactionRequest
import com.openbankproject.commons.model.BankAccount
import com.openbankproject.commons.model.{AmountOfMoneyJsonV121, BankAccount, TransactionRequest}
import scala.collection.immutable.List

View File

@ -1,13 +1,11 @@
package code.api.berlin.group.v1
import java.text.SimpleDateFormat
import java.util.Date
import code.api.util.APIUtil
import code.api.v2_1_0.IbanJson
import code.model.{ModeratedBankAccount, ModeratedTransaction}
import code.transactionrequests.TransactionRequests.TransactionRequest
import com.openbankproject.commons.model.CoreAccount
import com.openbankproject.commons.model.{CoreAccount, TransactionRequest}
import scala.collection.immutable.List

View File

@ -1,16 +1,13 @@
package code.api.berlin.group.v1_3
import java.text.SimpleDateFormat
import java.util.Date
import code.api.util.APIUtil
import code.api.v2_1_0.IbanJson
import code.model.{ModeratedBankAccount, ModeratedTransaction}
import code.transactionrequests.TransactionRequests.TransactionRequest
import com.openbankproject.commons.model.{BankAccount, CoreAccount}
import code.model.ModeratedTransaction
import com.openbankproject.commons.model.{BankAccount, CoreAccount, TransactionRequest}
import net.liftweb.json.JValue
import scala.collection.immutable.List
import net.liftweb.json.JValue
case class JvalueCaseClass(jvalueToCaseclass: JValue)

View File

@ -8,13 +8,11 @@ import code.api.util.ErrorMessages._
import code.api.v1_4_0.OBPAPI1_4_0.Implementations1_4_0
import code.api.v2_0_0.OBPAPI2_0_0.Implementations2_0_0
import code.api.v2_1_0.OBPAPI2_1_0.Implementations2_1_0
import code.api.v2_1_0.TransactionRequestCommonBodyJSON
import code.api.v2_2_0.OBPAPI2_2_0.Implementations2_2_0
import code.api.v3_0_0.OBPAPI3_0_0.Implementations3_0_0
import code.api.v3_1_0.OBPAPI3_1_0.Implementations3_1_0
import code.bankconnectors.{Connector, ObpApiLoopback}
import code.bankconnectors.Connector
import code.branches.Branches.{Branch, DriveUpString, LobbyString}
import code.consumer.Consumers
import code.entitlement.Entitlement
import code.entitlementrequest.EntitlementRequest
@ -23,7 +21,6 @@ import code.metadata.counterparties.Counterparties
import code.model._
import code.products.Products.Product
import code.transactionChallenge.ExpectedChallengeAnswer
import code.transactionrequests.TransactionRequests.TransactionRequest
import code.util.Helper
import code.views.Views
import code.webhook.AccountWebhook

View File

@ -181,11 +181,6 @@ case class UpdateAccountJSON(
bank_id : String
)
case class AccountRoutingJsonV121(
scheme: String,
address: String
)
case class ModeratedAccountJSON(
id : String,
label : String,
@ -211,10 +206,7 @@ case class PermissionJSON(
user : UserJSONV121,
views : List[ViewJSONV121]
)
case class AmountOfMoneyJsonV121(
currency : String,
amount : String
)
case class AccountHolderJSON(
name : String,
is_alias : Boolean

View File

@ -4,12 +4,11 @@ import java.util.Date
import code.api.util.APIUtil.ResourceDoc
import code.api.util.{ApiRole, PegdownOptions}
import code.api.v1_2_1.AmountOfMoneyJsonV121
import code.crm.CrmEvent.CrmEvent
import code.customer.CustomerMessage
import code.products.Products.Product
import code.transactionrequests.TransactionRequestTypeCharge
import code.transactionrequests.TransactionRequests.{TransactionRequest, _}
import code.transactionrequests.TransactionRequests._
import com.openbankproject.commons.model._
import net.liftweb.common.Full
import net.liftweb.json
@ -70,13 +69,6 @@ object JSONFactory1_4_0 {
case class DriveUpStringJson(hours : String)
case class LobbyStringJson(hours : String)
case class BranchRoutingJsonV141(
scheme: String,
address: String
)
case class BranchJson(id : String,
name : String,
address : AddressJsonV140,

View File

@ -11,7 +11,7 @@ import code.api.util.ErrorMessages.UserNotLoggedIn
import code.api.util.NewStyle.HttpCode
import code.api.util._
import code.api.v1_2_1.OBPAPI1_2_1._
import code.api.v1_2_1.{AmountOfMoneyJsonV121 => AmountOfMoneyJSON121, JSONFactory => JSONFactory121}
import code.api.v1_2_1.{JSONFactory => JSONFactory121}
import code.api.v1_4_0.JSONFactory1_4_0
import code.api.v1_4_0.JSONFactory1_4_0.ChallengeAnswerJSON
import code.api.v2_0_0.JSONFactory200.{privateBankAccountsListToJson, _}
@ -24,15 +24,15 @@ import code.kycdocuments.KycDocuments
import code.kycmedias.KycMedias
import code.kycstatuses.KycStatuses
import code.meetings.Meeting
import code.model.dataAccess.{AuthUser, BankAccountCreation}
import code.model._
import code.model.dataAccess.{AuthUser, BankAccountCreation}
import code.search.{elasticsearchMetrics, elasticsearchWarehouse}
import code.socialmedia.SocialMediaHandle
import code.usercustomerlinks.UserCustomerLink
import code.util.Helper
import code.util.Helper.booleanToBox
import code.views.Views
import com.openbankproject.commons.model.{Meeting, _}
import com.openbankproject.commons.model._
import net.liftweb.common.{Full, _}
import net.liftweb.http.CurrentReq
import net.liftweb.http.rest.RestHelper
@ -48,6 +48,8 @@ import code.api.util.ApiRole._
import code.api.util.ErrorMessages._
import net.liftweb.json.Extraction
import com.openbankproject.commons.model.{AmountOfMoneyJsonV121 => AmountOfMoneyJSON121}
trait APIMethods200 {
//needs to be a RestHelper to get access to JsonGet, JsonPost, etc.

View File

@ -29,7 +29,7 @@ package code.api.v2_0_0
import java.util.Date
import code.TransactionTypes.TransactionType.TransactionType
import code.api.v1_2_1.{AccountRoutingJsonV121, AmountOfMoneyJsonV121, JSONFactory => JSONFactory121, MinimalBankJSON => MinimalBankJSON121, ThisAccountJSON => ThisAccountJSON121, UserJSONV121 => UserJSON121}
import code.api.v1_2_1.{JSONFactory => JSONFactory121, MinimalBankJSON => MinimalBankJSON121, ThisAccountJSON => ThisAccountJSON121, UserJSONV121 => UserJSON121}
import code.api.v1_4_0.JSONFactory1_4_0.{ChallengeJsonV140, CustomerFaceImageJson, TransactionRequestAccountJsonV140}
import code.entitlement.Entitlement
import code.kycchecks.KycCheck

View File

@ -8,7 +8,6 @@ import code.api.util.ApiTag._
import code.api.util.ErrorMessages.TransactionDisabled
import code.api.util.NewStyle.HttpCode
import code.api.util.{APIUtil, ApiRole, NewStyle}
import code.api.v1_2_1.AmountOfMoneyJsonV121
import code.api.v1_3_0.{JSONFactory1_3_0, _}
import code.api.v1_4_0.JSONFactory1_4_0
import code.api.v1_4_0.JSONFactory1_4_0._

View File

@ -30,7 +30,8 @@ import java.lang
import java.util.Date
import code.api.util.ApiRole
import code.api.v1_2_1.{AccountRoutingJsonV121, AmountOfMoneyJsonV121, BankRoutingJsonV121}
import code.api.v1_2_1.{BankRoutingJsonV121}
import com.openbankproject.commons.model.{AccountRoutingJsonV121, AmountOfMoneyJsonV121}
import code.api.v1_4_0.JSONFactory1_4_0._
import code.api.v2_0_0.JSONFactory200.{UserJsonV200, UsersJsonV200, createEntitlementJSONs}
import code.api.v2_0_0.TransactionRequestChargeJsonV200
@ -66,14 +67,6 @@ case class CounterpartyIdJson (val counterparty_id : String)
case class IbanJson (val iban : String)
//high level of four different kinds of transaction request types: FREE_FROM, SANDBOXTAN, COUNTERPATY and SEPA.
//They share the same AmountOfMoney and description fields
//Note : in scala case-to-case inheritance is prohibited, so used trait instead
trait TransactionRequestCommonBodyJSON {
val value : AmountOfMoneyJsonV121
val description: String
}
// the common parts of four types
// note: there is TransactionRequestCommonBodyJSON trait, so this case class call TransactionRequestBodyCommonJSON
case class TransactionRequestBodyCommonJSON(

View File

@ -32,7 +32,8 @@ import java.util.Date
import code.actorsystem.ObpActorConfig
import code.api.util.APIUtil
import code.api.util.APIUtil.MessageDoc
import code.api.v1_2_1.{AccountRoutingJsonV121, AmountOfMoneyJsonV121, BankRoutingJsonV121}
import code.api.v1_2_1.{ BankRoutingJsonV121}
import com.openbankproject.commons.model.{AccountRoutingJsonV121, AmountOfMoneyJsonV121}
import code.api.v1_4_0.JSONFactory1_4_0._
import code.api.v2_1_0.{PostCounterpartyBespokeJson, ResourceUserJSON}
import code.atms.Atms.Atm

View File

@ -32,13 +32,13 @@ import java.util.Date
import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON
import code.api.util.RateLimitPeriod.LimitCallPeriod
import code.api.util.{APIUtil, RateLimitPeriod}
import code.api.v1_2_1.{AccountRoutingJsonV121, AmountOfMoneyJsonV121, RateLimiting}
import code.api.v1_4_0.JSONFactory1_4_0.{BranchRoutingJsonV141, CustomerFaceImageJson, MetaJsonV140}
import code.api.v1_2_1.{RateLimiting}
import com.openbankproject.commons.model.AmountOfMoneyJsonV121
import code.api.v1_4_0.JSONFactory1_4_0.{CustomerFaceImageJson, MetaJsonV140}
import code.api.v2_0_0.{MeetingKeysJson, MeetingPresentJson}
import code.api.v2_1_0.JSONFactory210.createLicenseJson
import code.api.v2_1_0.{CustomerCreditRatingJSON, ResourceUserJSON}
import code.api.v2_2_0._
import code.bankconnectors.ObpApiLoopback
import code.entitlement.Entitlement
import code.loginattempts.BadLoginAttempt
import code.metrics.{TopApi, TopConsumer}
@ -50,37 +50,6 @@ import net.liftweb.common.{Box, Full}
import scala.collection.immutable.List
case class CheckbookOrdersJson(
account: AccountV310Json ,
orders: List[OrderJson]
)
case class AccountV310Json(
bank_id: String ,
account_id: String ,
account_type : String,
account_routings: List[AccountRoutingJsonV121],
branch_routings: List[BranchRoutingJsonV141]
)
case class OrderJson(order: OrderObjectJson)
case class OrderObjectJson(
order_id: String,
order_date: String,
number_of_checkbooks: String,
distribution_channel: String,
status: String,
first_check_number: String,
shipping_code: String
)
case class CardObjectJson(
card_type: String,
card_description: String,
use_type: String
)
case class CreditCardOrderStatusResponseJson(
cards: List[CardObjectJson] ,
)

View File

@ -9,10 +9,8 @@ import code.api.util.APIUtil._
import code.api.util.ApiRole._
import code.api.util.ErrorMessages._
import code.api.util._
import code.api.v1_2_1.AmountOfMoneyJsonV121
import code.api.v1_4_0.JSONFactory1_4_0.TransactionRequestAccountJsonV140
import code.api.v2_1_0.{TransactionRequestCommonBodyJSON, _}
import code.api.v3_1_0._
import code.api.v2_1_0._
import code.atms.Atms
import code.bankconnectors.akka.AkkaConnector_vDec2018
import code.bankconnectors.vJune2017.KafkaMappedConnector_vJune2017
@ -21,10 +19,9 @@ import code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018
import code.branches.Branches.Branch
import code.fx.FXRate
import code.fx.fx.TTL
import code.kafka.Topics.TopicTrait
import code.management.ImporterAPI.ImporterTransaction
import code.model.dataAccess.ResourceUser
import code.model.{Transaction, toUserEx}
import code.model.toUserEx
import code.products.Products.Product
import code.transactionChallenge.ExpectedChallengeAnswer
import code.transactionrequests.TransactionRequests.TransactionRequestTypes._
@ -98,12 +95,6 @@ case class InboundUser(
displayName: String
)
case class ObpApiLoopback(
connectorVersion: String,
gitCommit: String,
durationTime: String
) extends TopicTrait
trait Connector extends MdcLoggable{
implicit val formats = net.liftweb.json.DefaultFormats

View File

@ -27,7 +27,6 @@ import java.util.Date
import code.api.util.ErrorMessages._
import code.api.util._
import code.api.v2_1_0.TransactionRequestCommonBodyJSON
import code.bankconnectors.vMar2017.KafkaMappedConnector_vMar2017
import code.branches.Branches.Branch
import code.fx.{FXRate, fx}

View File

@ -35,7 +35,6 @@ import code.api.cache.Caching
import code.api.util.APIUtil.saveConnectorMetric
import code.api.util.ErrorMessages._
import code.api.util._
import code.api.v2_1_0.TransactionRequestCommonBodyJSON
import code.atms.{Atms, MappedAtm}
import code.bankconnectors.vMar2017.KafkaMappedConnector_vMar2017
import code.branches.Branches.Branch

View File

@ -10,7 +10,6 @@ import code.api.cache.Caching
import code.api.util.APIUtil.{OBPReturnType, isValidCurrencyISOCode, saveConnectorMetric, stringOrNull}
import code.api.util.ErrorMessages._
import code.api.util._
import code.api.v2_1_0.TransactionRequestCommonBodyJSON
import code.atms.Atms.Atm
import code.atms.MappedAtm
import code.bankconnectors.vJune2017.InboundAccountJune2017
@ -35,7 +34,7 @@ import code.productattribute.ProductAttribute
import code.productcollection.ProductCollection
import code.productcollectionitem.ProductCollectionItem
import code.products.MappedProduct
import code.products.Products.{Product}
import code.products.Products.Product
import code.taxresidence.TaxResidence
import code.transaction.MappedTransaction
import code.transactionrequests.TransactionRequests._

View File

@ -4,7 +4,6 @@ import java.util.{Date, TimeZone}
import code.api.util.ErrorMessages._
import code.api.util.{APIUtil, CallContext, OBPQueryParam}
import code.api.v2_1_0.TransactionRequestCommonBodyJSON
import code.management.ImporterAPI.ImporterTransaction
import code.metadata.counterparties.{Counterparties, Metadata, MongoCounterparties}
import code.model._

View File

@ -9,7 +9,6 @@ import java.util.{Date, Optional}
import code.accountholders.{AccountHolders, MapperAccountHolders}
import code.api.util.ErrorMessages._
import code.api.util._
import code.api.v2_1_0.TransactionRequestCommonBodyJSON
import code.branches.Branches.Branch
import code.fx.{FXRate, fx}
import code.management.ImporterAPI.ImporterTransaction
@ -21,7 +20,6 @@ import code.metadata.wheretags.WhereTags
import code.model._
import code.model.dataAccess._
import code.products.Products.Product
import code.model.Transaction
import code.transaction.MappedTransaction
import code.transactionrequests.TransactionRequests._
import code.transactionrequests._
@ -29,7 +27,7 @@ import code.util.Helper
import code.util.Helper.MdcLoggable
import code.views.Views
import com.google.common.cache.CacheBuilder
import com.openbankproject.commons.model.{Bank, _}
import com.openbankproject.commons.model.{Bank, Transaction, _}
import com.tesobe.obp.kafka.{Configuration, SimpleConfiguration, SimpleNorth}
import com.tesobe.obp.transport.nov2016._
import com.tesobe.obp.transport.spi.{DefaultSorter, TimestampFilter}

View File

@ -10,17 +10,13 @@ import code.api.util._
import code.bankconnectors._
import code.bankconnectors.akka.InboundTransformerDec2018._
import code.bankconnectors.akka.actor.{AkkaConnectorActorInit, AkkaConnectorHelperActor}
import code.model.Transaction
import com.openbankproject.commons.dto._
import com.openbankproject.commons.model.{CounterpartyTrait, CreditLimit, _}
import com.sksamuel.avro4s.SchemaFor
import net.liftweb.common.{Box, Full}
import net.liftweb.json.Extraction.decompose
import net.liftweb.json.JsonAST.JValue
import net.liftweb.json.parse
import scala.collection.immutable.{List, Nil}
import scala.collection.mutable.ArrayBuffer
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future

View File

@ -4,7 +4,7 @@ import java.util.Date
import code.api.util.APIUtil
import code.model.dataAccess.MappedBankAccountData
import code.model.Transaction
import com.openbankproject.commons.dto.{InboundAccount, InboundBank, InboundCustomer, InboundTransaction}
import com.openbankproject.commons.model._
import net.liftweb.mapper.By

View File

@ -25,20 +25,17 @@ Berlin 13359, Germany
import java.util.UUID.randomUUID
import akka.http.scaladsl.model._
import akka.http.scaladsl.model.{HttpProtocol, _}
import akka.util.ByteString
import akka.http.scaladsl.model.HttpProtocol
import code.api.{APIFailure, APIFailureNewStyle}
import code.util.AkkaHttpClient._
import code.api.APIFailureNewStyle
import code.api.cache.Caching
import code.api.util.APIUtil.{MessageDoc, OBPReturnType, saveConnectorMetric}
import code.api.util.{APIUtil, CallContext, NewStyle, OBPQueryParam}
import code.api.util.ErrorMessages._
import code.api.util.{CallContext, OBPQueryParam}
import code.bankconnectors._
import code.bankconnectors.vJune2017.AuthInfo
import code.bankconnectors.vMar2017._
import code.kafka.KafkaHelper
import code.model.Transaction
import code.util.AkkaHttpClient._
import code.util.Helper.MdcLoggable
import com.openbankproject.commons.model._
import com.tesobe.CacheKeyFromArguments
@ -53,8 +50,6 @@ import scala.concurrent.duration._
import scala.language.postfixOps
import scala.reflect.runtime.universe._
import com.github.dwickern.macros.NameOf.nameOf
case class BankCommons (
bankId: BankId,
shortName: String,

View File

@ -4,13 +4,12 @@ import java.lang
import java.util.Date
import code.api.util.APIUtil
import code.api.v3_1_0.CheckbookOrdersJson
import com.openbankproject.commons.model.CheckbookOrdersJson
import code.bankconnectors.vMar2017._
import code.branches.Branches.{DriveUpString, LobbyString}
import code.kafka.Topics._
import code.model.dataAccess.MappedBankAccountData
import code.transactionrequests.TransactionRequests.TransactionRequest
import com.openbankproject.commons.model.TransactionRequest
import com.openbankproject.commons.model.{CounterpartyTrait, CreditLimit, _}
import net.liftweb.mapper.By
import net.liftweb.util.Helpers.today

View File

@ -33,7 +33,7 @@ import code.api.util.APIUtil.{MessageDoc, getSecondsCache, saveConnectorMetric}
import code.api.util.ErrorMessages._
import code.api.util._
import code.api.util.APIUtil._
import code.api.v3_1_0.{AccountV310Json, CardObjectJson, CheckbookOrdersJson}
import com.openbankproject.commons.model.{AccountV310Json, CardObjectJson, CheckbookOrdersJson}
import code.bankconnectors._
import code.bankconnectors.vMar2017._

View File

@ -3,15 +3,10 @@ package code.bankconnectors.vSept2018
import java.util.Date
import code.api.util.APIUtil
import code.api.v2_1_0.TransactionRequestCommonBodyJSON
import code.api.v3_1_0.CheckbookOrdersJson
import code.bankconnectors.vJune2017.InternalCustomer
import code.bankconnectors.vMar2017._
import code.branches.Branches.{DriveUpString, LobbyString}
import code.kafka.Topics._
import code.model.dataAccess.MappedBankAccountData
import code.transactionrequests.TransactionRequests.TransactionRequest
import com.openbankproject.commons.model.{CounterpartyTrait, Customer, UserAuthContext, _}
import net.liftweb.mapper.By
import net.liftweb.util.Helpers.today

View File

@ -31,41 +31,33 @@ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON
import code.api.cache.Caching
import code.api.util.APIUtil.{MessageDoc, saveConnectorMetric, _}
import code.api.util.ErrorMessages._
import code.api.util.ExampleValue._
import code.api.util._
import code.api.v3_1_0.CardObjectJson
import code.api.v2_1_0.TransactionRequestBodyCommonJSON
import code.bankconnectors._
import code.bankconnectors.vJune2017.{InternalCustomer, JsonFactory_vJune2017}
import code.bankconnectors.vMar2017._
import code.context.UserAuthContextProvider
import code.customer._
import code.kafka.{KafkaHelper, Topics}
import code.model._
import code.model.dataAccess._
import code.transactionrequests.TransactionRequests._
import code.users.Users
import code.util.Helper.MdcLoggable
import code.views.Views
import com.openbankproject.commons.model.{CounterpartyTrait, _}
import com.sksamuel.avro4s.SchemaFor
import com.tesobe.{CacheKeyFromArguments, CacheKeyOmit}
import net.liftweb
import net.liftweb.common.{Box, _}
import net.liftweb.json.Extraction._
import net.liftweb.json.JsonAST.JValue
import net.liftweb.json.{Extraction, MappingException, parse}
import net.liftweb.util.Helpers.{now, tryo}
import net.liftweb.json.{MappingException, parse}
import net.liftweb.util.Helpers.tryo
import scala.collection.immutable.{List, Nil}
import scala.collection.mutable.ArrayBuffer
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future
import scala.concurrent.duration._
import scala.language.postfixOps
import code.api.util.ExampleValue._
import code.api.v1_2_1.AmountOfMoneyJsonV121
import code.api.v2_1_0.{TransactionRequestBodyCommonJSON, TransactionRequestCommonBodyJSON}
import code.context.UserAuthContextProvider
import code.users.Users
import com.openbankproject.commons.model.{CounterpartyTrait, _}
import net.liftweb
import net.liftweb.json
trait KafkaMappedConnector_vSept2018 extends Connector with KafkaHelper with MdcLoggable {

View File

@ -10,10 +10,10 @@ import code.actorsystem.{ObpActorHelper, ObpActorInit}
import code.api.util.APIUtil
import code.api.util.ErrorMessages._
import code.bankconnectors.AvroSerializer
import code.kafka.Topics.TopicTrait
import code.kafka.actor.RequestResponseActor
import code.kafka.actor.RequestResponseActor.Request
import code.util.Helper.MdcLoggable
import com.openbankproject.commons.model.TopicTrait
import net.liftweb.common.{Failure, Full}
import net.liftweb.json
import net.liftweb.json.{DefaultFormats, Extraction, JsonAST}
@ -263,9 +263,4 @@ object Topics extends KafkaConfig {
)
}
// @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.
trait TopicTrait
}

View File

@ -5,18 +5,16 @@ import java.util.Date
import code.api.util.APIUtil
import code.api.util.ErrorMessages._
import code.bankconnectors.Connector
import code.model.Transaction
import code.tesobe.ErrorMessage
import code.util.Helper
import net.liftweb.common.Full
import code.util.Helper.MdcLoggable
import com.openbankproject.commons.model.Transaction
import net.liftweb.common.Full
import net.liftweb.http._
import net.liftweb.http.js.JsExp
import net.liftweb.http.rest.RestHelper
import net.liftweb.json.JsonAST.{JArray, JField, JObject, JString}
import net.liftweb.json.{DefaultFormats, Extraction}
import net.liftweb.util.Helpers._
import net.liftweb.util.Props
/**
* This is legacy code and does not handle edge cases very well and assumes certain things, e.g.

View File

@ -1,13 +1,13 @@
package code.management
import code.api.util.ErrorMessages._
import code.bankconnectors.Connector
import code.model.Transaction
import code.management.ImporterAPI._
import code.util.Helper.MdcLoggable
import com.openbankproject.commons.model.Transaction
import net.liftweb.actor.LiftActor
import net.liftweb.common._
import net.liftweb.util.Helpers
import code.util.Helper.MdcLoggable
import code.api.util.ErrorMessages._
object TransactionInserter extends LiftActor with MdcLoggable {

View File

@ -26,23 +26,16 @@ TESOBE (http://www.tesobe.com/)
*/
package code.model
import java.util.Date
import code.accountholders.AccountHolders
import code.api.util.APIUtil.unboxFullOrFail
import code.api.util.ErrorMessages._
import code.api.util._
import code.bankconnectors.Connector
import code.customer.Customer
import code.metadata.comments.Comments
import code.metadata.narrative.Narrative
import code.metadata.tags.Tags
import code.metadata.transactionimages.TransactionImages
import code.metadata.wheretags.WhereTags
import code.util.Helper
import code.util.Helper.MdcLoggable
import code.views.Views
import com.openbankproject.commons.model.{AccountId, AccountRouting, Bank, BankAccount, BankAccountInMemory, BankId, BankIdAccountId, Counterparty, CounterpartyId, CounterpartyTrait, CreateViewJson, Customer, Permission, TransactionId, TransactionMetadata, UpdateViewJSON, User, UserPrimaryKey, View, ViewId, ViewIdBankIdAccountId}
import com.openbankproject.commons.model.{AccountId, AccountRouting, Bank, BankAccount, BankAccountInMemory, BankId, BankIdAccountId, Counterparty, CounterpartyId, CounterpartyTrait, CreateViewJson, Customer, Permission, TransactionId, UpdateViewJSON, User, UserPrimaryKey, View, ViewId, ViewIdBankIdAccountId}
import net.liftweb.common._
import net.liftweb.json.JsonDSL._
import net.liftweb.json.{JArray, JObject}
@ -50,7 +43,6 @@ import net.liftweb.json.{JArray, JObject}
import scala.collection.immutable.{List, Set}
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future
import scala.math.BigDecimal
case class BankEx(bank: Bank) {
@ -590,56 +582,3 @@ trait TransactionUUID {
def theAccountId : AccountId
}
class Transaction(
//A universally unique id
val uuid: String,
//id is unique for transactions of @thisAccount
val id : TransactionId,
val thisAccount : BankAccount,
val otherAccount : Counterparty,
//E.g. cash withdrawal, electronic payment, etc.
val transactionType : String,
val amount : BigDecimal,
//ISO 4217, e.g. EUR, GBP, USD, etc.
val currency : String,
// Bank provided label
val description : Option[String],
// The date the transaction was initiated
val startDate : Date,
// The date when the money finished changing hands
val finishDate : Date,
//the new balance for the bank account
val balance : BigDecimal
) {
val bankId = thisAccount.bankId
val accountId = thisAccount.accountId
/**
* The metadata is set up using dependency injection. If you want to, e.g. override the Comments implementation
* for a particular scope, use Comments.comments.doWith(NewCommentsImplementation extends Comments{}){
* //code in here will use NewCommentsImplementation (e.g. val t = new Transaction(...) will result in Comments.comments.vend
* // return NewCommentsImplementation here below)
* }
*
* If you want to change the current default implementation, you would change the buildOne function in Comments to
* return a different value
*
*/
val metadata : TransactionMetadata = new TransactionMetadata(
Narrative.narrative.vend.getNarrative(bankId, accountId, id) _,
Narrative.narrative.vend.setNarrative(bankId, accountId, id) _,
Comments.comments.vend.getComments(bankId, accountId, id) _,
Comments.comments.vend.addComment(bankId, accountId, id) _,
Comments.comments.vend.deleteComment(bankId, accountId, id) _,
Tags.tags.vend.getTags(bankId, accountId, id) _,
Tags.tags.vend.addTag(bankId, accountId, id) _,
Tags.tags.vend.deleteTag(bankId, accountId, id) _,
TransactionImages.transactionImages.vend.getImagesForTransaction(bankId, accountId, id) _,
TransactionImages.transactionImages.vend.addTransactionImage(bankId, accountId, id) _,
TransactionImages.transactionImages.vend.deleteTransactionImage(bankId, accountId, id) _,
WhereTags.whereTags.vend.getWhereTagForTransaction(bankId, accountId, id) _,
WhereTags.whereTags.vend.addWhereTag(bankId, accountId, id) _,
WhereTags.whereTags.vend.deleteWhereTag(bankId, accountId, id) _
)
}

View File

@ -1,6 +1,11 @@
package code
import code.metadata.comments.Comments
import code.metadata.counterparties.Counterparties
import code.metadata.narrative.Narrative
import code.metadata.tags.Tags
import code.metadata.transactionimages.TransactionImages
import code.metadata.wheretags.WhereTags
import com.openbankproject.commons.model._
/**
@ -30,4 +35,38 @@ package object model {
counterparty.counterpartyName
).openOrThrowException("Can not getOrCreateMetadata !")
}
implicit class TransactionEx(transaction: Transaction) {
private[this] val bankId = transaction.bankId
private[this] val accountId = transaction.accountId
private[this] val id = transaction.id
/**
* The metadata is set up using dependency injection. If you want to, e.g. override the Comments implementation
* for a particular scope, use Comments.comments.doWith(NewCommentsImplementation extends Comments{}){
* //code in here will use NewCommentsImplementation (e.g. val t = new Transaction(...) will result in Comments.comments.vend
* // return NewCommentsImplementation here below)
* }
*
* If you want to change the current default implementation, you would change the buildOne function in Comments to
* return a different value
*
*/
val metadata : TransactionMetadata = new TransactionMetadata(
Narrative.narrative.vend.getNarrative(bankId, accountId, id) _,
Narrative.narrative.vend.setNarrative(bankId, accountId, id) _,
Comments.comments.vend.getComments(bankId, accountId, id) _,
Comments.comments.vend.addComment(bankId, accountId, id) _,
Comments.comments.vend.deleteComment(bankId, accountId, id) _,
Tags.tags.vend.getTags(bankId, accountId, id) _,
Tags.tags.vend.addTag(bankId, accountId, id) _,
Tags.tags.vend.deleteTag(bankId, accountId, id) _,
TransactionImages.transactionImages.vend.getImagesForTransaction(bankId, accountId, id) _,
TransactionImages.transactionImages.vend.addTransactionImage(bankId, accountId, id) _,
TransactionImages.transactionImages.vend.deleteTransactionImage(bankId, accountId, id) _,
WhereTags.whereTags.vend.getWhereTagForTransaction(bankId, accountId, id) _,
WhereTags.whereTags.vend.addWhereTag(bankId, accountId, id) _,
WhereTags.whereTags.vend.deleteWhereTag(bankId, accountId, id) _
)
}
}

View File

@ -2,11 +2,11 @@ package code.remotedata
import akka.pattern.ask
import code.actorsystem.ObpActorInit
import code.api.v2_1_0.TransactionRequestCommonBodyJSON
import code.model._
import code.transactionrequests.TransactionRequests.{TransactionRequest, TransactionRequestBody, TransactionRequestChallenge, TransactionRequestCharge}
import code.transactionrequests.TransactionRequests.{TransactionRequestBody}
import com.openbankproject.commons.model.{TransactionRequest, TransactionRequestChallenge, TransactionRequestCharge, _}
import code.transactionrequests.{MappedTransactionRequest, RemotedataTransactionRequestsCaseClasses, TransactionRequestProvider}
import com.openbankproject.commons.model.{CounterpartyTrait, _}
import net.liftweb.common.Box
object RemotedataTransactionRequests extends ObpActorInit with TransactionRequestProvider {

View File

@ -2,12 +2,10 @@ package code.remotedata
import akka.actor.Actor
import code.actorsystem.ObpActorHelper
import code.api.v2_1_0.TransactionRequestCommonBodyJSON
import code.model._
import code.transactionrequests.TransactionRequests.{TransactionRequestBody, TransactionRequestChallenge, TransactionRequestCharge}
import code.transactionrequests.TransactionRequests.TransactionRequestBody
import code.transactionrequests.{MappedTransactionRequestProvider, RemotedataTransactionRequestsCaseClasses}
import code.util.Helper.MdcLoggable
import com.openbankproject.commons.model.{CounterpartyTrait, _}
import com.openbankproject.commons.model._
class RemotedataTransactionRequestsActor extends Actor with ObpActorHelper with MdcLoggable {

View File

@ -1,7 +1,6 @@
package code.transactionrequests
import code.api.util.ErrorMessages._
import code.api.v2_1_0.{TransactionRequestBodyCounterpartyJSON, TransactionRequestBodySEPAJSON, TransactionRequestBodySandBoxTanJSON, TransactionRequestCommonBodyJSON}
import code.bankconnectors.Connector
import code.model._

View File

@ -1,21 +1,12 @@
package code.transactionrequests
import java.util.Date
import code.api.util.APIUtil
import code.api.v1_2_1.AmountOfMoneyJsonV121
import code.api.v1_4_0.JSONFactory1_4_0.TransactionRequestAccountJsonV140
import code.api.v2_1_0.{CounterpartyIdJson, IbanJson, TransactionRequestCommonBodyJSON}
import code.api.v3_0_0.custom._
import code.model._
import code.remotedata.RemotedataTransactionRequests
import code.transactionrequests.TransactionRequests.{TransactionRequest, TransactionRequestBody, TransactionRequestChallenge, TransactionRequestCharge}
import com.openbankproject.commons.model.{CounterpartyTrait, _}
import code.transactionrequests.TransactionRequests.{TransactionRequestBody}
import com.openbankproject.commons.model.{TransactionRequest,TransactionRequestChallenge, TransactionRequestCharge, _}
import net.liftweb.common.{Box, Logger}
import net.liftweb.json.JsonAST.JValue
import net.liftweb.util.{Props, SimpleInjector}
import org.elasticsearch.common.inject.Inject
import net.liftweb.util.SimpleInjector
object TransactionRequests extends SimpleInjector {
@ -36,127 +27,11 @@ object TransactionRequests extends SimpleInjector {
def updatestatus(newStatus: String) = {}
case class TransactionRequestCharge(
val summary: String,
val value : AmountOfMoney
)
case class TransactionRequest (
val id: TransactionRequestId,
val `type` : String,
val from: TransactionRequestAccount,
val body: TransactionRequestBodyAllTypes,
val transaction_ids: String,
val status: String,
val start_date: Date,
val end_date: Date,
val challenge: TransactionRequestChallenge,
val charge: TransactionRequestCharge,
val charge_policy: String,
val counterparty_id :CounterpartyId,
val name :String,
val this_bank_id : BankId,
val this_account_id : AccountId,
val this_view_id :ViewId,
val other_account_routing_scheme : String,
val other_account_routing_address : String,
val other_bank_routing_scheme : String,
val other_bank_routing_address : String,
val is_beneficiary :Boolean,
val future_date :Option[String] = None
)
case class TransactionRequestChallenge (
val id: String,
val allowed_attempts : Int,
val challenge_type: String
)
case class TransactionRequestAccount (
val bank_id: String,
val account_id : String
)
//For COUNTERPATY, it need the counterparty_id to find the toCounterpaty--> toBankAccount
case class TransactionRequestCounterpartyId (counterparty_id : String)
//For SEPA, it need the iban to find the toCounterpaty--> toBankAccount
case class TransactionRequestIban (iban : String)
case class FromAccountTransfer(
mobile_phone_number: String,
nickname: String
)
case class ToAccountTransferToPhone(
mobile_phone_number: String
)
case class ToAccountTransferToAtmKycDocument(
`type`: String,
number: String
)
case class ToAccountTransferToAtm(
legal_name: String,
date_of_birth: String,
mobile_phone_number: String,
kyc_document: ToAccountTransferToAtmKycDocument
)
case class ToAccountTransferToAccountAccount(
number: String,
iban: String
)
case class ToAccountTransferToAccount(
name: String,
bank_code: String,
branch_number: String,
account: ToAccountTransferToAccountAccount
)
case class TransactionRequestTransferToPhone(
value: AmountOfMoneyJsonV121,
description: String,
message: String,
from: FromAccountTransfer,
to: ToAccountTransferToPhone
) extends TransactionRequestCommonBodyJSON
case class TransactionRequestTransferToAtm(
value: AmountOfMoneyJsonV121,
description: String,
message: String,
from: FromAccountTransfer,
to: ToAccountTransferToAtm
) extends TransactionRequestCommonBodyJSON
case class TransactionRequestTransferToAccount(
value: AmountOfMoneyJsonV121,
description: String,
transfer_type: String,
future_date: String,
to: ToAccountTransferToAccount
) extends TransactionRequestCommonBodyJSON
case class TransactionRequestBody (
val to: TransactionRequestAccount,
val value : AmountOfMoney,
val description : String
)
case class TransactionRequestBodyAllTypes (
to_sandbox_tan: Option[TransactionRequestAccount],
to_sepa: Option[TransactionRequestIban],
to_counterparty: Option[TransactionRequestCounterpartyId],
to_transfer_to_phone: Option[TransactionRequestTransferToPhone] = None, //TODO not stable
to_transfer_to_atm: Option[TransactionRequestTransferToAtm]= None,//TODO not stable
to_transfer_to_account: Option[TransactionRequestTransferToAccount]= None,//TODO not stable
value: AmountOfMoney,
description: String
)
val transactionRequestProvider = new Inject(buildOne _) {}

View File

@ -2,7 +2,7 @@ package code.api.v1_4_0
import code.api.util.APIUtil
import code.api.util.APIUtil.OAuth._
import code.api.v1_2_1.AmountOfMoneyJsonV121
import com.openbankproject.commons.model.AmountOfMoneyJsonV121
import code.api.v1_4_0.JSONFactory1_4_0._
import code.bankconnectors.Connector
import code.setup.DefaultUsers

View File

@ -2,7 +2,7 @@ package code.api.v2_0_0
import code.api.util.APIUtil.OAuth._
import code.api.util.ErrorMessages
import code.api.v1_2_1.{AmountOfMoneyJsonV121 => AmountOfMoneyJSON121}
import com.openbankproject.commons.model.{AmountOfMoneyJsonV121 => AmountOfMoneyJSON121}
import code.setup.DefaultUsers
import net.liftweb.json.JsonAST._
import net.liftweb.json.Serialization.write

View File

@ -3,7 +3,7 @@ package code.api.v2_0_0
import code.api.util.APIUtil.OAuth._
import code.api.util.ApiRole._
import code.api.util.{APIUtil, ErrorMessages}
import code.api.v1_2_1.AmountOfMoneyJsonV121
import com.openbankproject.commons.model.AmountOfMoneyJsonV121
import code.api.v1_4_0.JSONFactory1_4_0.{ChallengeAnswerJSON, TransactionRequestAccountJsonV140}
import code.bankconnectors.Connector
import code.fx.fx

View File

@ -4,7 +4,7 @@ import code.api.ErrorMessage
import code.api.util.APIUtil.OAuth._
import code.api.util.ApiRole.CanCreateTransactionType
import code.api.util.{ApiRole, ErrorMessages}
import code.api.v1_2_1.AmountOfMoneyJsonV121
import com.openbankproject.commons.model.AmountOfMoneyJsonV121
import code.api.v2_0_0.TransactionTypeJsonV200
import code.setup.DefaultUsers
import code.transaction_types.MappedTransactionType

View File

@ -3,7 +3,7 @@ package code.api.v2_1_0
import code.api.ErrorMessage
import code.api.util.APIUtil.OAuth._
import code.api.util.{ApiRole, ErrorMessages}
import code.api.v1_2_1.AmountOfMoneyJsonV121
import com.openbankproject.commons.model.AmountOfMoneyJsonV121
import code.api.v1_4_0.JSONFactory1_4_0.CustomerFaceImageJson
import code.entitlement.Entitlement
import code.setup.DefaultUsers

View File

@ -7,7 +7,7 @@ import code.api.util.APIUtil.OAuth._
import code.api.util.ApiRole.CanCreateAnyTransactionRequest
import code.api.util.ErrorMessages._
import code.api.util.{APIUtil, ErrorMessages}
import code.api.v1_2_1.AmountOfMoneyJsonV121
import com.openbankproject.commons.model.AmountOfMoneyJsonV121
import code.api.v1_4_0.JSONFactory1_4_0.{ChallengeAnswerJSON, TransactionRequestAccountJsonV140}
import code.api.v2_0_0.TransactionRequestBodyJsonV200
import code.bankconnectors.Connector

View File

@ -2,8 +2,8 @@ package code.api.v2_2_0
import code.api.util.APIUtil.OAuth._
import code.api.util.ErrorMessages
import code.api.v1_2_1.{AccountRoutingJsonV121, AmountOfMoneyJsonV121}
import code.setup.DefaultUsers
import com.openbankproject.commons.model.{AccountRoutingJsonV121, AmountOfMoneyJsonV121}
import net.liftweb.json.JsonAST._
import net.liftweb.json.Serialization.write

View File

@ -3,7 +3,7 @@ package code.connector
import code.api.util.APIUtil.MessageDoc
import code.bankconnectors.vJune2017.{InboundGetTransactionRequests210, InternalGetTransactionRequests, KafkaMappedConnector_vJune2017, OutboundGetTransactionRequests210}
import code.transactionrequests.TransactionRequests.TransactionRequest
import com.openbankproject.commons.model.TransactionRequest
import code.util.Helper.MdcLoggable
import net.liftweb.json.Extraction
import net.liftweb.json.JsonAST.JValue

View File

@ -1,6 +1,5 @@
package code.management
import java.text.SimpleDateFormat
import java.util.TimeZone
import code.api.util.APIUtil
@ -9,8 +8,7 @@ import code.bankconnectors.Connector
import code.model._
import code.setup.{APIResponse, DefaultConnectorTestSetup, ServerSetup}
import code.util.Helper.MdcLoggable
import com.openbankproject.commons.model.AccountId
import net.liftweb.util.Props
import com.openbankproject.commons.model.{AccountId, Transaction}
import net.liftweb.util.TimeHelpers._

View File

@ -50,7 +50,7 @@ TESOBE (http://www.tesobe.com/)
import java.util.{Date, UUID}
import code.api.util.APIUtil
import code.api.v1_2_1.AmountOfMoneyJsonV121
import com.openbankproject.commons.model.AmountOfMoneyJsonV121
import code.api.v1_4_0.JSONFactory1_4_0.CustomerFaceImageJson
import code.api.v2_0_0.JSONFactory200.UserJsonV200
import code.api.v2_1_0.{CustomerCreditRatingJSON, PostCustomerJsonV210}

View File

@ -241,3 +241,214 @@ case class MeetingCommons(
when :Date,
creator :ContactDetails,
invitees :List[Invitee]) extends Meeting
//----------------obp-api moved to here case classes
case class BranchRoutingJsonV141(
scheme: String,
address: String
)
case class AccountRoutingJsonV121(
scheme: String,
address: String
)
case class AccountV310Json(
bank_id: String ,
account_id: String ,
account_type : String,
account_routings: List[AccountRoutingJsonV121],
branch_routings: List[BranchRoutingJsonV141]
)
case class CheckbookOrdersJson(
account: AccountV310Json ,
orders: List[OrderJson]
)
case class OrderJson(order: OrderObjectJson)
case class OrderObjectJson(
order_id: String,
order_date: String,
number_of_checkbooks: String,
distribution_channel: String,
status: String,
first_check_number: String,
shipping_code: String
)
case class ObpApiLoopback(
connectorVersion: String,
gitCommit: String,
durationTime: String
) extends TopicTrait
case class CardObjectJson(
card_type: String,
card_description: String,
use_type: String
)
case class TransactionRequestAccount (
val bank_id: String,
val account_id : String
)
//For SEPA, it need the iban to find the toCounterpaty--> toBankAccount
case class TransactionRequestIban (iban : String)
case class AmountOfMoneyJsonV121(
currency : String,
amount : String
)
case class ToAccountTransferToAccountAccount(
number: String,
iban: String
)
case class FromAccountTransfer(
mobile_phone_number: String,
nickname: String
)
case class ToAccountTransferToAtmKycDocument(
`type`: String,
number: String
)
case class ToAccountTransferToAccount(
name: String,
bank_code: String,
branch_number: String,
account: ToAccountTransferToAccountAccount
)
case class ToAccountTransferToPhone(
mobile_phone_number: String
)
case class TransactionRequestTransferToPhone(
value: AmountOfMoneyJsonV121,
description: String,
message: String,
from: FromAccountTransfer,
to: ToAccountTransferToPhone
) extends TransactionRequestCommonBodyJSON
case class ToAccountTransferToAtm(
legal_name: String,
date_of_birth: String,
mobile_phone_number: String,
kyc_document: ToAccountTransferToAtmKycDocument
)
case class TransactionRequestTransferToAtm(
value: AmountOfMoneyJsonV121,
description: String,
message: String,
from: FromAccountTransfer,
to: ToAccountTransferToAtm
) extends TransactionRequestCommonBodyJSON
//For COUNTERPATY, it need the counterparty_id to find the toCounterpaty--> toBankAccount
case class TransactionRequestCounterpartyId (counterparty_id : String)
case class TransactionRequestTransferToAccount(
value: AmountOfMoneyJsonV121,
description: String,
transfer_type: String,
future_date: String,
to: ToAccountTransferToAccount
) extends TransactionRequestCommonBodyJSON
case class TransactionRequestBodyAllTypes (
to_sandbox_tan: Option[TransactionRequestAccount],
to_sepa: Option[TransactionRequestIban],
to_counterparty: Option[TransactionRequestCounterpartyId],
to_transfer_to_phone: Option[TransactionRequestTransferToPhone] = None, //TODO not stable
to_transfer_to_atm: Option[TransactionRequestTransferToAtm]= None,//TODO not stable
to_transfer_to_account: Option[TransactionRequestTransferToAccount]= None,//TODO not stable
value: AmountOfMoney,
description: String
)
case class TransactionRequestCharge(
val summary: String,
val value : AmountOfMoney
)
case class TransactionRequestChallenge (
val id: String,
val allowed_attempts : Int,
val challenge_type: String
)
case class TransactionRequest (
val id: TransactionRequestId,
val `type` : String,
val from: TransactionRequestAccount,
val body: TransactionRequestBodyAllTypes,
val transaction_ids: String,
val status: String,
val start_date: Date,
val end_date: Date,
val challenge: TransactionRequestChallenge,
val charge: TransactionRequestCharge,
val charge_policy: String,
val counterparty_id :CounterpartyId,
val name :String,
val this_bank_id : BankId,
val this_account_id : AccountId,
val this_view_id :ViewId,
val other_account_routing_scheme : String,
val other_account_routing_address : String,
val other_bank_routing_scheme : String,
val other_bank_routing_address : String,
val is_beneficiary :Boolean,
val future_date :Option[String] = None
)
class Transaction(
//A universally unique id
val uuid: String,
//id is unique for transactions of @thisAccount
val id : TransactionId,
val thisAccount : BankAccount,
val otherAccount : Counterparty,
//E.g. cash withdrawal, electronic payment, etc.
val transactionType : String,
val amount : BigDecimal,
//ISO 4217, e.g. EUR, GBP, USD, etc.
val currency : String,
// Bank provided label
val description : Option[String],
// The date the transaction was initiated
val startDate : Date,
// The date when the money finished changing hands
val finishDate : Date,
//the new balance for the bank account
val balance : BigDecimal
) {
val bankId = thisAccount.bankId
val accountId = thisAccount.accountId
}
// because Transaction#thisAccount is trait, can't be deserialize, So here supply a case class to do deserialize
case class TransactionCommons(
//A universally unique id
override val uuid: String,
override val id : TransactionId,
override val thisAccount : BankAccountCommons,
override val otherAccount : Counterparty,
override val transactionType : String,
override val amount : BigDecimal,
override val currency : String,
override val description : Option[String],
override val startDate : Date,
override val finishDate : Date,
override val balance : BigDecimal
) extends Transaction(uuid, id, thisAccount, otherAccount, transactionType, amount, currency,description, startDate, finishDate, balance)

View File

@ -262,7 +262,20 @@ trait RoutingT {
def address: String
}
// @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.
trait TopicTrait
//high level of four different kinds of transaction request types: FREE_FROM, SANDBOXTAN, COUNTERPATY and SEPA.
//They share the same AmountOfMoney and description fields
//Note : in scala case-to-case inheritance is prohibited, so used trait instead
trait TransactionRequestCommonBodyJSON {
val value : AmountOfMoneyJsonV121
val description: String
}
//---------------------------------------- trait dependents of case class
@deprecated("Use Lobby instead which contains detailed fields, not this string","24 July 2017")
case class LobbyString (hours : String) extends LobbyStringT