mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 16:36:54 +00:00
feature/Introduce props berlin_group_version_1_version
This commit is contained in:
parent
8f15be65a2
commit
ed87117c74
@ -1147,6 +1147,9 @@ default_auth_context_update_request_key=CUSTOMER_NUMBER
|
||||
# the alias prefix path for BerlinGroupV1.3 (OBP built-in is berlin-group/v1.3), the format must be xxx/yyy, eg: 0.6/v1
|
||||
#berlin_group_v1_3_alias_path=
|
||||
|
||||
# Berlin Group URL version
|
||||
#berlin_group_version_1_version=v1.3
|
||||
|
||||
# Show the path inside of Berlin Group error message
|
||||
#berlin_group_error_message_show_path = true
|
||||
|
||||
|
||||
@ -1,6 +1,15 @@
|
||||
package code.api.berlin.group
|
||||
|
||||
import code.api.util.APIUtil
|
||||
import com.openbankproject.commons.util.ApiVersion.berlinGroupV13
|
||||
import com.openbankproject.commons.util.ScannedApiVersion
|
||||
import net.liftweb.common.Full
|
||||
|
||||
object ConstantsBG {
|
||||
val berlinGroupVersion1: ScannedApiVersion = APIUtil.getPropsValue("berlin_group_version_1_version") match {
|
||||
case Full(props) => berlinGroupV13.copy(apiShortVersion = props)
|
||||
case _ => berlinGroupV13
|
||||
}
|
||||
object SigningBasketsStatus extends Enumeration {
|
||||
type SigningBasketsStatus = Value
|
||||
// Only the codes
|
||||
|
||||
@ -3,6 +3,7 @@ package code.api.builder.AccountInformationServiceAISApi
|
||||
import java.text.SimpleDateFormat
|
||||
import code.api.APIFailureNewStyle
|
||||
import code.api.Constant.{SYSTEM_READ_ACCOUNTS_BERLIN_GROUP_VIEW_ID, SYSTEM_READ_BALANCES_BERLIN_GROUP_VIEW_ID, SYSTEM_READ_TRANSACTIONS_BERLIN_GROUP_VIEW_ID}
|
||||
import code.api.berlin.group.ConstantsBG
|
||||
import code.api.berlin.group.v1_3.JSONFactory_BERLIN_GROUP_1_3.{PostConsentResponseJson, _}
|
||||
import code.api.berlin.group.v1_3.model.{HrefType, LinksAll, ScaStatusResponse}
|
||||
import code.api.berlin.group.v1_3.{BgSpecValidation, JSONFactory_BERLIN_GROUP_1_3, JvalueCaseClass, OBP_BERLIN_GROUP_1_3}
|
||||
@ -37,7 +38,7 @@ import scala.collection.mutable.ArrayBuffer
|
||||
import scala.concurrent.Future
|
||||
|
||||
object APIMethods_AccountInformationServiceAISApi extends RestHelper {
|
||||
val apiVersion = ApiVersion.berlinGroupV13
|
||||
val apiVersion = ConstantsBG.berlinGroupVersion1
|
||||
val resourceDocs = ArrayBuffer[ResourceDoc]()
|
||||
val apiRelations = ArrayBuffer[ApiRelation]()
|
||||
protected implicit def JvalueToSuper(what: JValue): JvalueCaseClass = JvalueCaseClass(what)
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package code.api.builder.CommonServicesApi
|
||||
|
||||
import code.api.berlin.group.ConstantsBG
|
||||
import code.api.berlin.group.v1_3.{JvalueCaseClass, OBP_BERLIN_GROUP_1_3}
|
||||
import code.api.builder.AccountInformationServiceAISApi.APIMethods_AccountInformationServiceAISApi
|
||||
import code.api.builder.PaymentInitiationServicePISApi.APIMethods_PaymentInitiationServicePISApi
|
||||
@ -14,7 +15,7 @@ import scala.collection.mutable.ArrayBuffer
|
||||
|
||||
//TODO maybe we can remove this common services, it just show other apis in this tag. no new ones.
|
||||
object APIMethods_CommonServicesApi extends RestHelper {
|
||||
val apiVersion = ApiVersion.berlinGroupV13
|
||||
val apiVersion = ConstantsBG.berlinGroupVersion1
|
||||
val resourceDocs = ArrayBuffer[ResourceDoc]()
|
||||
val apiRelations = ArrayBuffer[ApiRelation]()
|
||||
val codeContext = CodeContext(resourceDocs, apiRelations)
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package code.api.builder.ConfirmationOfFundsServicePIISApi
|
||||
|
||||
import code.api.berlin.group.ConstantsBG
|
||||
import code.api.berlin.group.v1_3.JSONFactory_BERLIN_GROUP_1_3._
|
||||
import code.api.berlin.group.v1_3.{JvalueCaseClass, OBP_BERLIN_GROUP_1_3}
|
||||
import code.api.util.APIUtil._
|
||||
@ -20,7 +21,7 @@ import scala.collection.immutable.Nil
|
||||
import scala.collection.mutable.ArrayBuffer
|
||||
|
||||
object APIMethods_ConfirmationOfFundsServicePIISApi extends RestHelper {
|
||||
val apiVersion = ApiVersion.berlinGroupV13
|
||||
val apiVersion = ConstantsBG.berlinGroupVersion1
|
||||
val resourceDocs = ArrayBuffer[ResourceDoc]()
|
||||
val apiRelations = ArrayBuffer[ApiRelation]()
|
||||
protected implicit def JvalueToSuper(what: JValue): JvalueCaseClass = JvalueCaseClass(what)
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package code.api.berlin.group.v1_3
|
||||
|
||||
import code.api.berlin.group.ConstantsBG
|
||||
import code.api.berlin.group.v1_3.model.TransactionStatus.mapTransactionStatus
|
||||
import code.api.berlin.group.v1_3.model._
|
||||
import code.api.util.APIUtil._
|
||||
@ -513,7 +514,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
TransactionsV13Transactions(
|
||||
booked= transactions.map(transaction => createTransactionJSON(bankAccount, transaction)),
|
||||
pending = transactionRequests.filter(_.status!="COMPLETED").map(transactionRequest => createTransactionFromRequestJSON(bankAccount, transactionRequest)),
|
||||
_links = TransactionsV13TransactionsLinks(LinkHrefJson(s"/v1.3/accounts/$accountId"))
|
||||
_links = TransactionsV13TransactionsLinks(LinkHrefJson(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/accounts/$accountId"))
|
||||
)
|
||||
)
|
||||
}
|
||||
@ -559,7 +560,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
CardTransactionsV13Transactions(
|
||||
booked= transactions.map(t => createCardTransactionJson(t)),
|
||||
pending = Nil,
|
||||
_links = CardTransactionsLinksV13(LinkHrefJson(s"/v1.3/card-accounts/$accountId"))
|
||||
_links = CardTransactionsLinksV13(LinkHrefJson(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/card-accounts/$accountId"))
|
||||
)
|
||||
)
|
||||
}
|
||||
@ -570,7 +571,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
consentId = consent.consentId,
|
||||
consentStatus = consent.status.toLowerCase(),
|
||||
_links = ConsentLinksV13(
|
||||
startAuthorisation = Some(Href(s"/v1.3/consents/${consent.consentId}/authorisations"))
|
||||
startAuthorisation = Some(Href(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/consents/${consent.consentId}/authorisations"))
|
||||
)
|
||||
)
|
||||
}
|
||||
@ -589,9 +590,9 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
consentStatus = consent.status.toLowerCase(),
|
||||
_links = ConsentLinksV13(
|
||||
scaRedirect = Some(Href(s"$scaRedirectUrl")),
|
||||
status = Some(Href(s"/v1.3/consents/${consent.consentId}/status")),
|
||||
status = Some(Href(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/consents/${consent.consentId}/status")),
|
||||
// TODO Introduce a working link
|
||||
// scaStatus = Some(Href(s"/v1.3/consents/${consent.consentId}/authorisations/AUTHORISATIONID")),
|
||||
// scaStatus = Some(Href(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/consents/${consent.consentId}/authorisations/AUTHORISATIONID")),
|
||||
)
|
||||
)
|
||||
case Full("redirection_with_dedicated_start_of_authorization") =>
|
||||
@ -601,7 +602,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
consentId = consent.consentId,
|
||||
consentStatus = consent.status.toLowerCase(),
|
||||
_links = ConsentLinksV13(
|
||||
startAuthorisationWithPsuAuthentication = Some(Href(s"/v1.3/consents/${consent.consentId}/authorisations"))
|
||||
startAuthorisationWithPsuAuthentication = Some(Href(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/consents/${consent.consentId}/authorisations"))
|
||||
)
|
||||
)
|
||||
case Full("decoupled") =>
|
||||
@ -609,7 +610,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
consentId = consent.consentId,
|
||||
consentStatus = consent.status.toLowerCase(),
|
||||
_links = ConsentLinksV13(
|
||||
startAuthorisationWithPsuIdentification = Some(Href(s"/v1.3/consents/${consent.consentId}/authorisations"))
|
||||
startAuthorisationWithPsuIdentification = Some(Href(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/consents/${consent.consentId}/authorisations"))
|
||||
)
|
||||
)
|
||||
case _ =>
|
||||
@ -620,7 +621,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
def createPutConsentResponseJson(consent: ConsentTrait) : ScaStatusResponse = {
|
||||
ScaStatusResponse(
|
||||
scaStatus = consent.status.toLowerCase(),
|
||||
_links = Some(LinksAll(scaStatus = Some(HrefType(Some(s"/v1.3/consents/${consent.consentId}/authorisations")))))
|
||||
_links = Some(LinksAll(scaStatus = Some(HrefType(Some(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/consents/${consent.consentId}/authorisations")))))
|
||||
)
|
||||
}
|
||||
|
||||
@ -645,7 +646,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
scaStatus = challenge.scaStatus.map(_.toString).getOrElse("None"),
|
||||
authorisationId = challenge.authenticationMethodId.getOrElse("None"),
|
||||
pushMessage = "started", //TODO Not implement how to fill this.
|
||||
_links = ScaStatusJsonV13(s"/v1.3/consents/${consent.consentId}/authorisations/${challenge.challengeId}")//TODO, Not sure, what is this for??
|
||||
_links = ScaStatusJsonV13(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/consents/${consent.consentId}/authorisations/${challenge.challengeId}")//TODO, Not sure, what is this for??
|
||||
)
|
||||
}
|
||||
|
||||
@ -698,9 +699,9 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
paymentId = paymentId,
|
||||
_links = InitiatePaymentResponseLinks(
|
||||
scaRedirect = LinkHrefJson(s"$scaRedirectUrl/$paymentId"),
|
||||
self = LinkHrefJson(s"/v1.3/payments/sepa-credit-transfers/$paymentId"),
|
||||
status = LinkHrefJson(s"/v1.3/payments/$paymentId/status"),
|
||||
scaStatus = LinkHrefJson(s"/v1.3/payments/$paymentId/authorisations/${paymentId}")
|
||||
self = LinkHrefJson(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/payments/sepa-credit-transfers/$paymentId"),
|
||||
status = LinkHrefJson(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/payments/$paymentId/status"),
|
||||
scaStatus = LinkHrefJson(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/payments/$paymentId/authorisations/${paymentId}")
|
||||
)
|
||||
)
|
||||
}
|
||||
@ -709,9 +710,9 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
CancelPaymentResponseJson(
|
||||
"ACTC",
|
||||
_links = CancelPaymentResponseLinks(
|
||||
self = LinkHrefJson(s"/v1.3/payments/sepa-credit-transfers/$paymentId"),
|
||||
status = LinkHrefJson(s"/v1.3/payments/sepa-credit-transfers/$paymentId/status"),
|
||||
startAuthorisation = LinkHrefJson(s"/v1.3/payments/sepa-credit-transfers/cancellation-authorisations/${paymentId}")
|
||||
self = LinkHrefJson(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/payments/sepa-credit-transfers/$paymentId"),
|
||||
status = LinkHrefJson(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/payments/sepa-credit-transfers/$paymentId/status"),
|
||||
startAuthorisation = LinkHrefJson(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/payments/sepa-credit-transfers/cancellation-authorisations/${paymentId}")
|
||||
)
|
||||
)
|
||||
}
|
||||
@ -725,7 +726,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
scaStatus = challenge.scaStatus.map(_.toString).getOrElse(""),
|
||||
authorisationId = challenge.challengeId,
|
||||
psuMessage = "Please check your SMS at a mobile device.",
|
||||
_links = ScaStatusJsonV13(s"/v1.3/payments/sepa-credit-transfers/${challenge.challengeId}")
|
||||
_links = ScaStatusJsonV13(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/payments/sepa-credit-transfers/${challenge.challengeId}")
|
||||
)
|
||||
}
|
||||
|
||||
@ -733,7 +734,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
ScaStatusResponse(
|
||||
scaStatus = challenge.scaStatus.map(_.toString).getOrElse(""),
|
||||
psuMessage = Some("Please check your SMS at a mobile device."),
|
||||
_links = Some(LinksAll(scaStatus = Some(HrefType(Some(s"/v1.3/payments/sepa-credit-transfers/${challenge.challengeId}"))))
|
||||
_links = Some(LinksAll(scaStatus = Some(HrefType(Some(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/payments/sepa-credit-transfers/${challenge.challengeId}"))))
|
||||
)
|
||||
)
|
||||
}
|
||||
@ -745,7 +746,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
ScaStatusResponse(
|
||||
scaStatus = challenge.scaStatus.map(_.toString).getOrElse(""),
|
||||
psuMessage = Some("Please check your SMS at a mobile device."),
|
||||
_links = Some(LinksAll(scaStatus = Some(HrefType(Some(s"/v1.3/${paymentService}/${paymentProduct}/${paymentId}/cancellation-authorisations/${challenge.challengeId}"))))
|
||||
_links = Some(LinksAll(scaStatus = Some(HrefType(Some(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/${paymentService}/${paymentProduct}/${paymentId}/cancellation-authorisations/${challenge.challengeId}"))))
|
||||
)
|
||||
)
|
||||
}
|
||||
@ -761,7 +762,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
authorisationId = Some(challenge.challengeId),
|
||||
psuMessage = Some("Please check your SMS at a mobile device."),
|
||||
_links = Some(LinksUpdatePsuAuthentication(
|
||||
scaStatus = Some(HrefType(Some(s"/v1.3/${paymentService}/${paymentProduct}/${paymentId}/cancellation-authorisations/${challenge.challengeId}"))))
|
||||
scaStatus = Some(HrefType(Some(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/${paymentService}/${paymentProduct}/${paymentId}/cancellation-authorisations/${challenge.challengeId}"))))
|
||||
)
|
||||
)
|
||||
}
|
||||
@ -772,7 +773,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
scaStatus = challenge.scaStatus.map(_.toString).getOrElse(""),
|
||||
authorisationId = challenge.challengeId,
|
||||
psuMessage = "Please check your SMS at a mobile device.",
|
||||
_links = ScaStatusJsonV13(s"/v1.3/signing-baskets/${basketId}/authorisations/${challenge.challengeId}")
|
||||
_links = ScaStatusJsonV13(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/signing-baskets/${basketId}/authorisations/${challenge.challengeId}")
|
||||
)
|
||||
}
|
||||
|
||||
@ -781,9 +782,9 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats with MdcLoggable{
|
||||
basketId = basket.basketId,
|
||||
transactionStatus = basket.status.toLowerCase(),
|
||||
_links = SigningBasketLinksV13(
|
||||
self = LinkHrefJson(s"/v1.3/signing-baskets/${basket.basketId}"),
|
||||
status = LinkHrefJson(s"/v1.3/signing-baskets/${basket.basketId}/status"),
|
||||
startAuthorisation = LinkHrefJson(s"/v1.3/signing-baskets/${basket.basketId}/authorisations")
|
||||
self = LinkHrefJson(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/signing-baskets/${basket.basketId}"),
|
||||
status = LinkHrefJson(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/signing-baskets/${basket.basketId}/status"),
|
||||
startAuthorisation = LinkHrefJson(s"/${ConstantsBG.berlinGroupVersion1.apiShortVersion}/signing-baskets/${basket.basketId}/authorisations")
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@ -32,6 +32,7 @@
|
||||
package code.api.berlin.group.v1_3
|
||||
|
||||
import code.api.OBPRestHelper
|
||||
import code.api.berlin.group.ConstantsBG
|
||||
import code.api.builder.AccountInformationServiceAISApi.APIMethods_AccountInformationServiceAISApi
|
||||
import code.api.builder.CommonServicesApi.APIMethods_CommonServicesApi
|
||||
import code.api.builder.ConfirmationOfFundsServicePIISApi.APIMethods_ConfirmationOfFundsServicePIISApi
|
||||
@ -40,7 +41,7 @@ import code.api.builder.SigningBasketsApi.APIMethods_SigningBasketsApi
|
||||
import code.api.util.APIUtil.{OBPEndpoint, ResourceDoc, getAllowedEndpoints}
|
||||
import code.api.util.ScannedApis
|
||||
import code.util.Helper.MdcLoggable
|
||||
import com.openbankproject.commons.util.{ApiVersion, ScannedApiVersion,ApiVersionStatus}
|
||||
import com.openbankproject.commons.util.{ApiVersion, ApiVersionStatus, ScannedApiVersion}
|
||||
|
||||
import scala.collection.mutable.ArrayBuffer
|
||||
|
||||
@ -52,7 +53,7 @@ This file defines which endpoints from all the versions are available in v1
|
||||
*/
|
||||
object OBP_BERLIN_GROUP_1_3 extends OBPRestHelper with MdcLoggable with ScannedApis {
|
||||
|
||||
override val apiVersion = ApiVersion.berlinGroupV13
|
||||
override val apiVersion = ConstantsBG.berlinGroupVersion1
|
||||
val versionStatus = ApiVersionStatus.DRAFT.toString
|
||||
|
||||
val endpoints =
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package code.api.builder.PaymentInitiationServicePISApi
|
||||
|
||||
import code.api.berlin.group.ConstantsBG
|
||||
import code.api.berlin.group.v1_3.JSONFactory_BERLIN_GROUP_1_3.{CancelPaymentResponseJson, CancelPaymentResponseLinks, LinkHrefJson, UpdatePaymentPsuDataJson, checkAuthorisationConfirmation, checkSelectPsuAuthenticationMethod, checkTransactionAuthorisation, checkUpdatePsuAuthentication, createCancellationTransactionRequestJson}
|
||||
import code.api.berlin.group.v1_3.model.TransactionStatus.mapTransactionStatus
|
||||
import code.api.berlin.group.v1_3.model._
|
||||
@ -30,7 +31,7 @@ import scala.collection.mutable.ArrayBuffer
|
||||
import scala.concurrent.Future
|
||||
|
||||
object APIMethods_PaymentInitiationServicePISApi extends RestHelper {
|
||||
val apiVersion = ApiVersion.berlinGroupV13
|
||||
val apiVersion = ConstantsBG.berlinGroupVersion1
|
||||
val resourceDocs = ArrayBuffer[ResourceDoc]()
|
||||
val apiRelations = ArrayBuffer[ApiRelation]()
|
||||
protected implicit def JvalueToSuper(what: JValue): JvalueCaseClass = JvalueCaseClass(what)
|
||||
|
||||
@ -28,7 +28,7 @@ import scala.collection.mutable.ArrayBuffer
|
||||
import scala.concurrent.Future
|
||||
|
||||
object APIMethods_SigningBasketsApi extends RestHelper {
|
||||
val apiVersion = ApiVersion.berlinGroupV13
|
||||
val apiVersion = ConstantsBG.berlinGroupVersion1
|
||||
val resourceDocs = ArrayBuffer[ResourceDoc]()
|
||||
val apiRelations = ArrayBuffer[ApiRelation]()
|
||||
protected implicit def JvalueToSuper(what: JValue): JvalueCaseClass = JvalueCaseClass(what)
|
||||
|
||||
@ -34,6 +34,7 @@ import code.api.OAuthHandshake._
|
||||
import code.api.UKOpenBanking.v2_0_0.OBP_UKOpenBanking_200
|
||||
import code.api.UKOpenBanking.v3_1_0.OBP_UKOpenBanking_310
|
||||
import code.api._
|
||||
import code.api.berlin.group.ConstantsBG
|
||||
import code.api.berlin.group.v1_3.JSONFactory_BERLIN_GROUP_1_3.{ErrorMessageBG, ErrorMessagesBG}
|
||||
import code.api.cache.Caching
|
||||
import code.api.dynamic.endpoint.OBPAPIDynamicEndpoint
|
||||
@ -520,7 +521,7 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{
|
||||
val mirrorByProperties = getPropsValue("mirror_request_headers_to_response", "").split(",").toList.map(_.trim)
|
||||
|
||||
val mirrorRequestHeadersToResponse: List[String] =
|
||||
if (callContext.exists(_.url.contains(ApiVersion.berlinGroupV13.urlPrefix))) {
|
||||
if (callContext.exists(_.url.contains(ConstantsBG.berlinGroupVersion1.urlPrefix))) {
|
||||
// Berlin Group Specification
|
||||
RequestHeader.`X-Request-ID` :: mirrorByProperties
|
||||
} else {
|
||||
@ -725,7 +726,7 @@ object APIUtil extends MdcLoggable with CustomJsonFormats{
|
||||
}
|
||||
def composeErrorMessage() = {
|
||||
val path = callContextLight.map(_.url).getOrElse("")
|
||||
if (path.contains(ApiVersion.berlinGroupV13.urlPrefix)) {
|
||||
if (path.contains(ConstantsBG.berlinGroupVersion1.urlPrefix)) {
|
||||
val path =
|
||||
if(APIUtil.getPropsAsBoolValue("berlin_group_error_message_show_path", defaultValue = true))
|
||||
callContextLight.map(_.url)
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package code.api.util
|
||||
|
||||
import code.api.berlin.group.ConstantsBG
|
||||
import code.api.{APIFailureNewStyle, RequestHeader}
|
||||
import code.api.util.APIUtil.{OBPReturnType, fullBoxOrException}
|
||||
import code.api.util.BerlinGroupSigning.getHeaderValue
|
||||
@ -28,7 +29,7 @@ object BerlinGroupCheck extends MdcLoggable {
|
||||
|
||||
private def validateHeaders(verb: String, url: String, reqHeaders: List[HTTPParam], forwardResult: (Box[User], Option[CallContext])): (Box[User], Option[CallContext]) = {
|
||||
val headerMap = reqHeaders.map(h => h.name.toLowerCase -> h).toMap
|
||||
val missingHeaders = if(url.contains(ApiVersion.berlinGroupV13.urlPrefix) && url.endsWith("/consents"))
|
||||
val missingHeaders = if(url.contains(ConstantsBG.berlinGroupVersion1.urlPrefix) && url.endsWith("/consents"))
|
||||
(berlinGroupMandatoryHeaders ++ berlinGroupMandatoryHeaderConsent).filterNot(headerMap.contains)
|
||||
else
|
||||
berlinGroupMandatoryHeaders.filterNot(headerMap.contains)
|
||||
@ -59,7 +60,7 @@ object BerlinGroupCheck extends MdcLoggable {
|
||||
}
|
||||
|
||||
def validate(body: Box[String], verb: String, url: String, reqHeaders: List[HTTPParam], forwardResult: (Box[User], Option[CallContext])): OBPReturnType[Box[User]] = {
|
||||
if(url.contains(ApiVersion.berlinGroupV13.urlPrefix)) {
|
||||
if(url.contains(ConstantsBG.berlinGroupVersion1.urlPrefix)) {
|
||||
validateHeaders(verb, url, reqHeaders, forwardResult) match {
|
||||
case (user, _) if user.isDefined || user == Empty => // All good. Chain another check
|
||||
// Verify signed request (Berlin Group)
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package code.api.util
|
||||
|
||||
import code.api.berlin.group.ConstantsBG
|
||||
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.{Date, UUID}
|
||||
import code.api.berlin.group.v1_3.JSONFactory_BERLIN_GROUP_1_3.{ConsentAccessJson, PostConsentJson}
|
||||
@ -256,7 +258,7 @@ object Consent extends MdcLoggable {
|
||||
case false =>
|
||||
Failure(ErrorMessages.ConsentVerificationIssue)
|
||||
}
|
||||
case Full(c) if c.apiStandard == ApiVersion.berlinGroupV13.apiStandard && // Berlin Group Consent
|
||||
case Full(c) if c.apiStandard == ConstantsBG.berlinGroupVersion1.apiStandard && // Berlin Group Consent
|
||||
c.status.toLowerCase() != ConsentStatus.valid.toString =>
|
||||
Failure(s"${ErrorMessages.ConsentStatusIssue}${ConsentStatus.valid.toString}.")
|
||||
case Full(c) if c.mStatus.toString().toUpperCase() != ConsentStatus.ACCEPTED.toString =>
|
||||
@ -1053,9 +1055,9 @@ object Consent extends MdcLoggable {
|
||||
|
||||
def expireAllPreviousValidBerlinGroupConsents(consent: MappedConsent, updateTostatus: ConsentStatus): Boolean = {
|
||||
if(updateTostatus == ConsentStatus.valid &&
|
||||
consent.apiStandard == ApiVersion.berlinGroupV13.apiStandard) {
|
||||
consent.apiStandard == ConstantsBG.berlinGroupVersion1.apiStandard) {
|
||||
MappedConsent.findAll( // Find all
|
||||
By(MappedConsent.mApiStandard, ApiVersion.berlinGroupV13.apiStandard), // Berlin Group
|
||||
By(MappedConsent.mApiStandard, ConstantsBG.berlinGroupVersion1.apiStandard), // Berlin Group
|
||||
By(MappedConsent.mRecurringIndicator, true), // recurring
|
||||
By(MappedConsent.mStatus, ConsentStatus.valid.toString), // and valid consents
|
||||
By(MappedConsent.mUserId, consent.userId), // for the same PSU
|
||||
|
||||
@ -27,6 +27,7 @@
|
||||
package code.api.v5_1_0
|
||||
|
||||
import code.api.Constant
|
||||
import code.api.berlin.group.ConstantsBG
|
||||
import code.api.berlin.group.v1_3.JSONFactory_BERLIN_GROUP_1_3.ConsentAccessJson
|
||||
import code.api.util.APIUtil.{DateWithDay, DateWithSeconds, gitCommit, stringOrNull}
|
||||
import code.api.util._
|
||||
@ -941,8 +942,8 @@ object JSONFactory510 extends CustomJsonFormats {
|
||||
last_action_date = if (c.lastActionDate != null) new SimpleDateFormat(DateWithDay).format(c.lastActionDate) else null,
|
||||
last_usage_date = if (c.usesSoFarTodayCounterUpdatedAt != null) new SimpleDateFormat(DateWithSeconds).format(c.usesSoFarTodayCounterUpdatedAt) else null,
|
||||
jwt_payload = jwtPayload,
|
||||
frequency_per_day = if(c.apiStandard == ApiVersion.berlinGroupV13.apiStandard) Some(c.frequencyPerDay) else None,
|
||||
remaining_requests = if(c.apiStandard == ApiVersion.berlinGroupV13.apiStandard) Some(c.frequencyPerDay - c.usesSoFarTodayCounter) else None,
|
||||
frequency_per_day = if(c.apiStandard == ConstantsBG.berlinGroupVersion1.apiStandard) Some(c.frequencyPerDay) else None,
|
||||
remaining_requests = if(c.apiStandard == ConstantsBG.berlinGroupVersion1.apiStandard) Some(c.frequencyPerDay - c.usesSoFarTodayCounter) else None,
|
||||
api_standard = c.apiStandard,
|
||||
api_version = c.apiVersion
|
||||
)
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package code.scheduler
|
||||
|
||||
import code.api.berlin.group.ConstantsBG
|
||||
import code.api.util.APIUtil
|
||||
import code.consent.{ConsentStatus, MappedConsent}
|
||||
import code.util.Helper.MdcLoggable
|
||||
@ -52,7 +53,7 @@ object ConsentScheduler extends MdcLoggable {
|
||||
|
||||
val outdatedConsents = MappedConsent.findAll(
|
||||
By(MappedConsent.mStatus, ConsentStatus.received.toString),
|
||||
By(MappedConsent.mApiStandard, ApiVersion.berlinGroupV13.apiStandard),
|
||||
By(MappedConsent.mApiStandard, ConstantsBG.berlinGroupVersion1.apiStandard),
|
||||
By_<(MappedConsent.updatedAt, SchedulerUtil.someSecondsAgo(seconds))
|
||||
)
|
||||
|
||||
@ -78,7 +79,7 @@ object ConsentScheduler extends MdcLoggable {
|
||||
|
||||
val expiredConsents = MappedConsent.findAll(
|
||||
By(MappedConsent.mStatus, ConsentStatus.valid.toString),
|
||||
By(MappedConsent.mApiStandard, ApiVersion.berlinGroupV13.apiStandard),
|
||||
By(MappedConsent.mApiStandard, ConstantsBG.berlinGroupVersion1.apiStandard),
|
||||
By_<(MappedConsent.mValidUntil, new Date())
|
||||
)
|
||||
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
package code.api.ResourceDocs1_4_0
|
||||
|
||||
import code.api.ResourceDocs1_4_0.ResourceDocs140.ImplementationsResourceDocs
|
||||
import code.api.berlin.group.ConstantsBG
|
||||
import code.api.util.ErrorMessages.{UserHasMissingRoles, UserNotLoggedIn}
|
||||
import code.api.util.APIUtil.OAuth._
|
||||
|
||||
@ -283,7 +284,7 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
|
||||
}
|
||||
|
||||
scenario(s"We will test ${ApiEndpoint1.name} Api -v1.3", ApiEndpoint1, VersionOfApi) {
|
||||
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "v1.3" / "obp").GET
|
||||
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / ConstantsBG.berlinGroupVersion1.apiShortVersion / "obp").GET
|
||||
val responseGetObp = makeGetRequest(requestGetObp)
|
||||
And("We should get 200 and the response can be extract to case classes")
|
||||
val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
|
||||
@ -293,7 +294,7 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
|
||||
}
|
||||
|
||||
scenario(s"We will test ${ApiEndpoint1.name} Api -BGv1.3", ApiEndpoint1, VersionOfApi) {
|
||||
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / "BGv1.3" / "obp").GET
|
||||
val requestGetObp = (ResourceDocsV4_0Request / "resource-docs" / s"BG${ConstantsBG.berlinGroupVersion1.apiShortVersion}" / "obp").GET
|
||||
val responseGetObp = makeGetRequest(requestGetObp)
|
||||
And("We should get 200 and the response can be extract to case classes")
|
||||
val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
|
||||
@ -540,7 +541,7 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
|
||||
}
|
||||
|
||||
scenario(s"We will test ${ApiEndpoint2.name} Api -v1.3", ApiEndpoint1, VersionOfApi) {
|
||||
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "v1.3" / "obp").GET
|
||||
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / ConstantsBG.berlinGroupVersion1.apiShortVersion / "obp").GET
|
||||
val responseGetObp = makeGetRequest(requestGetObp)
|
||||
And("We should get 200 and the response can be extract to case classes")
|
||||
val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
|
||||
@ -550,7 +551,7 @@ class ResourceDocsTest extends ResourceDocsV140ServerSetup with PropsReset with
|
||||
}
|
||||
|
||||
scenario(s"We will test ${ApiEndpoint2.name} Api -BGv1.3", ApiEndpoint1, VersionOfApi) {
|
||||
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / "BGv1.3" / "obp").GET
|
||||
val requestGetObp = (ResourceDocsV1_4Request /"banks"/ testBankId1.value/ "resource-docs" / s"BG${ConstantsBG.berlinGroupVersion1.apiShortVersion}" / "obp").GET
|
||||
val responseGetObp = makeGetRequest(requestGetObp)
|
||||
And("We should get 200 and the response can be extract to case classes")
|
||||
val responseDocs = responseGetObp.body.extract[ResourceDocsJson]
|
||||
|
||||
@ -2,6 +2,7 @@ package code.api.berlin.group.v1_3
|
||||
|
||||
import code.api.Constant
|
||||
import code.api.Constant.SYSTEM_READ_ACCOUNTS_BERLIN_GROUP_VIEW_ID
|
||||
import code.api.berlin.group.ConstantsBG
|
||||
import code.api.util.APIUtil.OAuth._
|
||||
import code.api.util.APIUtil.OAuth.{Consumer, Token}
|
||||
import code.api.v3_0_0.ViewJsonV300
|
||||
@ -15,7 +16,7 @@ import org.scalatest.Tag
|
||||
|
||||
trait BerlinGroupServerSetupV1_3 extends ServerSetupWithTestData {
|
||||
object BerlinGroupV1_3 extends Tag("BerlinGroup_v1_3")
|
||||
val V1_3_BG = baseRequest / ApiVersion.berlinGroupV13.urlPrefix / "v1.3"
|
||||
val V1_3_BG = baseRequest / ConstantsBG.berlinGroupVersion1.urlPrefix / ConstantsBG.berlinGroupVersion1.apiShortVersion
|
||||
def v4_0_0_Request: Req = baseRequest / "obp" / "v4.0.0"
|
||||
|
||||
override def beforeEach() = {
|
||||
|
||||
Loading…
Reference in New Issue
Block a user