mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 17:37:00 +00:00
feature/introduce CanGetCustomerOverview and CanGetCustomerOverviewFlat
This commit is contained in:
parent
ea38c355f5
commit
ee4053f561
@ -96,6 +96,12 @@ object ApiRole {
|
||||
|
||||
case class CanGetCustomer(requiresBankId: Boolean = true) extends ApiRole
|
||||
lazy val canGetCustomer = CanGetCustomer()
|
||||
|
||||
case class CanGetCustomerOverview(requiresBankId: Boolean = true) extends ApiRole
|
||||
lazy val canGetCustomerOverview = CanGetCustomerOverview()
|
||||
|
||||
case class CanGetCustomerOverviewFlat(requiresBankId: Boolean = true) extends ApiRole
|
||||
lazy val canGetCustomerOverviewFlat = CanGetCustomerOverviewFlat()
|
||||
|
||||
case class CanCreateCustomer(requiresBankId: Boolean = true) extends ApiRole
|
||||
lazy val canCreateCustomer = CanCreateCustomer()
|
||||
|
||||
@ -1040,21 +1040,17 @@ trait APIMethods500 {
|
||||
UnknownError
|
||||
),
|
||||
List(apiTagCustomer, apiTagKyc ,apiTagNewStyle),
|
||||
Some(List(canGetCustomer))
|
||||
Some(List(canGetCustomerOverview))
|
||||
)
|
||||
|
||||
lazy val getCustomerOverview : OBPEndpoint = {
|
||||
case "banks" :: BankId(bankId) :: "customers" :: "customer-number-query" :: "overview" :: Nil JsonPost json -> req => {
|
||||
cc =>
|
||||
for {
|
||||
(Full(u), callContext) <- authenticatedAccess(cc)
|
||||
(bank, callContext) <- NewStyle.function.getBank(bankId, callContext)
|
||||
_ <- NewStyle.function.hasEntitlement(bankId.value, u.userId, canGetCustomer, callContext)
|
||||
failMsg = s"$InvalidJsonFormat The Json body should be the $PostCustomerOverviewJsonV500 "
|
||||
postedData <- NewStyle.function.tryons(failMsg, 400, callContext) {
|
||||
postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PostCustomerOverviewJsonV500 ", 400, cc.callContext) {
|
||||
json.extract[PostCustomerOverviewJsonV500]
|
||||
}
|
||||
(customer, callContext) <- NewStyle.function.getCustomerByCustomerNumber(postedData.customer_number, bank.bankId, callContext)
|
||||
(customer, callContext) <- NewStyle.function.getCustomerByCustomerNumber(postedData.customer_number, bankId, cc.callContext)
|
||||
(customerAttributes, callContext) <- NewStyle.function.getCustomerAttributes(
|
||||
bankId,
|
||||
CustomerId(customer.customerId),
|
||||
@ -1093,21 +1089,17 @@ trait APIMethods500 {
|
||||
UnknownError
|
||||
),
|
||||
List(apiTagCustomer, apiTagKyc ,apiTagNewStyle),
|
||||
Some(List(canGetCustomer))
|
||||
Some(List(canGetCustomerOverviewFlat))
|
||||
)
|
||||
|
||||
lazy val getCustomerOverviewFlat : OBPEndpoint = {
|
||||
case "banks" :: BankId(bankId) :: "customers" :: "customer-number-query" :: "overview-flat" :: Nil JsonPost json -> req => {
|
||||
cc =>
|
||||
for {
|
||||
(Full(u), callContext) <- authenticatedAccess(cc)
|
||||
(bank, callContext) <- NewStyle.function.getBank(bankId, callContext)
|
||||
_ <- NewStyle.function.hasEntitlement(bankId.value, u.userId, canGetCustomer, callContext)
|
||||
failMsg = s"$InvalidJsonFormat The Json body should be the $PostCustomerOverviewJsonV500 "
|
||||
postedData <- NewStyle.function.tryons(failMsg, 400, callContext) {
|
||||
postedData <- NewStyle.function.tryons(s"$InvalidJsonFormat The Json body should be the $PostCustomerOverviewJsonV500 ", 400, cc.callContext) {
|
||||
json.extract[PostCustomerOverviewJsonV500]
|
||||
}
|
||||
(customer, callContext) <- NewStyle.function.getCustomerByCustomerNumber(postedData.customer_number, bank.bankId, callContext)
|
||||
(customer, callContext) <- NewStyle.function.getCustomerByCustomerNumber(postedData.customer_number, bankId, cc.callContext)
|
||||
(customerAttributes, callContext) <- NewStyle.function.getCustomerAttributes(
|
||||
bankId,
|
||||
CustomerId(customer.customerId),
|
||||
|
||||
@ -87,13 +87,13 @@ class CustomerOverviewTest extends V500ServerSetup {
|
||||
val response = makePostRequest(request, write(getCustomerJson))
|
||||
Then("We should get a 403")
|
||||
response.code should equal(403)
|
||||
And("error should be " + canGetCustomer)
|
||||
And("error should be " + canGetCustomerOverview)
|
||||
val errorMessage = response.body.extract[ErrorMessage].message
|
||||
errorMessage contains (UserHasMissingRoles) should be (true)
|
||||
errorMessage contains (canGetCustomer.toString()) should be (true)
|
||||
errorMessage contains (canGetCustomerOverview.toString()) should be (true)
|
||||
}
|
||||
scenario(s"We will call the endpoint $ApiEndpoint1 with a user credentials and a proper role", ApiEndpoint1, VersionOfApi) {
|
||||
Entitlement.entitlement.vend.addEntitlement(bankId, resourceUser1.userId, CanGetCustomer.toString)
|
||||
Entitlement.entitlement.vend.addEntitlement(bankId, resourceUser1.userId, CanGetCustomerOverview.toString)
|
||||
When(s"We make a request $VersionOfApi")
|
||||
val request = (v5_0_0_Request / "banks" / bankId / "customers" / "customer-number-query" / "overview").POST <@(user1)
|
||||
val response = makePostRequest(request, write(getCustomerJson))
|
||||
@ -106,7 +106,7 @@ class CustomerOverviewTest extends V500ServerSetup {
|
||||
val legalName = "Evelin Doe"
|
||||
val mobileNumber = "+44 123 456"
|
||||
val customer: CustomerJsonV310 = createCustomerEndpointV500(bankId, legalName, mobileNumber)
|
||||
Entitlement.entitlement.vend.addEntitlement(bankId, resourceUser1.userId, CanGetCustomer.toString)
|
||||
Entitlement.entitlement.vend.addEntitlement(bankId, resourceUser1.userId, CanGetCustomerOverview.toString)
|
||||
When(s"We make a request $VersionOfApi")
|
||||
val request = (v5_0_0_Request / "banks" / bankId / "customers" / "customer-number-query" / "overview").POST <@(user1)
|
||||
val response = makePostRequest(request, write(PostCustomerOverviewJsonV500(customer.customer_number)))
|
||||
@ -140,13 +140,13 @@ class CustomerOverviewTest extends V500ServerSetup {
|
||||
val response = makePostRequest(request, write(getCustomerJson))
|
||||
Then("We should get a 403")
|
||||
response.code should equal(403)
|
||||
And("error should be " + canGetCustomer)
|
||||
And("error should be " + canGetCustomerOverviewFlat)
|
||||
val errorMessage = response.body.extract[ErrorMessage].message
|
||||
errorMessage contains (UserHasMissingRoles) should be (true)
|
||||
errorMessage contains (canGetCustomer.toString()) should be (true)
|
||||
errorMessage contains (canGetCustomerOverviewFlat.toString()) should be (true)
|
||||
}
|
||||
scenario(s"We will call the endpoint $ApiEndpoint2 with a user credentials and a proper role", ApiEndpoint1, VersionOfApi) {
|
||||
Entitlement.entitlement.vend.addEntitlement(bankId, resourceUser1.userId, CanGetCustomer.toString)
|
||||
Entitlement.entitlement.vend.addEntitlement(bankId, resourceUser1.userId, CanGetCustomerOverviewFlat.toString)
|
||||
When(s"We make a request $VersionOfApi")
|
||||
val request = (v5_0_0_Request / "banks" / bankId / "customers" / "customer-number-query" / "overview-flat").POST <@(user1)
|
||||
val response = makePostRequest(request, write(getCustomerJson))
|
||||
@ -159,7 +159,7 @@ class CustomerOverviewTest extends V500ServerSetup {
|
||||
val legalName = "Evelin Doe"
|
||||
val mobileNumber = "+44 123 456"
|
||||
val customer: CustomerJsonV310 = createCustomerEndpointV500(bankId, legalName, mobileNumber)
|
||||
Entitlement.entitlement.vend.addEntitlement(bankId, resourceUser1.userId, CanGetCustomer.toString)
|
||||
Entitlement.entitlement.vend.addEntitlement(bankId, resourceUser1.userId, CanGetCustomerOverviewFlat.toString)
|
||||
When(s"We make a request $VersionOfApi")
|
||||
val request = (v5_0_0_Request / "banks" / bankId / "customers" / "customer-number-query" / "overview-flat").POST <@(user1)
|
||||
val response = makePostRequest(request, write(PostCustomerOverviewJsonV500(customer.customer_number)))
|
||||
|
||||
Loading…
Reference in New Issue
Block a user