move traits of connector to obp-commons

This commit is contained in:
shuang 2019-03-29 17:07:11 +08:00
parent f2c808ebe1
commit f67dbab998
78 changed files with 528 additions and 660 deletions

View File

@ -1,11 +1,9 @@
package code.accountapplication
import java.util.Date
import code.api.util.APIUtil
import code.products.Products.ProductCode
import code.remotedata.RemotedataAccountApplication
import com.openbankproject.commons.model.{AccountApplication, ProductCode}
import net.liftweb.common.Box
import net.liftweb.util.SimpleInjector
@ -29,15 +27,6 @@ trait AccountApplicationProvider {
def updateStatus(accountApplicationId:String, status: String): Future[Box[AccountApplication]]
}
trait AccountApplication {
def accountApplicationId: String
def productCode: ProductCode
def userId: String
def customerId: String
def dateOfApplication: Date
def status: String
}
class RemotedataAccountApplicationCaseClasses {
case class getAll()

View File

@ -3,10 +3,8 @@ package code.accountapplication
import java.util.Date
import code.api.util.ErrorMessages
import code.customer.MappedCustomer
import code.model.dataAccess.ResourceUser
import code.products.Products.ProductCode
import code.util.MappedUUID
import com.openbankproject.commons.model.{AccountApplication, ProductCode}
import net.liftweb.common.{Box, Empty, Failure, Full}
import net.liftweb.mapper._
import net.liftweb.util.Helpers.tryo

View File

@ -2,11 +2,9 @@ package code.accountattribute
/* For AccountAttribute */
import code.accountattribute.AccountAttribute.{AccountAttribute, AccountAttributeType}
import code.api.util.APIUtil
import code.products.Products.ProductCode
import code.remotedata.RemotedataAccountAttribute
import com.openbankproject.commons.model.{AccountId, BankId}
import com.openbankproject.commons.model.{AccountAttribute, AccountAttributeType, AccountId, BankId, ProductCode}
import net.liftweb.common.{Box, Logger}
import net.liftweb.util.SimpleInjector
@ -14,36 +12,6 @@ import scala.concurrent.Future
object AccountAttribute extends SimpleInjector {
object AccountAttributeType extends Enumeration{
type ProductAttributeType = Value
val STRING = Value("STRING")
val INTEGER = Value("INTEGER")
val DOUBLE = Value("DOUBLE")
val DATE_WITH_DAY = Value("DATE_WITH_DAY")
}
trait AccountAttribute {
def bankId: BankId
def accountId: AccountId
def productCode: ProductCode
def accountAttributeId: String
def name: String
def attributeType: AccountAttributeType.Value
def value: String
}
val accountAttributeProvider = new Inject(buildOne _) {}
def buildOne: AccountAttributeProvider =

View File

@ -1,9 +1,7 @@
package code.accountattribute
import code.accountattribute.AccountAttribute.{AccountAttribute, AccountAttributeType}
import code.products.Products.ProductCode
import code.util.{MappedUUID, UUIDString}
import com.openbankproject.commons.model.{AccountId, BankId}
import com.openbankproject.commons.model.{AccountAttribute, AccountAttributeType, AccountId, BankId, ProductCode}
import net.liftweb.common.{Box, Empty, Full}
import net.liftweb.mapper._
import net.liftweb.util.Helpers.tryo

View File

@ -28,14 +28,14 @@ package code.api
import code.api.JSONFactoryGateway.PayloadOfJwtJSON
import code.api.util._
import code.bankconnectors.{Connector, InboundAccountCommon}
import code.bankconnectors.Connector
import code.consumer.Consumers
import code.model.dataAccess.AuthUser
import code.model.{Consumer, User}
import code.users.Users
import code.util.Helper.MdcLoggable
import com.nimbusds.jwt.JWTClaimsSet
import com.openbankproject.commons.model.User
import com.openbankproject.commons.model.{InboundAccountCommon, User}
import net.liftweb.common._
import net.liftweb.http._
import net.liftweb.http.rest.RestHelper

View File

@ -3,14 +3,12 @@ package code.api.ResourceDocs1_4_0
import java.util.UUID.randomUUID
import code.api.builder.OBP_APIBuilder
import code.api.UKOpenBanking.v2_0_0.OBP_UKOpenBanking_200
import code.api.berlin.group.v1.OBP_BERLIN_GROUP_1
import code.api.berlin.group.v1_3.OBP_BERLIN_GROUP_1_3
import code.api.cache.Caching
import code.api.util.APIUtil._
import code.api.util.ApiTag._
import code.api.util.ApiRole._
import code.api.util.ApiStandards.{ApiStandards => _, apply => _, _}
import code.api.util.ApiStandards._
import code.api.util._
import code.api.v1_4_0.{APIMethods140, JSONFactory1_4_0, OBPAPI1_4_0}
import code.api.v2_2_0.{APIMethods220, OBPAPI2_2_0}

View File

@ -16,11 +16,11 @@ import code.api.v3_0_0.JSONFactory300.createBranchJsonV300
import code.api.v3_0_0.custom.JSONFactoryCustom300
import code.api.v3_0_0.{LobbyJsonV330, ScopeJson, _}
import code.api.v3_1_0.{BadLoginStatusJson, ContactDetailsJson, InviteeJson, ObpApiLoopbackJson, _}
import code.branches.Branches.{DriveUpString, _}
import code.common._
import code.sandbox.SandboxData
import code.transactionrequests.TransactionRequests.TransactionRequestTypes._
import code.api.builder.JsonFactory_APIBuilder
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,8 +2,6 @@ package code.api.util
import java.util.Date
import code.accountapplication.AccountApplication
import code.accountattribute.AccountAttribute.{AccountAttribute, AccountAttributeType}
import code.api.APIFailureNewStyle
import code.api.util.APIUtil.{OBPReturnType, connectorEmptyResponse, createHttpParamsByUrlFuture, createQueriesByHttpParamsFuture, fullBoxOrException, unboxFull, unboxFullOrFail}
import code.api.util.ErrorMessages._
@ -13,39 +11,27 @@ 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.{ContactDetailsJson, InviteeJson}
import code.api.v3_1_0.OBPAPI3_1_0.Implementations3_1_0
import code.atms.Atms
import code.atms.Atms.AtmId
import code.bankconnectors.{Connector, ObpApiLoopback}
import code.branches.Branches
import code.branches.Branches.{Branch, BranchId, DriveUp, DriveUpString, Lobby, LobbyString}
import code.common.{Address, Location, Meta, Routing}
import code.branches.Branches.{Branch, DriveUpString, LobbyString}
import code.common.Routing
import code.consumer.Consumers
import code.context.UserAuthContext
import code.customeraddress.CustomerAddress
import code.entitlement.Entitlement
import code.entitlementrequest.EntitlementRequest
import code.fx.{FXRate, MappedFXRate, fx}
import code.meetings.{ContactDetails, Invitee, Meeting}
import code.metadata.counterparties.Counterparties
import code.model._
import code.productattribute.ProductAttribute.{ProductAttribute, ProductAttributeType}
import code.productcollection.ProductCollection
import code.productcollectionitem.ProductCollectionItem
import code.products.Products.{Product, ProductCode}
import code.taxresidence.TaxResidence
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
import com.github.dwickern.macros.NameOf.nameOf
import com.openbankproject.commons.model.{Bank, Customer, _}
import com.openbankproject.commons.model.{AccountApplication, Bank, Customer, CustomerAddress, ProductCollection, ProductCollectionItem, TaxResidence, UserAuthContext, _}
import net.liftweb.common.{Box, Empty, Full}
import net.liftweb.http.provider.HTTPParam
import net.liftweb.util.Helpers.tryo
import net.liftweb.util.True
import org.apache.commons.lang3.StringUtils
import scala.collection.immutable.List
@ -186,7 +172,7 @@ object NewStyle {
object function {
import scala.concurrent.ExecutionContext.Implicits.global
def getBranch(bankId : BankId, branchId : BranchId, callContext: Option[CallContext]): OBPReturnType[Branches.BranchT] = {
def getBranch(bankId : BankId, branchId : BranchId, callContext: Option[CallContext]): OBPReturnType[BranchT] = {
Connector.connector.vend.getBranchFuture(bankId, branchId, callContext) map {
val msg: String = s"${BranchNotFoundByBranchId}, or License may not be set. meta.license.id and meta.license.name can not be empty"
x => fullBoxOrException(x ~> APIFailureNewStyle(msg, 400, callContext.map(_.toLight)))
@ -200,7 +186,7 @@ object NewStyle {
* @param callContext call context
* @return true is mean delete success, false is delete fail
*/
def deleteBranch(branch : Branches.BranchT, callContext: Option[CallContext]): OBPReturnType[Boolean] = {
def deleteBranch(branch : BranchT, callContext: Option[CallContext]): OBPReturnType[Boolean] = {
val deletedBranch = Branch(
branch.branchId ,
branch.bankId ,
@ -227,7 +213,7 @@ object NewStyle {
} map { unboxFull(_) }
}
def getAtm(bankId : BankId, atmId : AtmId, callContext: Option[CallContext]): OBPReturnType[Atms.AtmT] = {
def getAtm(bankId : BankId, atmId : AtmId, callContext: Option[CallContext]): OBPReturnType[AtmT] = {
Connector.connector.vend.getAtmFuture(bankId, atmId, callContext) map {
x => fullBoxOrException(x ~> APIFailureNewStyle(AtmNotFoundByAtmId, 400, callContext.map(_.toLight)))
} map { unboxFull(_) }

View File

@ -1,16 +1,16 @@
package code.api.v1_4_0
import code.api.util.APIUtil.isValidCurrencyISOCode
import code.api.util.ApiRole._
import code.api.util.ApiTag._
import code.api.util.NewStyle.HttpCode
import code.api.util.{APIUtil, ApiRole, ApiVersion, NewStyle}
import code.api.v1_4_0.JSONFactory1_4_0._
import code.api.v2_0_0.CreateCustomerJson
import code.atms.Atms
import code.bankconnectors.Connector
import code.branches.Branches
import code.customer.Customer
import code.usercustomerlinks.UserCustomerLink
import code.util.Helper
import code.views.Views
import com.openbankproject.commons.model._
import net.liftweb.common.{Box, Full}
@ -37,8 +37,6 @@ import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._
import code.api.util.APIUtil.{ResourceDoc, authenticationRequiredMessage, _}
import code.api.util.ErrorMessages
import code.api.util.ErrorMessages._
import code.atms.Atms
import code.branches.Branches
import code.crm.CrmEvent
import code.customer.CustomerMessages
import code.model._

View File

@ -5,12 +5,8 @@ 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.atms.Atms.AtmT
import code.branches.Branches.BranchT
import code.common._
import code.crm.CrmEvent.CrmEvent
import code.customer.CustomerMessage
import code.model._
import code.products.Products.Product
import code.transactionrequests.TransactionRequestTypeCharge
import code.transactionrequests.TransactionRequests.{TransactionRequest, _}

View File

@ -32,7 +32,7 @@ import code.usercustomerlinks.UserCustomerLink
import code.util.Helper
import code.util.Helper.booleanToBox
import code.views.Views
import com.openbankproject.commons.model._
import com.openbankproject.commons.model.{Meeting, _}
import net.liftweb.common.{Full, _}
import net.liftweb.http.CurrentReq
import net.liftweb.http.rest.RestHelper

View File

@ -36,13 +36,12 @@ import code.kycchecks.KycCheck
import code.kycdocuments.KycDocument
import code.kycmedias.KycMedia
import code.kycstatuses.KycStatus
import code.meetings.Meeting
import code.model._
import code.model.dataAccess.AuthUser
import code.socialmedia.SocialMedia
import code.transactionrequests.TransactionRequests._
import code.users.Users
import com.openbankproject.commons.model._
import com.openbankproject.commons.model.{BankAccount, _}
import net.liftweb.common.{Box, Full}
import net.liftweb.json.Extraction
import net.liftweb.json.JsonAST.JValue

View File

@ -15,17 +15,14 @@ import code.api.v1_4_0.JSONFactory1_4_0._
import code.api.v2_0_0._
import code.api.v2_1_0.JSONFactory210._
import code.atms.Atms
import code.atms.Atms.AtmId
import code.bankconnectors._
import code.branches.Branches
import code.branches.Branches.BranchId
import code.consumer.Consumers
import code.customer.Customer
import code.entitlement.Entitlement
import code.fx.fx
import code.metrics.APIMetrics
import code.model.{Bank, BankAccount, Consumer, User, toUserEx}
import code.products.Products.ProductCode
import code.sandbox.SandboxData
import code.transactionrequests.TransactionRequests.{TransactionChallengeTypes, TransactionRequestTypes}
import code.usercustomerlinks.UserCustomerLink

View File

@ -34,8 +34,7 @@ import code.api.v1_2_1.{AccountRoutingJsonV121, AmountOfMoneyJsonV121, BankRouti
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
import code.branches.Branches._
import code.common._
import code.branches.Branches.{Branch, DriveUpString, LobbyString}
import code.entitlement.Entitlement
import code.metrics.APIMetric
import code.model.dataAccess.ResourceUser

View File

@ -35,9 +35,8 @@ import code.api.util.APIUtil.MessageDoc
import code.api.v1_2_1.{AccountRoutingJsonV121, AmountOfMoneyJsonV121, BankRoutingJsonV121}
import code.api.v1_4_0.JSONFactory1_4_0._
import code.api.v2_1_0.{PostCounterpartyBespokeJson, ResourceUserJSON}
import code.atms.Atms.{Atm, AtmId, AtmT}
import code.branches.Branches._
import code.common.{Address, Location, Meta}
import code.atms.Atms.Atm
import code.branches.Branches.{Branch, DriveUpString, LobbyString}
import code.fx.FXRate
import code.metrics.ConnectorMetric
import code.model.dataAccess.ResourceUser

View File

@ -15,10 +15,7 @@ import code.api.util._
import code.api.v1_2_1.JSONFactory
import code.api.v2_0_0.JSONFactory200
import code.api.v3_0_0.JSONFactory300._
import code.atms.Atms.AtmId
import code.bankconnectors._
import code.branches.Branches
import code.branches.Branches.BranchId
import code.consumer.Consumers
import code.entitlementrequest.EntitlementRequest
import code.metrics.APIMetrics
@ -30,6 +27,7 @@ import code.util.Helper
import code.util.Helper.booleanToBox
import code.views.Views
import com.github.dwickern.macros.NameOf.nameOf
import com.grum.geocalc.{Coordinate, EarthCalc, Point}
import com.openbankproject.commons.model._
import net.liftweb.common._
import net.liftweb.http.S
@ -42,9 +40,6 @@ import scala.collection.immutable.{List, Nil}
import scala.collection.mutable.ArrayBuffer
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future
import com.grum.geocalc.Coordinate
import com.grum.geocalc.EarthCalc
import com.grum.geocalc.Point
trait APIMethods300 {
@ -1010,7 +1005,7 @@ trait APIMethods300 {
branchJsonV300 <- tryo {json.extract[BranchJsonV300]} ?~! {ErrorMessages.InvalidJsonFormat + " BranchJsonV300"}
_ <- booleanToBox(branchJsonV300.bank_id == bank.bankId.value, "BANK_ID has to be the same in the URL and Body")
branch <- transformToBranchFromV300(branchJsonV300) ?~! {ErrorMessages.CouldNotTransformJsonToInternalModel + " Branch"}
success: Branches.BranchT <- Connector.connector.vend.createOrUpdateBranch(branch) ?~! {ErrorMessages.CountNotSaveOrUpdateResource + " Branch"}
success: BranchT <- Connector.connector.vend.createOrUpdateBranch(branch) ?~! {ErrorMessages.CountNotSaveOrUpdateResource + " Branch"}
} yield {
val json = JSONFactory300.createBranchJsonV300(success)
createdJsonResponse(Extraction.decompose(json), 201)
@ -1073,7 +1068,7 @@ trait APIMethods300 {
postBranchJsonV300.phone_number)
_ <- booleanToBox(branchJsonV300.bank_id == bank.bankId.value, "BANK_ID has to be the same in the URL and Body")
branch <- transformToBranchFromV300(branchJsonV300) ?~! {ErrorMessages.CouldNotTransformJsonToInternalModel + " Branch"}
success: Branches.BranchT <- Connector.connector.vend.createOrUpdateBranch(branch) ?~! {ErrorMessages.CountNotSaveOrUpdateResource + " Branch"}
success: BranchT <- Connector.connector.vend.createOrUpdateBranch(branch) ?~! {ErrorMessages.CountNotSaveOrUpdateResource + " Branch"}
} yield {
val json = JSONFactory300.createBranchJsonV300(success)
createdJsonResponse(Extraction.decompose(json), 201)
@ -1354,7 +1349,7 @@ trait APIMethods300 {
case true => anonymousAccess(cc)
}
(_, callContext) <- NewStyle.function.getBank(bankId, callContext)
(atm, callContext) <- NewStyle.function.getAtm(bankId,atmId, callContext)
(atm, callContext) <- NewStyle.function.getAtm(bankId, atmId, callContext)
} yield {
(JSONFactory300.createAtmJsonV300(atm), HttpCode.`200`(callContext))
}

View File

@ -38,8 +38,8 @@ import code.api.v1_4_0.JSONFactory1_4_0._
import code.api.v2_0_0.EntitlementJSONs
import code.api.v2_0_0.JSONFactory200.{UserJsonV200, UsersJsonV200}
import code.api.v2_1_0.CustomerCreditRatingJSON
import code.atms.Atms.{Atm, AtmId, AtmT}
import code.branches.Branches._
import code.atms.Atms.Atm
import code.branches.Branches.Branch
import code.entitlement.Entitlement
import code.entitlementrequest.EntitlementRequest
import code.metrics.AggregateMetrics
@ -54,7 +54,6 @@ import scala.collection.immutable.List
//import code.api.v1_4_0.JSONFactory1_4_0._
import code.api.v2_0_0.JSONFactory200
import code.api.v2_0_0.JSONFactory200.CoreTransactionDetailsJSON
import code.branches.Branches.Branch
import code.common._
// should replace Address in 1.4

View File

@ -2,7 +2,6 @@ package code.api.v3_1_0
import java.util.UUID
import code.accountattribute.AccountAttribute.AccountAttributeType
import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON._
import code.api.ResourceDocs1_4_0.{MessageDocsSwaggerDefinitions, SwaggerDefinitionsJSON, SwaggerJSONFactory}
import code.api.util.APIUtil._
@ -20,16 +19,13 @@ import code.api.v3_0_0.JSONFactory300.createAdapterInfoJson
import code.api.v3_1_0.JSONFactory310._
import code.bankconnectors.Connector
import code.bankconnectors.rest.RestConnector
import code.branches.Branches.BranchId
import code.consumer.Consumers
import code.entitlement.Entitlement
import code.loginattempts.LoginAttempt
import code.meetings.{ContactDetails, Invitee}
import code.metrics.APIMetrics
import code.model._
import code.model.dataAccess.{AuthUser, BankAccountCreation}
import code.productattribute.ProductAttribute.ProductAttributeType
import code.products.Products.{Product, ProductCode}
import code.products.Products.{Product}
import code.users.Users
import code.util.Helper
import code.webhook.AccountWebhook

View File

@ -29,37 +29,26 @@ package code.api.v3_1_0
import java.lang
import java.util.Date
import code.accountapplication.AccountApplication
import code.accountattribute.AccountAttribute.AccountAttribute
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.v2_0_0.{MeetingJson, MeetingKeysJson, MeetingPresentJson}
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.common.Meta
import code.context.UserAuthContext
import code.customeraddress.CustomerAddress
import code.entitlement.Entitlement
import code.loginattempts.BadLoginAttempt
import code.meetings.Meeting
import code.metrics.{TopApi, TopConsumer}
import code.model.{Consumer, User}
import code.productattribute.ProductAttribute.ProductAttribute
import code.productcollection.ProductCollection
import code.productcollectionitem.ProductCollectionItem
import code.products.Products.Product
import code.taxresidence.TaxResidence
import code.webhook.AccountWebhook
import com.openbankproject.commons.model.{Customer, User}
import com.openbankproject.commons.model.{AccountApplication, ProductCollection, ProductCollectionItem, TaxResidence, _}
import net.liftweb.common.{Box, Full}
import scala.collection.immutable.List
import scala.collection.mutable.ArrayBuffer
case class CheckbookOrdersJson(
account: AccountV310Json ,

View File

@ -5,61 +5,12 @@ package code.atms
// Need to import these one by one because in same package!
import code.api.util.OBPQueryParam
import code.atms.Atms.{AtmId, AtmT}
import code.common._
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model._
import net.liftweb.common.Logger
import net.liftweb.util.SimpleInjector
object Atms extends SimpleInjector {
case class AtmId(value : String){
override def toString() = value
}
object AtmId {
def unapply(id : String) = Some(AtmId(id))
}
trait AtmT {
def atmId : AtmId
def bankId : BankId
def name : String
def address : AddressT
def location : LocationT
def meta : MetaT
def OpeningTimeOnMonday : Option[String]
def ClosingTimeOnMonday : Option[String]
def OpeningTimeOnTuesday : Option[String]
def ClosingTimeOnTuesday : Option[String]
def OpeningTimeOnWednesday : Option[String]
def ClosingTimeOnWednesday : Option[String]
def OpeningTimeOnThursday : Option[String]
def ClosingTimeOnThursday: Option[String]
def OpeningTimeOnFriday : Option[String]
def ClosingTimeOnFriday : Option[String]
def OpeningTimeOnSaturday : Option[String]
def ClosingTimeOnSaturday : Option[String]
def OpeningTimeOnSunday: Option[String]
def ClosingTimeOnSunday : Option[String]
def isAccessible : Option[Boolean]
def locatedAt : Option[String]
def moreInfo : Option[String]
def hasDepositCapability : Option[Boolean]
}
case class Atm (
atmId : AtmId,
bankId : BankId,

View File

@ -1,10 +1,8 @@
package code.atms
import code.api.util.{OBPLimit, OBPOffset, OBPQueryParam}
import code.atms.Atms._
import code.common._
import code.util.{TwentyFourHourClockString, UUIDString}
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model._
import net.liftweb.mapper._
object MappedAtmsProvider extends AtmsProvider {

View File

@ -3,9 +3,6 @@ package code.bankconnectors
import java.util.Date
import java.util.UUID.randomUUID
import code.accountapplication.AccountApplication
import code.accountattribute.AccountAttribute.{AccountAttribute, AccountAttributeType}
import code.accountholders.{AccountHolders, MapperAccountHolders}
import code.accountholders.{AccountHolders, MapperAccountHolders}
import code.api.cache.Caching
import code.api.util.APIUtil._
@ -17,26 +14,18 @@ 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.atms.Atms
import code.atms.Atms.{AtmId, AtmT}
import code.bankconnectors.akka.AkkaConnector_vDec2018
import code.bankconnectors.vJune2017.KafkaMappedConnector_vJune2017
import code.bankconnectors.vMar2017.KafkaMappedConnector_vMar2017
import code.bankconnectors.vSept2018.KafkaMappedConnector_vSept2018
import code.branches.Branches.{Branch, BranchId, BranchT}
import code.context.UserAuthContext
import code.model.{Transaction, toUserEx}
import code.customeraddress.CustomerAddress
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.meetings.{ContactDetails, Invitee, Meeting}
import code.model.dataAccess.ResourceUser
import code.productattribute.ProductAttribute.{ProductAttribute, ProductAttributeType}
import code.productcollection.ProductCollection
import code.productcollectionitem.ProductCollectionItem
import code.products.Products.{Product, ProductCode}
import code.taxresidence.TaxResidence
import code.model.{Transaction, toUserEx}
import code.products.Products.Product
import code.transactionChallenge.ExpectedChallengeAnswer
import code.transactionrequests.TransactionRequests.TransactionRequestTypes._
import code.transactionrequests.TransactionRequests._
@ -44,7 +33,7 @@ import code.transactionrequests.{TransactionRequestTypeCharge, TransactionReques
import code.users.Users
import code.util.Helper._
import code.views.Views
import com.openbankproject.commons.model.{Bank, CounterpartyTrait, TransactionRequestStatus, _}
import com.openbankproject.commons.model.{AccountApplication, Bank, CounterpartyTrait, CustomerAddress, ProductCollection, ProductCollectionItem, TaxResidence, TransactionRequestStatus, UserAuthContext, _}
import com.tesobe.CacheKeyFromArguments
import net.liftweb.common.{Box, Empty, Failure, Full}
import net.liftweb.json.Extraction.decompose
@ -58,9 +47,9 @@ 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.math.BigInt
import scala.util.Random
import scala.concurrent.duration._
/*
So we can switch between different sources of resources e.g.
@ -108,25 +97,7 @@ case class InboundUser(
password: String,
displayName: String
)
// This is the common InboundAccount from all Kafka/remote, not finished yet.
trait InboundAccountCommon{
def errorCode: String
def bankId: String
def branchId: String
def accountId: String
def accountNumber: String
def accountType: String
def balanceAmount: String
def balanceCurrency: String
def owners: List[String]
def viewsToGenerate: List[String]
def bankRoutingScheme:String
def bankRoutingAddress:String
def branchRoutingScheme:String
def branchRoutingAddress:String
def accountRoutingScheme:String
def accountRoutingAddress:String
}
case class ObpApiLoopback(
connectorVersion: String,
gitCommit: String,

View File

@ -23,15 +23,13 @@ Osloerstrasse 16/17
Berlin 13359, Germany
*/
import java.text.SimpleDateFormat
import java.util.{Date, Locale, UUID}
import java.util.Date
import code.accountholders.AccountHolders
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, BranchT}
import code.bankconnectors.vMar2017.KafkaMappedConnector_vMar2017
import code.branches.Branches.Branch
import code.fx.{FXRate, fx}
import code.kafka.KafkaHelper
import code.management.ImporterAPI.ImporterTransaction
@ -43,7 +41,7 @@ import code.metadata.transactionimages.TransactionImages
import code.metadata.wheretags.WhereTags
import code.model._
import code.model.dataAccess._
import code.products.Products.{Product, ProductCode}
import code.products.Products.Product
import code.transaction.MappedTransaction
import code.transactionrequests.TransactionRequests.TransactionRequestTypes._
import code.transactionrequests.TransactionRequests._
@ -55,11 +53,10 @@ import com.openbankproject.commons.model.{Bank, _}
import net.liftweb.common._
import net.liftweb.mapper._
import net.liftweb.util.Helpers._
import net.liftweb.util.Props
import scala.collection.immutable.{List, Seq}
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future
object KafkaMappedConnector extends Connector with KafkaHelper with MdcLoggable {

View File

@ -36,10 +36,9 @@ 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.{AtmId, AtmT}
import code.atms.{Atms, MappedAtm}
import code.bankconnectors.vMar2017.KafkaMappedConnector_vMar2017
import code.branches.Branches.{Branch, BranchT}
import code.branches.Branches.Branch
import code.fx.FXRate
import code.kafka.KafkaHelper
import code.management.ImporterAPI.ImporterTransaction
@ -50,7 +49,7 @@ import code.metadata.transactionimages.TransactionImages
import code.metadata.wheretags.WhereTags
import code.model._
import code.model.dataAccess._
import code.products.Products.{Product, ProductCode}
import code.products.Products.Product
import code.transaction.MappedTransaction
import code.transactionrequests.TransactionRequests.TransactionRequestTypes._
import code.transactionrequests.TransactionRequests._

View File

@ -1,46 +1,41 @@
package code.bankconnectors
import java.util.Date
import java.util.UUID.randomUUID
import java.util.{Date, UUID}
import code.accountapplication.AccountApplication
import code.accountattribute.AccountAttribute
import code.accountattribute.AccountAttribute.{AccountAttribute, AccountAttributeType}
import code.customeraddress.{CustomerAddress, MappedCustomerAddress}
import code.api.ResourceDocs1_4_0.SwaggerDefinitionsJSON
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.api.v3_1_0.{CardObjectJson, CheckbookOrdersJson, PostCustomerJsonV310, TaxResidenceV310}
import code.atms.Atms.{AtmId, AtmT}
import code.atms.{Atms, MappedAtm}
import code.atms.Atms.Atm
import code.atms.MappedAtm
import code.bankconnectors.vJune2017.InboundAccountJune2017
import code.branches.Branches._
import code.branches.Branches.Branch
import code.branches.MappedBranch
import code.cards.MappedPhysicalCard
import code.common.OpeningTimes
import code.context.{UserAuthContext, UserAuthContextProvider}
import code.context.UserAuthContextProvider
import code.customer._
import code.customeraddress.CustomerAddress
import code.fx.{FXRate, MappedFXRate, fx}
import code.management.ImporterAPI.ImporterTransaction
import code.meetings.{ContactDetails, Invitee, Meeting}
import code.meetings.Meeting
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 code.model.dataAccess._
import code.model._
import code.model.dataAccess._
import code.productattribute.ProductAttribute
import code.productattribute.ProductAttribute.{ProductAttribute, ProductAttributeType}
import code.productcollection.{MappedProductCollectionProvider, ProductCollection}
import code.productcollection.ProductCollection
import code.productcollectionitem.ProductCollectionItem
import code.products.MappedProduct
import code.products.Products.{Product, ProductCode}
import code.taxresidence
import code.products.Products.{Product}
import code.taxresidence.TaxResidence
import code.transaction.MappedTransaction
import code.transactionrequests.TransactionRequests._
@ -49,7 +44,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._
import com.openbankproject.commons.model.{AccountApplication, AccountAttribute, ProductAttribute, ProductCollectionItem, TaxResidence, _}
import com.tesobe.CacheKeyFromArguments
import com.tesobe.model.UpdateBankAccount
import net.liftweb.common._
@ -1407,7 +1402,7 @@ object LocalMappedConnector extends Connector with MdcLoggable {
// TODO This should accept a normal case class not "json" case class i.e. don't rely on REST json structures
override def createOrUpdateAtm(atm: Atms.Atm): Box[AtmT] = {
override def createOrUpdateAtm(atm: Atm): Box[AtmT] = {
val isAccessibleString = optionBooleanToString(atm.isAccessible)
val hasDepositCapabilityString = optionBooleanToString(atm.hasDepositCapability)

View File

@ -10,7 +10,7 @@ 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, BranchT}
import code.branches.Branches.Branch
import code.fx.{FXRate, fx}
import code.management.ImporterAPI.ImporterTransaction
import code.metadata.comments.Comments
@ -20,7 +20,8 @@ import code.metadata.transactionimages.TransactionImages
import code.metadata.wheretags.WhereTags
import code.model._
import code.model.dataAccess._
import code.products.Products.{Product, ProductCode}
import code.products.Products.Product
import code.model.Transaction
import code.transaction.MappedTransaction
import code.transactionrequests.TransactionRequests._
import code.transactionrequests._
@ -30,7 +31,7 @@ import code.views.Views
import com.google.common.cache.CacheBuilder
import com.openbankproject.commons.model.{Bank, _}
import com.tesobe.obp.kafka.{Configuration, SimpleConfiguration, SimpleNorth}
import com.tesobe.obp.transport.nov2016.{Bank => _, Transaction => _, User => _, _}
import com.tesobe.obp.transport.nov2016._
import com.tesobe.obp.transport.spi.{DefaultSorter, TimestampFilter}
import com.tesobe.obp.transport.{Pager, Transport}
import net.liftweb.common._

View File

@ -1,16 +1,13 @@
package code.bankconnectors.vJune2017
import java.lang
import java.text.SimpleDateFormat
import java.util.{Date, Locale, UUID}
import java.util.Date
import code.api.util.APIUtil
import code.api.v3_1_0.CheckbookOrdersJson
import code.atms.Atms.{AtmId, AtmT}
import code.bankconnectors._
import code.bankconnectors.vMar2017._
import code.branches.Branches._
import code.common.{Address, Location, Meta, Routing}
import code.branches.Branches.{DriveUpString, LobbyString}
import code.common.Routing
import code.kafka.Topics._
import code.model.dataAccess.MappedBankAccountData
import code.transactionrequests.TransactionRequests.TransactionRequest

View File

@ -34,10 +34,8 @@ import code.api.util.ErrorMessages._
import code.api.util._
import code.api.util.APIUtil._
import code.api.v3_1_0.{AccountV310Json, CardObjectJson, CheckbookOrdersJson}
import code.atms.Atms.{AtmId, AtmT}
import code.bankconnectors._
import code.bankconnectors.vMar2017._
import code.branches.Branches.{BranchId, BranchT, Lobby}
import code.common._
import code.customer._
import code.kafka.KafkaHelper

View File

@ -23,16 +23,14 @@ Osloerstrasse 16/17
Berlin 13359, Germany
*/
import java.text.SimpleDateFormat
import java.util.{Date, Locale, UUID}
import java.util.Date
import code.accountholders.AccountHolders
import code.api.util.ErrorMessages._
import code.api.util.APIUtil.MessageDoc
import code.api.util.ErrorMessages._
import code.api.util._
import code.api.v2_1_0._
import code.bankconnectors._
import code.branches.Branches.{Branch, BranchT}
import code.branches.Branches.Branch
import code.fx.{FXRate, fx}
import code.kafka.KafkaHelper
import code.management.ImporterAPI.ImporterTransaction
@ -44,7 +42,7 @@ import code.metadata.transactionimages.TransactionImages
import code.metadata.wheretags.WhereTags
import code.model._
import code.model.dataAccess._
import code.products.Products.{Product, ProductCode}
import code.products.Products.Product
import code.transaction.MappedTransaction
import code.transactionrequests.TransactionRequests.TransactionRequestTypes._
import code.transactionrequests.TransactionRequests._
@ -54,16 +52,12 @@ import code.util.{Helper, TTLCache}
import code.views.Views
import com.openbankproject.commons.model.{Bank, _}
import net.liftweb.common._
import net.liftweb.json.Extraction
import net.liftweb.json.JsonAST.JValue
import net.liftweb.mapper._
import net.liftweb.util.Helpers._
import net.liftweb.util.Props
import scala.collection.immutable.{Nil, Seq}
import scala.collection.mutable.ArrayBuffer
import scala.concurrent.Future
import scala.concurrent.ExecutionContext.Implicits.global
import scala.concurrent.Future
trait KafkaMappedConnector_vMar2017 extends Connector with KafkaHelper with MdcLoggable {

View File

@ -5,18 +5,14 @@ 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.atms.Atms.{AtmId, AtmT}
import code.bankconnectors._
import code.bankconnectors.vJune2017.InternalCustomer
import code.bankconnectors.vMar2017._
import code.branches.Branches._
import code.common.{Address, Location, Meta, Routing}
import code.context.UserAuthContext
import code.branches.Branches.{DriveUpString, LobbyString}
import code.common.Routing
import code.kafka.Topics._
import code.model.dataAccess.MappedBankAccountData
import code.model._
import code.transactionrequests.TransactionRequests.TransactionRequest
import com.openbankproject.commons.model.{CounterpartyTrait, Customer, _}
import com.openbankproject.commons.model.{CounterpartyTrait, Customer, UserAuthContext, _}
import net.liftweb.mapper.By
import net.liftweb.util.Helpers.today

View File

@ -33,11 +33,9 @@ import code.api.util.APIUtil.{MessageDoc, saveConnectorMetric, _}
import code.api.util.ErrorMessages._
import code.api.util._
import code.api.v3_1_0.CardObjectJson
import code.atms.Atms.AtmId
import code.bankconnectors._
import code.bankconnectors.vJune2017.{InternalCustomer, JsonFactory_vJune2017}
import code.bankconnectors.vMar2017._
import code.branches.Branches.{BranchId, Lobby}
import code.common._
import code.customer._
import code.kafka.{KafkaHelper, Topics}

View File

@ -5,50 +5,13 @@ package code.branches
// Need to import these one by one because in same package!
import code.api.util.OBPQueryParam
import code.branches.Branches.{BranchId, BranchT}
import code.common._
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model._
import net.liftweb.common.Logger
import net.liftweb.util.SimpleInjector
object Branches extends SimpleInjector {
case class BranchId(value : String) {
override def toString = value
}
object BranchId {
def unapply(id : String) = Some(BranchId(id))
}
// MappedBranch will implement this.
// The trait defines the fields the API will interact with.
trait BranchT {
def branchId: BranchId
def bankId: BankId
def name: String
def address: Address
def location: Location
def lobbyString: Option[LobbyStringT]
def driveUpString: Option[DriveUpStringT]
def meta: Meta
def branchRouting: Option[RoutingT]
def lobby: Option[Lobby]
def driveUp: Option[DriveUp]
// Easy access for people who use wheelchairs etc. "Y"=true "N"=false ""=Unknown
def isAccessible : Option[Boolean]
def accessibleFeatures: Option[String]
def branchType : Option[String]
def moreInfo : Option[String]
def phoneNumber : Option[String]
// marks whether this branch is deleted
def isDeleted : Option[Boolean]
}
// This is the API Version indpendent case class for Branches.
// Use this internally
case class Branch(
@ -212,52 +175,14 @@ object Branches extends SimpleInjector {
// ) extends Branch
case class Lobby(
monday: List[OpeningTimes],
tuesday: List[OpeningTimes],
wednesday: List[OpeningTimes],
thursday: List[OpeningTimes],
friday: List[OpeningTimes],
saturday: List[OpeningTimes],
sunday: List[OpeningTimes]
)
case class DriveUp(
monday: OpeningTimes,
tuesday: OpeningTimes,
wednesday: OpeningTimes,
thursday: OpeningTimes,
friday: OpeningTimes,
saturday: OpeningTimes,
sunday: OpeningTimes
)
//
@deprecated("Use Lobby instead which contains detailed fields, not this string","24 July 2017")
trait LobbyStringT {
def hours : String
}
@deprecated("Use Lobby instead which contains detailed fields, not this string","24 July 2017")
case class LobbyString (
hours : String
) extends LobbyStringT
@deprecated("Use DriveUp instead which contains detailed fields now, not this string","24 July 2017")
trait DriveUpStringT {
def hours : String
}
@deprecated("Use DriveUp instead which contains detailed fields now, not this string","24 July 2017")
case class DriveUpString (
hours : String

View File

@ -1,10 +1,8 @@
package code.branches
import code.api.util.{OBPLimit, OBPOffset, OBPQueryParam}
import code.branches.Branches._
import code.common._
import code.util.{TwentyFourHourClockString, UUIDString}
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model._
import net.liftweb.common.Logger
import net.liftweb.mapper.{By, _}

View File

@ -2,106 +2,12 @@ package code.common
import java.util.Date
import com.openbankproject.commons.model._
// We use traits so we can override in the Provider for database access etc.
// We use case classes based on the traits so we can easily construct a data structure like the trait.
trait LicenseT {
def id : String
def name : String
}
case class License (
id : String,
name : String
) extends LicenseT
trait MetaT {
def license : LicenseT
}
case class Meta (
license : License
) extends MetaT
trait AddressT {
def line1 : String
def line2 : String
def line3 : String
def city : String
def county : Option[String]
def state : String
def postCode : String
//ISO_3166-1_alpha-2
def countryCode : String
}
case class Address(
line1 : String,
line2 : String,
line3 : String,
city : String,
county : Option[String],
state : String,
postCode : String,
//ISO_3166-1_alpha-2
countryCode : String) extends AddressT
trait LocationT {
def latitude: Double
def longitude: Double
}
case class Location(
latitude: Double,
longitude: Double,
date : Option[Date],
user: Option[BasicResourceUser]
) extends LocationT
case class OpeningTimes(
openingTime: String,
closingTime: String
)
trait RoutingT {
def scheme: String
def address: String
}
case class Routing(
scheme: String,
address: String
) extends RoutingT
/*
Basic User data
*/
case class BasicResourceUser(
userId: String, // Should come from Resource User Id
provider: String,
username: String
)

View File

@ -1,6 +1,7 @@
package code.context
import code.util.{MappedUUID, UUIDString}
import com.openbankproject.commons.model.UserAuthContext
import net.liftweb.mapper._
class MappedUserAuthContext extends UserAuthContext with LongKeyedMapper[MappedUserAuthContext] with IdPK with CreatedUpdated {

View File

@ -1,8 +0,0 @@
package code.context
trait UserAuthContext {
def userAuthContextId : String
def userId : String
def key : String
def value : String
}

View File

@ -2,6 +2,7 @@ package code.context
import code.api.util.APIUtil
import code.remotedata.RemotedataUserAuthContext
import com.openbankproject.commons.model.UserAuthContext
import net.liftweb.common.Box
import net.liftweb.util.SimpleInjector

View File

@ -5,7 +5,6 @@ package code.crm
import code.crm.CrmEvent.{CrmEvent, CrmEventId}
import code.common.{AddressT, LocationT, MetaT}
import code.model.dataAccess.ResourceUser
import code.model.dataAccess.ResourceUser
import net.liftweb.common.Logger
@ -13,7 +12,7 @@ import net.liftweb.util
import net.liftweb.util.SimpleInjector
import java.util.Date
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model.{BankId, MetaT}
object CrmEvent extends util.SimpleInjector {

View File

@ -6,11 +6,10 @@ import code.api.util.ErrorMessages._
import code.crm.CrmEvent._
import code.crm.CrmEvent.{CrmEvent, CrmEventId}
import code.customer.CustomerMessage
import code.common.{AddressT, LicenseT, LocationT, MetaT}
import code.model.dataAccess.ResourceUser
import code.users.Users
import code.util.{MappedUUID, UUIDString}
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model.{BankId, LicenseT}
import net.liftweb.common.Box
import net.liftweb.mapper._
import org.joda.time.Hours

View File

@ -1,9 +1,8 @@
package code.customeraddress
import java.util.Date
import code.api.util.APIUtil
import code.remotedata.RemotedataCustomerAddress
import com.openbankproject.commons.model.CustomerAddress
import net.liftweb.common.Box
import net.liftweb.util.SimpleInjector
@ -49,22 +48,6 @@ trait CustomerAddressProvider {
def deleteAddress(customerAddressId: String): Future[Box[Boolean]]
}
trait CustomerAddress {
def customerId: String
def customerAddressId: String
def line1: String
def line2: String
def line3: String
def city: String
def county: String
def state: String
def postcode: String
def countryCode: String
def status: String
def tags: String
def insertDate: Date
}
class RemotedataCustomerAddressCaseClasses {
case class getAddress(customerId: String)

View File

@ -5,6 +5,7 @@ import java.util.Date
import code.api.util.ErrorMessages
import code.customer.MappedCustomer
import code.util.{MappedUUID, MediumString}
import com.openbankproject.commons.model.CustomerAddress
import net.liftweb.common.{Box, Empty, Failure, Full}
import net.liftweb.mapper._
import net.liftweb.util.Helpers.tryo

View File

@ -3,11 +3,10 @@ package code.meetings
import java.util.Date
import code.api.util.ErrorMessages
import code.cards.PinReset
import code.model.dataAccess.ResourceUser
import code.util.{MappedUUID, UUIDString}
import com.openbankproject.commons.model.{BankId, User}
import net.liftweb.common.{Box, Full}
import com.openbankproject.commons.model.{BankId, ContactDetails, Invitee, Meeting, MeetingKeys, MeetingPresent, User}
import net.liftweb.common.Box
import net.liftweb.mapper._
import net.liftweb.util.Helpers.tryo

View File

@ -2,49 +2,16 @@ package code.meetings
import java.util.Date
import com.openbankproject.commons.model.{BankId, User}
import com.openbankproject.commons.model.{BankId, ContactDetails, Invitee, Meeting, User}
import net.liftweb.common.Box
import net.liftweb.util.SimpleInjector
import scala.collection.immutable.List
trait Meeting {
def meetingId: String
def providerId: String
def purposeId: String
def bankId: String
def present: MeetingPresent
def keys: MeetingKeys
def when: Date
def creator: ContactDetails
def invitees: List[Invitee]
}
case class Invitee(
contactDetails: ContactDetails,
status: String
)
case class ContactMedium(
`type`: String,
value: String
)
case class ContactDetails(
name: String,
phone: String,
email: String
)
case class MeetingKeys (
sessionId: String,
customerToken: String,
staffToken: String
)
case class MeetingPresent(
staffUserId: String,
customerUserId: String
)
object Meeting extends SimpleInjector {

View File

@ -31,13 +31,12 @@ import code.api.util.APIUtil.{hasAnOAuthHeader, isValidStrongPassword, _}
import code.api.util.ErrorMessages._
import code.api.util._
import code.api.{DirectLogin, GatewayLogin, OAuthHandshake}
import code.bankconnectors.{Connector, InboundAccountCommon, InboundUser}
import code.bankconnectors.{Connector, InboundUser}
import code.loginattempts.LoginAttempt
import code.model._
import code.users.Users
import code.util.Helper
import code.views.Views
import com.openbankproject.commons.model.{AccountId, BankId, BankIdAccountId, User}
import com.openbankproject.commons.model.{User, _}
import net.liftweb.common._
import net.liftweb.http._
import net.liftweb.mapper._

View File

@ -1,10 +1,8 @@
package code.productAttributeattribute
import code.productattribute.ProductAttribute.{ProductAttribute, ProductAttributeType}
import code.productattribute.ProductAttributeProvider
import code.products.Products.ProductCode
import code.util.{MappedUUID, UUIDString}
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model.{BankId, ProductAttribute, ProductAttributeType, ProductCode}
import net.liftweb.common.{Box, Empty, Full}
import net.liftweb.mapper._
import net.liftweb.util.Helpers.tryo

View File

@ -4,10 +4,8 @@ package code.productattribute
import code.api.util.APIUtil
import code.productAttributeattribute.MappedProductAttributeProvider
import code.productattribute.ProductAttribute.{ProductAttribute, ProductAttributeType}
import code.products.Products.ProductCode
import code.remotedata.RemotedataProductAttribute
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model.{BankId, ProductAttribute, ProductAttributeType, ProductCode}
import net.liftweb.common.{Box, Logger}
import net.liftweb.util.SimpleInjector
@ -15,34 +13,6 @@ import scala.concurrent.Future
object ProductAttribute extends SimpleInjector {
object ProductAttributeType extends Enumeration{
type ProductAttributeType = Value
val STRING = Value("STRING")
val INTEGER = Value("INTEGER")
val DOUBLE = Value("DOUBLE")
val DATE_WITH_DAY = Value("DATE_WITH_DAY")
}
trait ProductAttribute {
def bankId: BankId
def productCode: ProductCode
def productAttributeId: String
def name: String
def attributeType: ProductAttributeType.Value
def value: String
}
val productAttributeProvider = new Inject(buildOne _) {}
def buildOne: ProductAttributeProvider =

View File

@ -1,5 +1,6 @@
package code.productcollection
import com.openbankproject.commons.model.ProductCollection
import net.liftweb.common._
import net.liftweb.mapper._
import net.liftweb.util.Helpers.tryo

View File

@ -2,6 +2,7 @@ package code.productcollection
import code.api.util.APIUtil
import code.remotedata.RemotedataProductCollection
import com.openbankproject.commons.model.ProductCollection
import net.liftweb.common.Box
import net.liftweb.util.SimpleInjector
@ -24,11 +25,6 @@ trait ProductCollectionProvider {
def getOrCreateProductCollection(collectionCode: String, productCodes: List[String]): Future[Box[List[ProductCollection]]]
}
trait ProductCollection {
def collectionCode: String
def productCode: String
}
class RemotedataProductCollectionCaseClasses {
case class getProductCollection(collectionCode: String)
case class getOrCreateProductCollection(collectionCode: String, productCodes: List[String])

View File

@ -1,8 +1,8 @@
package code.productcollectionitem
import code.productAttributeattribute.MappedProductAttribute
import code.productattribute.ProductAttribute.ProductAttribute
import code.products.MappedProduct
import com.openbankproject.commons.model.{ProductAttribute, ProductCollectionItem}
import net.liftweb.common.Box
import net.liftweb.mapper._
import net.liftweb.util.Helpers.tryo

View File

@ -1,9 +1,9 @@
package code.productcollectionitem
import code.api.util.APIUtil
import code.productattribute.ProductAttribute.ProductAttribute
import code.products.MappedProduct
import code.remotedata.RemotedataProductCollectionItem
import com.openbankproject.commons.model.{ProductAttribute, ProductCollectionItem}
import net.liftweb.common.Box
import net.liftweb.util.SimpleInjector
@ -27,11 +27,6 @@ trait ProductCollectionItemProvider {
def getOrCreateProductCollectionItem(collectionCode: String, memberProductCodes: List[String]): Future[Box[List[ProductCollectionItem]]]
}
trait ProductCollectionItem {
def collectionCode: String
def memberProductCode: String
}
class RemotedataProductCollectionItemCaseClasses {
case class getProductCollectionItemsTree(collectionCode: String, bankId: String)
case class getProductCollectionItems(collectionCode: String)

View File

@ -1,9 +1,8 @@
package code.products
import code.common.{License, Meta}
import code.products.Products.{Product, ProductCode}
import code.products.Products.Product
import code.util.UUIDString
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model.{BankId, License, Meta, ProductCode}
import net.liftweb.mapper._

View File

@ -4,21 +4,13 @@ package code.products
// Need to import these one by one because in same package!
import code.products.Products.{Product, ProductCode}
import code.common.{Address, LocationT, Meta}
import com.openbankproject.commons.model.BankId
import code.products.Products.Product
import com.openbankproject.commons.model.{BankId, Meta, ProductCode}
import net.liftweb.common.Logger
import net.liftweb.util.SimpleInjector
object Products extends SimpleInjector {
// Good to have this as a class because when passing as argument, we get compiler error if passing the wrong type.
case class ProductCode(value : String)
object ProductCode {
def unapply(code : String) = Some(ProductCode(code))
}
trait Product {
def code : ProductCode
def parentProductCode : ProductCode

View File

@ -1,9 +1,9 @@
package code.remotedata
import akka.pattern.ask
import code.accountapplication.{AccountApplication, AccountApplicationProvider, RemotedataAccountApplicationCaseClasses}
import code.accountapplication.{AccountApplicationProvider, RemotedataAccountApplicationCaseClasses}
import code.actorsystem.ObpActorInit
import code.products.Products.ProductCode
import com.openbankproject.commons.model.{AccountApplication, ProductCode}
import net.liftweb.common.Box
import scala.concurrent.Future

View File

@ -3,9 +3,10 @@ package code.remotedata
import akka.actor.Actor
import code.accountapplication.{MappedAccountApplicationProvider, RemotedataAccountApplicationCaseClasses}
import code.actorsystem.ObpActorHelper
import code.products.Products.ProductCode
import code.util.Helper.MdcLoggable
import akka.pattern.pipe
import com.openbankproject.commons.model.ProductCode
import scala.concurrent.ExecutionContext.Implicits.global
class RemotedataAccountApplicationActor extends Actor with ObpActorHelper with MdcLoggable {

View File

@ -1,11 +1,9 @@
package code.remotedata
import akka.pattern.ask
import code.accountattribute.AccountAttribute.{AccountAttribute, AccountAttributeType}
import code.accountattribute.{AccountAttributeProvider, RemotedataAccountAttributeCaseClasses}
import code.actorsystem.ObpActorInit
import code.products.Products.ProductCode
import com.openbankproject.commons.model.{AccountId, BankId}
import com.openbankproject.commons.model._
import net.liftweb.common.Box
import scala.collection.immutable.List

View File

@ -2,12 +2,10 @@ package code.remotedata
import akka.actor.Actor
import akka.pattern.pipe
import code.accountattribute.AccountAttribute.AccountAttributeType
import code.accountattribute.{MappedAccountAttributeProvider, RemotedataAccountAttributeCaseClasses}
import code.actorsystem.ObpActorHelper
import code.products.Products.ProductCode
import code.util.Helper.MdcLoggable
import com.openbankproject.commons.model.{AccountId, BankId}
import com.openbankproject.commons.model.{AccountAttributeType, AccountId, BankId, ProductCode}
import scala.concurrent.ExecutionContext.Implicits.global

View File

@ -2,7 +2,8 @@ package code.remotedata
import akka.pattern.ask
import code.actorsystem.ObpActorInit
import code.customeraddress.{CustomerAddress, CustomerAddressProvider, RemotedataCustomerAddressCaseClasses}
import code.customeraddress.{CustomerAddressProvider, RemotedataCustomerAddressCaseClasses}
import com.openbankproject.commons.model.CustomerAddress
import net.liftweb.common.Box
import scala.collection.immutable.List

View File

@ -2,10 +2,8 @@ package code.remotedata
import akka.pattern.ask
import code.actorsystem.ObpActorInit
import code.productattribute.ProductAttribute.{ProductAttribute, ProductAttributeType}
import code.productattribute.{ProductAttribute, ProductAttributeProvider, RemotedataProductAttributeCaseClasses}
import code.products.Products.ProductCode
import com.openbankproject.commons.model.BankId
import code.productattribute.{ProductAttributeProvider, RemotedataProductAttributeCaseClasses}
import com.openbankproject.commons.model.{BankId, ProductAttribute, ProductAttributeType, ProductCode}
import net.liftweb.common.Box
import scala.collection.immutable.List

View File

@ -4,11 +4,9 @@ import akka.actor.Actor
import akka.pattern.pipe
import code.actorsystem.ObpActorHelper
import code.productAttributeattribute.MappedProductAttributeProvider
import code.productattribute.ProductAttribute.ProductAttributeType
import code.productattribute.RemotedataProductAttributeCaseClasses
import code.products.Products.ProductCode
import code.util.Helper.MdcLoggable
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model.{BankId, ProductAttributeType, ProductCode}
import scala.concurrent.ExecutionContext.Implicits.global

View File

@ -2,7 +2,8 @@ package code.remotedata
import akka.pattern.ask
import code.actorsystem.ObpActorInit
import code.productcollection.{ProductCollection, ProductCollectionProvider, RemotedataProductCollectionCaseClasses}
import code.productcollection.{ProductCollectionProvider, RemotedataProductCollectionCaseClasses}
import com.openbankproject.commons.model.ProductCollection
import net.liftweb.common.Box
import scala.collection.immutable.List

View File

@ -2,9 +2,9 @@ package code.remotedata
import akka.pattern.ask
import code.actorsystem.ObpActorInit
import code.productattribute.ProductAttribute.ProductAttribute
import code.productcollectionitem.{ProductCollectionItem, ProductCollectionItemProvider, RemotedataProductCollectionItemCaseClasses}
import code.productcollectionitem.{ProductCollectionItemProvider, RemotedataProductCollectionItemCaseClasses}
import code.products.MappedProduct
import com.openbankproject.commons.model.{ProductAttribute, ProductCollectionItem}
import net.liftweb.common.Box
import scala.collection.immutable.List

View File

@ -2,7 +2,8 @@ package code.remotedata
import akka.pattern.ask
import code.actorsystem.ObpActorInit
import code.taxresidence.{RemotedataTaxResidenceCaseClasses, TaxResidence, TaxResidenceProvider}
import code.taxresidence.{RemotedataTaxResidenceCaseClasses, TaxResidenceProvider}
import com.openbankproject.commons.model.TaxResidence
import net.liftweb.common.Box
import scala.collection.immutable.List

View File

@ -2,7 +2,8 @@ package code.remotedata
import akka.pattern.ask
import code.actorsystem.ObpActorInit
import code.context.{RemotedataUserAuthContextCaseClasses, UserAuthContext, UserAuthContextProvider}
import code.context.{RemotedataUserAuthContextCaseClasses, UserAuthContextProvider}
import com.openbankproject.commons.model.UserAuthContext
import net.liftweb.common.Box
import scala.collection.immutable.List

View File

@ -6,14 +6,12 @@ import java.util.UUID
import code.accountholders.AccountHolders
import code.api.util.APIUtil._
import code.api.util.{APIUtil, ErrorMessages}
import code.atms.Atms.AtmT
import code.bankconnectors.Connector
import code.branches.Branches.BranchT
import code.crm.CrmEvent.CrmEvent
import code.model._
import code.model.dataAccess.ResourceUser
import code.products.Products
import code.products.Products.{Product, ProductCode}
import code.products.Products.{Product}
import code.users.Users
import code.util.Helper
import code.util.Helper.MdcLoggable

View File

@ -3,6 +3,7 @@ package code.taxresidence
import code.api.util.ErrorMessages
import code.customer.MappedCustomer
import code.util.{MappedUUID, MediumString}
import com.openbankproject.commons.model.TaxResidence
import net.liftweb.common.{Box, Empty, Failure, Full}
import net.liftweb.mapper._
import net.liftweb.util.Helpers.tryo

View File

@ -2,6 +2,7 @@ package code.taxresidence
import code.api.util.APIUtil
import code.remotedata.RemotedataTaxResidence
import com.openbankproject.commons.model.TaxResidence
import net.liftweb.common.Box
import net.liftweb.util.SimpleInjector
@ -24,13 +25,6 @@ trait TaxResidenceProvider {
def deleteTaxResidence(taxResidenceId: String): Future[Box[Boolean]]
}
trait TaxResidence {
def customerId: Long
def taxResidenceId: String
def domain: String
def taxNumber: String
}
class RemotedataTaxResidenceCaseClasses {
case class getTaxResidence(customerId: String)

View File

@ -3,11 +3,11 @@ package code.transactionrequests
import code.api.util.ErrorMessages._
import code.api.v2_1_0.{TransactionRequestBodyCounterpartyJSON, TransactionRequestBodySEPAJSON, TransactionRequestBodySandBoxTanJSON, TransactionRequestCommonBodyJSON}
import code.bankconnectors.Connector
import code.metadata.counterparties.MappedCounterparty
import code.model._
import code.transactionrequests.TransactionRequests.{TransactionRequestTypes, _}
import code.util.{AccountIdString, UUIDString}
import com.openbankproject.commons.model.{TransactionRequestStatus => _, _}
import com.openbankproject.commons.model._
import net.liftweb.common.{Box, Failure, Full, Logger}
import net.liftweb.json
import net.liftweb.json.JsonAST.{JField, JObject, JString}

View File

@ -3,11 +3,9 @@ package code.api.v1_4_0
import code.api.util.APIUtil.OAuth._
import code.api.util.OBPQueryParam
import code.api.v1_4_0.JSONFactory1_4_0.{AtmJson, AtmsJson}
import code.atms.Atms.{AtmId, AtmT}
import code.atms.{Atms, AtmsProvider}
import code.common.{AddressT, LicenseT, LocationT, MetaT}
import code.setup.DefaultUsers
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model.{LicenseT, _}
class AtmsTest extends V140ServerSetup with DefaultUsers {

View File

@ -3,11 +3,9 @@ package code.api.v1_4_0
import code.api.util.APIUtil.OAuth._
import code.api.util.OBPQueryParam
import code.api.v1_4_0.JSONFactory1_4_0.{BranchJson, BranchesJson}
import code.branches.Branches.{BranchId, BranchT, DriveUp, DriveUpStringT, Lobby, LobbyStringT}
import code.branches.{Branches, BranchesProvider}
import code.common._
import code.setup.DefaultUsers
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model._
/*
Note This does not test retrieval from a backend.

View File

@ -2,13 +2,10 @@ package code.api.v1_4_0
import code.api.util.APIUtil.OAuth._
import code.api.v1_4_0.JSONFactory1_4_0.{ProductJson, ProductsJson}
import code.common.{License, LicenseT, Meta, MetaT}
import code.products.Products.ProductCode
import code.products.Products.Product
import code.products.{Products, ProductsProvider}
import code.setup.{DefaultUsers, ServerSetup}
import com.openbankproject.commons.model.BankId
import dispatch._
import com.openbankproject.commons.model.{BankId, License, Meta, ProductCode}
class ProductsTest extends ServerSetup with DefaultUsers with V140ServerSetup {

View File

@ -4,9 +4,8 @@ import code.api.util.APIUtil.OAuth._
import code.api.util.ApiRole
import code.api.util.ApiRole.CanCreateBranch
import code.api.v1_4_0.JSONFactory1_4_0._
import code.branches.Branches.BranchId
import code.setup.DefaultUsers
import com.openbankproject.commons.model.{AccountId, ViewId}
import com.openbankproject.commons.model.{AccountId, BranchId, ViewId}
import net.liftweb.json.JsonAST.JString
import net.liftweb.json.Serialization.write

View File

@ -6,13 +6,12 @@ import code.api.util.ApiRole.CanDeleteBranchAtAnyBank
import code.api.util.{ApiVersion, ErrorMessages, OBPQueryParam}
import code.api.v3_1_0.OBPAPI3_1_0
import code.bankconnectors.Connector
import code.branches.Branches._
import code.branches.Branches.Branch
import code.branches.{Branches, BranchesProvider}
import code.common._
import code.entitlement.Entitlement
import code.setup.DefaultUsers
import com.github.dwickern.macros.NameOf.nameOf
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model._
import org.scalatest.Tag
/*

View File

@ -1,9 +1,8 @@
package code.atms
import code.api.util.OBPLimit
import code.atms.Atms.AtmT
import code.setup.ServerSetup
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model.{AtmT, BankId}
import net.liftweb.mapper.By
class MappedAtmsProviderTest extends ServerSetup {

View File

@ -1,9 +1,8 @@
package code.branches
import code.api.util.OBPLimit
import code.branches.Branches.BranchT
import code.setup.ServerSetup
import com.openbankproject.commons.model.BankId
import com.openbankproject.commons.model.{BankId, BranchT}
import net.liftweb.mapper.By
class MappedBranchesProviderTest extends ServerSetup {

View File

@ -1,8 +1,5 @@
package code.customer
import java.text.SimpleDateFormat
import java.util.{Date, UUID}
import code.api.util.APIUtil.OAuth._
import code.api.util.{APIUtil, ApiRole}
import code.api.v1_4_0.JSONFactory1_4_0.CustomerFaceImageJson

View File

@ -30,24 +30,23 @@ import java.util.Date
import bootstrap.liftweb.ToSchemify
import code.TestServer
import code.api.util.{APIUtil, OBPLimit}
import code.api.util.APIUtil._
import code.api.util.ErrorMessages._
import code.api.util.{APIUtil, OBPLimit}
import code.atms.Atms
import code.atms.Atms.{AtmId, AtmT, countOfAtms}
import code.atms.Atms.countOfAtms
import code.bankconnectors.Connector
import code.branches.Branches
import code.branches.Branches.{BranchId, BranchT, countOfBranches}
import code.crm.CrmEvent
import code.crm.CrmEvent.{CrmEvent, CrmEventId}
import code.model._
import code.model.dataAccess._
import code.products.Products
import code.products.Products.{Product, ProductCode, countOfProducts}
import code.products.Products.{Product, countOfProducts}
import code.setup.{APIResponse, SendServerRequests}
import code.users.Users
import code.views.Views
import com.openbankproject.commons.model.{AccountId, BankId, BankIdAccountId, TransactionId}
import com.openbankproject.commons.model._
import dispatch._
import net.liftweb.common.{Empty, ParamFailure}
import net.liftweb.json.JsonAST.{JObject, JValue}
@ -1698,7 +1697,7 @@ class SandboxDataLoadingTest extends FlatSpec with SendServerRequests with Match
val existingBranches: Option[List[BranchT]] = Branches.branchesProvider.vend.getBranches(bankId1)
// We want the size of the list inside the Option
val existingBranchesCount = countOfBranches(existingBranches)
val existingBranchesCount = Branches.countOfBranches(existingBranches)
existingBranchesCount should equal (0)
// Check creation succeeds
@ -1706,7 +1705,7 @@ class SandboxDataLoadingTest extends FlatSpec with SendServerRequests with Match
response.code should equal(SUCCESS)
// Check count after creation. Again counting the items in list, not the option
val countBranchesAfter = countOfBranches(Branches.branchesProvider.vend.getBranches(bankId1))
val countBranchesAfter = Branches.countOfBranches(Branches.branchesProvider.vend.getBranches(bankId1))
countBranchesAfter should equal(standardBranches.size) // We expect N branches
// Check that for each branch we did indeed create something good

View File

@ -1,22 +1,18 @@
package com.openbankproject.commons.model
import java.util.Date
import code.customeraddress.CustomerAddress
import code.bankconnectors.InboundAccountCommon
import code.branches.Branches.BranchT
import com.openbankproject.commons.model.Customer
import code.context.UserAuthContext
import code.meetings.Meeting
import code.taxresidence.TaxResidence
import code.productcollectionitem.ProductCollectionItem
import com.openbankproject.commons.model.Bank
import code.productcollection.ProductCollection
import com.openbankproject.commons.model.CounterpartyTrait
import code.atms.Atms.AtmT
import code.productattribute.ProductAttribute.ProductAttribute
import code.accountattribute.AccountAttribute.AccountAttribute
import com.openbankproject.commons.model.BankAccount
import code.accountapplication.AccountApplication
//import code.customeraddress.CustomerAddress
//import code.bankconnectors.InboundAccountCommon
//import code.branches.Branches.BranchT
//import code.context.UserAuthContext
//import code.meetings.Meeting
//import code.taxresidence.TaxResidence
//import code.productcollectionitem.ProductCollectionItem
//import code.productcollection.ProductCollection
//import code.atms.Atms.AtmT
//import code.productattribute.ProductAttribute.ProductAttribute
//import code.accountattribute.AccountAttribute.AccountAttribute
//import code.accountapplication.AccountApplication
case class ProductAttributeCommons(
bankId :BankId,
@ -38,7 +34,7 @@ case class AccountAttributeCommons(
productCode :ProductCode,
accountAttributeId :String,
name :String,
attributeType :Value,
attributeType : AccountAttributeType.Value,
value :String) extends AccountAttribute
@ -205,7 +201,7 @@ case class CounterpartyTraitCommons(
otherBranchRoutingScheme :String,
otherBranchRoutingAddress :String,
isBeneficiary :Boolean,
bespoke :List) extends CounterpartyTrait
bespoke :List[CounterpartyBespoke]) extends CounterpartyTrait
case class TaxResidenceCommons(

View File

@ -0,0 +1,377 @@
package com.openbankproject.commons.model
import java.util.Date
//--------- enums
object AccountAttributeType extends Enumeration{
type ProductAttributeType = Value
val STRING = Value("STRING")
val INTEGER = Value("INTEGER")
val DOUBLE = Value("DOUBLE")
val DATE_WITH_DAY = Value("DATE_WITH_DAY")
}
object ProductAttributeType extends Enumeration{
type ProductAttributeType = Value
val STRING = Value("STRING")
val INTEGER = Value("INTEGER")
val DOUBLE = Value("DOUBLE")
val DATE_WITH_DAY = Value("DATE_WITH_DAY")
}
//-------------------
trait AccountApplication {
def accountApplicationId: String
def productCode: ProductCode
def userId: String
def customerId: String
def dateOfApplication: Date
def status: String
}
trait AccountAttribute {
def bankId: BankId
def accountId: AccountId
def productCode: ProductCode
def accountAttributeId: String
def name: String
def attributeType: AccountAttributeType.Value
def value: String
}
trait AtmT {
def atmId: AtmId
def bankId: BankId
def name: String
def address: AddressT
def location: LocationT
def meta: MetaT
def OpeningTimeOnMonday: Option[String]
def ClosingTimeOnMonday: Option[String]
def OpeningTimeOnTuesday: Option[String]
def ClosingTimeOnTuesday: Option[String]
def OpeningTimeOnWednesday: Option[String]
def ClosingTimeOnWednesday: Option[String]
def OpeningTimeOnThursday: Option[String]
def ClosingTimeOnThursday: Option[String]
def OpeningTimeOnFriday: Option[String]
def ClosingTimeOnFriday: Option[String]
def OpeningTimeOnSaturday: Option[String]
def ClosingTimeOnSaturday: Option[String]
def OpeningTimeOnSunday: Option[String]
def ClosingTimeOnSunday: Option[String]
def isAccessible: Option[Boolean]
def locatedAt: Option[String]
def moreInfo: Option[String]
def hasDepositCapability: Option[Boolean]
}
// MappedBranch will implement this.
// The trait defines the fields the API will interact with.
trait BranchT {
def branchId: BranchId
def bankId: BankId
def name: String
def address: Address
def location: Location
def lobbyString: Option[LobbyStringT]
def driveUpString: Option[DriveUpStringT]
def meta: Meta
def branchRouting: Option[RoutingT]
def lobby: Option[Lobby]
def driveUp: Option[DriveUp]
// Easy access for people who use wheelchairs etc. "Y"=true "N"=false ""=Unknown
def isAccessible : Option[Boolean]
def accessibleFeatures: Option[String]
def branchType : Option[String]
def moreInfo : Option[String]
def phoneNumber : Option[String]
// marks whether this branch is deleted
def isDeleted : Option[Boolean]
}
trait CustomerAddress {
def customerId: String
def customerAddressId: String
def line1: String
def line2: String
def line3: String
def city: String
def county: String
def state: String
def postcode: String
def countryCode: String
def status: String
def tags: String
def insertDate: Date
}
// This is the common InboundAccount from all Kafka/remote, not finished yet.
trait InboundAccountCommon{
def errorCode: String
def bankId: String
def branchId: String
def accountId: String
def accountNumber: String
def accountType: String
def balanceAmount: String
def balanceCurrency: String
def owners: List[String]
def viewsToGenerate: List[String]
def bankRoutingScheme:String
def bankRoutingAddress:String
def branchRoutingScheme:String
def branchRoutingAddress:String
def accountRoutingScheme:String
def accountRoutingAddress:String
}
trait Meeting {
def meetingId: String
def providerId: String
def purposeId: String
def bankId: String
def present: MeetingPresent
def keys: MeetingKeys
def when: Date
def creator: ContactDetails
def invitees: List[Invitee]
}
trait ProductAttribute {
def bankId: BankId
def productCode: ProductCode
def productAttributeId: String
def name: String
def attributeType: ProductAttributeType.Value
def value: String
}
trait ProductCollection {
def collectionCode: String
def productCode: String
}
trait ProductCollectionItem {
def collectionCode: String
def memberProductCode: String
}
trait TaxResidence {
def customerId: Long
def taxResidenceId: String
def domain: String
def taxNumber: String
}
trait UserAuthContext {
def userAuthContextId : String
def userId : String
def key : String
def value : String
}
trait AddressT {
def line1 : String
def line2 : String
def line3 : String
def city : String
def county : Option[String]
def state : String
def postCode : String
//ISO_3166-1_alpha-2
def countryCode : String
}
trait LocationT {
def latitude: Double
def longitude: Double
}
trait MetaT {
def license : LicenseT
}
trait LicenseT {
def id : String
def name : String
}
@deprecated("Use Lobby instead which contains detailed fields, not this string","24 July 2017")
trait LobbyStringT {
def hours : String
}
@deprecated("Use DriveUp instead which contains detailed fields now, not this string","24 July 2017")
trait DriveUpStringT {
def hours : String
}
trait RoutingT {
def scheme: String
def address: String
}
//---------------------------------------- trait dependents of case class
case class BranchId(value : String) {
override def toString = value
}
object BranchId {
def unapply(id : String) = Some(BranchId(id))
}
case class Address(
line1 : String,
line2 : String,
line3 : String,
city : String,
county : Option[String],
state : String,
postCode : String,
//ISO_3166-1_alpha-2
countryCode : String) extends AddressT
case class MeetingPresent(
staffUserId: String,
customerUserId: String
)
case class Location(
latitude: Double,
longitude: Double,
date : Option[Date],
user: Option[BasicResourceUser]
) extends LocationT
/*
Basic User data
*/
case class BasicResourceUser(
userId: String, // Should come from Resource User Id
provider: String,
username: String
)
case class Meta (
license : License
) extends MetaT
case class License (
id : String,
name : String
) extends LicenseT
case class Lobby(
monday: List[OpeningTimes],
tuesday: List[OpeningTimes],
wednesday: List[OpeningTimes],
thursday: List[OpeningTimes],
friday: List[OpeningTimes],
saturday: List[OpeningTimes],
sunday: List[OpeningTimes]
)
case class OpeningTimes(
openingTime: String,
closingTime: String
)
case class DriveUp(
monday: OpeningTimes,
tuesday: OpeningTimes,
wednesday: OpeningTimes,
thursday: OpeningTimes,
friday: OpeningTimes,
saturday: OpeningTimes,
sunday: OpeningTimes
)
case class MeetingKeys (
sessionId: String,
customerToken: String,
staffToken: String
)
case class ContactDetails(
name: String,
phone: String,
email: String
)
case class Invitee(
contactDetails: ContactDetails,
status: String
)
// Good to have this as a class because when passing as argument, we get compiler error if passing the wrong type.
case class ProductCode(value : String)
object ProductCode {
def unapply(code : String) = Some(ProductCode(code))
}
case class AtmId(value : String){
override def toString() = value
}
object AtmId {
def unapply(id : String) = Some(AtmId(id))
}