Fixing Get Customer for Logged in User WIP

This commit is contained in:
Simon Redfern 2017-08-10 12:42:05 +10:00
parent 6a94885739
commit 108a6fffc7
6 changed files with 25 additions and 18 deletions

View File

@ -162,7 +162,7 @@ import code.api.util.APIUtil._
val CustomerNumberAlreadyExists = "OBP-30006: Customer Number already exists. Please specify a different value for BANK_ID or CUSTOMER_NUMBER."
val CustomerAlreadyExistsForUser = "OBP-30007: The User is already linked to a Customer at the bank specified by BANK_ID"
val CustomerDoNotExistsForUser = "OBP-30008: User is not linked to a Customer at the bank specified by BANK_ID"
val UserCustomerLinksNotFoundByUserId = "OBP-30008: User Customer Link not found by USER_ID"
val AtmNotFoundByAtmId = "OBP-30009: ATM not found. Please specify a valid value for ATM_ID."
val BranchNotFoundByBranchId = "OBP-300010: Branch not found. Please specify a valid value for BRANCH_ID."
val ProductNotFoundByProductCode = "OBP-30011: Product not found. Please specify a valid value for PRODUCT_CODE."
@ -193,6 +193,9 @@ import code.api.util.APIUtil._
val ViewIdNotSupported = "OBP-30032: This ViewId is do not supported. Only support four now: Owner, Public, Accountant, Auditor."
val UserCustomerLinkNotFound = "OBP-30032: User Customer Link not found"
// Meetings

View File

@ -88,9 +88,9 @@ trait APIMethods140 extends MdcLoggable with APIMethods130 with APIMethods121{
for {
u <- user ?~! ErrorMessages.UserNotLoggedIn
bank <- Bank(bankId) ?~! {ErrorMessages.BankNotFound}
ucls <- tryo{UserCustomerLink.userCustomerLink.vend.getUserCustomerLinkByUserId(u.userId)} ?~! ErrorMessages.CustomerDoNotExistsForUser
ucls <- tryo{UserCustomerLink.userCustomerLink.vend.getUserCustomerLinkByUserId(u.userId)} ?~! ErrorMessages.UserCustomerLinksNotFoundByUserId
ucl <- tryo{ucls.find(x=>Customer.customerProvider.vend.getBankIdByCustomerId(x.customerId) == bankId.value)}
isEmpty <- booleanToBox(ucl.size > 0, ErrorMessages.CustomerDoNotExistsForUser)
isEmpty <- booleanToBox(ucl.size > 0, ErrorMessages.UserCustomerLinksNotFoundByUserId)
u <- ucl
info <- Customer.customerProvider.vend.getCustomerByCustomerId(u.customerId) ?~! ErrorMessages.CustomerNotFoundByCustomerId
} yield {
@ -158,7 +158,7 @@ trait APIMethods140 extends MdcLoggable with APIMethods130 with APIMethods121{
postedData <- tryo{json.extract[AddCustomerMessageJson]} ?~! "Incorrect json format"
bank <- Bank(bankId) ?~! {ErrorMessages.BankNotFound}
customer <- Customer.customerProvider.vend.getCustomerByCustomerId(customerId) ?~ ErrorMessages.CustomerNotFoundByCustomerId
userCustomerLink <- UserCustomerLink.userCustomerLink.vend.getUserCustomerLinkByCustomerId(customer.customerId) ?~! ErrorMessages.CustomerDoNotExistsForUser
userCustomerLink <- UserCustomerLink.userCustomerLink.vend.getUserCustomerLinkByCustomerId(customer.customerId) ?~! ErrorMessages.UserCustomerLinksNotFoundByUserId
user <- User.findByUserId(userCustomerLink.userId) ?~! ErrorMessages.UserNotFoundById
messageCreated <- booleanToBox(
CustomerMessages.customerMessageProvider.vend.addMessage(

View File

@ -2235,7 +2235,7 @@ trait APIMethods200 {
|Authentication via OAuth is required.""",
emptyObjectJson,
customersJsonV140,
List(UserNotLoggedIn, CustomerDoNotExistsForUser, UnknownError),
List(UserNotLoggedIn, UserCustomerLinksNotFoundByUserId, UnknownError),
Catalogs(notCore, notPSD2, notOBWG),
List(apiTagPerson, apiTagCustomer))
@ -2245,7 +2245,7 @@ trait APIMethods200 {
for {
u <- user ?~! ErrorMessages.UserNotLoggedIn
//bank <- Bank(bankId) ?~! BankNotFound
customerIds: List[String] <- tryo{UserCustomerLink.userCustomerLink.vend.getUserCustomerLinkByUserId(u.userId).map(x=>x.customerId)} ?~! CustomerDoNotExistsForUser
customerIds: List[String] <- tryo{UserCustomerLink.userCustomerLink.vend.getUserCustomerLinkByUserId(u.userId).map(x=>x.customerId)} ?~! UserCustomerLinksNotFoundByUserId
} yield {
val json = JSONFactory1_4_0.createCustomersJson(APIUtil.getCustomers(customerIds))
successJsonResponse(Extraction.decompose(json))

View File

@ -1430,7 +1430,7 @@ trait APIMethods210 {
metricsJson,
List(
UserNotLoggedIn,
CustomerDoNotExistsForUser,
UserCustomerLinksNotFoundByUserId,
UnknownError
),
Catalogs(notCore, notPSD2, notOBWG),
@ -1442,7 +1442,7 @@ trait APIMethods210 {
for {
u <- user ?~! UserNotLoggedIn
//bank <- Bank(bankId) ?~! {BankNotFound}
customerIds: List[String] <- tryo{UserCustomerLink.userCustomerLink.vend.getUserCustomerLinkByUserId(u.userId).map(x=>x.customerId)} ?~! CustomerDoNotExistsForUser
customerIds: List[String] <- tryo{UserCustomerLink.userCustomerLink.vend.getUserCustomerLinkByUserId(u.userId).map(x=>x.customerId)} ?~! UserCustomerLinksNotFoundByUserId
} yield {
val json = JSONFactory210.createCustomersJson(APIUtil.getCustomers(customerIds))
successJsonResponse(Extraction.decompose(json))
@ -1464,11 +1464,11 @@ trait APIMethods210 {
emptyObjectJson,
customerJsonV210,
List(
UserNotLoggedIn,
BankNotFound,
CustomerDoNotExistsForUser,
CustomerDoNotExistsForUser,
CustomerNotFoundByCustomerId,
UserNotLoggedIn,
BankNotFound,
UserCustomerLinksNotFoundByUserId,
UserCustomerLinksNotFoundByUserId,
CustomerNotFoundByCustomerId,
UnknownError
),
Catalogs(notCore, notPSD2, notOBWG),
@ -1480,9 +1480,11 @@ trait APIMethods210 {
for {
u <- user ?~! UserNotLoggedIn
bank <- Bank(bankId) ?~! {BankNotFound}
ucls <- tryo{UserCustomerLink.userCustomerLink.vend.getUserCustomerLinkByUserId(u.userId)} ?~! CustomerDoNotExistsForUser
// Find User Customer Links by the UserId
ucls <- tryo{UserCustomerLink.userCustomerLink.vend.getUserCustomerLinkByUserId(u.userId)} ?~! UserCustomerLinksNotFoundByUserId
// Find
ucl <- tryo{ucls.find(x=>Customer.customerProvider.vend.getBankIdByCustomerId(x.customerId) == bankId.value)}
isEmpty <- booleanToBox(ucl.size > 0, CustomerDoNotExistsForUser)
isEmpty <- booleanToBox(ucl.size > 0, UserCustomerLinkNotFound)
u <- ucl
info <- Customer.customerProvider.vend.getCustomerByCustomerId(u.customerId) ?~! CustomerNotFoundByCustomerId
} yield {

View File

@ -126,12 +126,13 @@ class MappedCustomer extends Customer with LongKeyedMapper[MappedCustomer] with
def getSingleton = MappedCustomer
// Unique
object mCustomerId extends MappedUUID(this)
//object mUser extends MappedLongForeignKey(this, ResourceUser)
// Combination of bank id and customer number is unique
object mBank extends UUIDString(this)
object mNumber extends MappedString(this, 50)
object mMobileNumber extends MappedString(this, 50)
object mLegalName extends MappedString(this, 255)
object mEmail extends MappedEmail(this, 200)

View File

@ -28,8 +28,9 @@ object MappedUserCustomerLinkProvider extends UserCustomerLinkProvider {
}
override def getUserCustomerLinkByUserId(userId: String): List[UserCustomerLink] = {
MappedUserCustomerLink.findAll(
val userCustomerLinks : List[UserCustomerLink] = MappedUserCustomerLink.findAll(
By(MappedUserCustomerLink.mUserId, userId)).sortWith(_.id < _.id)
userCustomerLinks
}
override def getUserCustomerLink(userId : String, customerId: String): Box[UserCustomerLink] = {