Skip to content

Commit

Permalink
Merge pull request #2363 from hongwei1/develop
Browse files Browse the repository at this point in the history
docfix/tweaked the BGV13 document
  • Loading branch information
simonredfern committed Feb 13, 2024
2 parents af0f7d3 + d99bc4e commit e865577
Show file tree
Hide file tree
Showing 326 changed files with 9,746 additions and 440 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ import java.net.URLEncoder

import code.api.v5_1_0.{AtmsJsonV510, _}
import code.endpointMapping.EndpointMappingCommons
import net.liftweb.json.Extraction

import scala.collection.immutable.List

Expand Down Expand Up @@ -79,7 +80,7 @@ object SwaggerDefinitionsJSON {
entity_post_code = "1060",
entity_country = "CY",
entity_web_site = "www.example.com",
services = """[{"CY":["PS_010","PS_020","PS_03C","PS_04C"]}]"""
services = json.parse("""[{"CY":["PS_010","PS_020","PS_03C","PS_04C"]}]""")
)

val license = License(
Expand Down Expand Up @@ -2259,7 +2260,7 @@ object SwaggerDefinitionsJSON {
duration = 39,
source_ip = "2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b",
target_ip = "2001:0db8:3c4d:0015:0000:0000:1a2f:1a2b",
response_body = """{"code":401,"message":"OBP-20001: User not logged in. Authentication is required!"}""".stripMargin
response_body = json.parse("""{"code":401,"message":"OBP-20001: User not logged in. Authentication is required!"}""")
)

val resourceUserJSON = ResourceUserJSON(
Expand Down

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,27 @@ object APIMethods_CommonServicesApi extends RestHelper {
APIMethods_PaymentInitiationServicePISApi.getPaymentCancellationScaStatus ::
APIMethods_PaymentInitiationServicePISApi.getPaymentInitiationAuthorisation ::
APIMethods_PaymentInitiationServicePISApi.getPaymentInitiationScaStatus ::
APIMethods_PaymentInitiationServicePISApi.startPaymentAuthorisation ::
APIMethods_PaymentInitiationServicePISApi.startPaymentInitiationCancellationAuthorisation ::
APIMethods_PaymentInitiationServicePISApi.updatePaymentCancellationPsuData ::
APIMethods_PaymentInitiationServicePISApi.updatePaymentPsuData ::
APIMethods_AccountInformationServiceAISApi.startConsentAuthorisation ::
APIMethods_AccountInformationServiceAISApi.updateConsentsPsuData ::
APIMethods_PaymentInitiationServicePISApi.startPaymentAuthorisationUpdatePsuAuthentication ::
APIMethods_PaymentInitiationServicePISApi.startPaymentAuthorisationTransactionAuthorisation ::
APIMethods_PaymentInitiationServicePISApi.startPaymentAuthorisationSelectPsuAuthenticationMethod ::
APIMethods_PaymentInitiationServicePISApi.startPaymentInitiationCancellationAuthorisationTransactionAuthorisation ::
APIMethods_PaymentInitiationServicePISApi.startPaymentInitiationCancellationAuthorisationUpdatePsuAuthentication ::
APIMethods_PaymentInitiationServicePISApi.startPaymentInitiationCancellationAuthorisationSelectPsuAuthenticationMethod ::
APIMethods_PaymentInitiationServicePISApi.updatePaymentCancellationPsuDataUpdatePsuAuthentication ::
APIMethods_PaymentInitiationServicePISApi.updatePaymentCancellationPsuDataTransactionAuthorisation ::
APIMethods_PaymentInitiationServicePISApi.updatePaymentCancellationPsuDataSelectPsuAuthenticationMethod ::
APIMethods_PaymentInitiationServicePISApi.updatePaymentCancellationPsuDataAuthorisationConfirmation ::
APIMethods_PaymentInitiationServicePISApi.updatePaymentPsuDataTransactionAuthorisation ::
APIMethods_PaymentInitiationServicePISApi.updatePaymentPsuDataUpdatePsuAuthentication ::
APIMethods_PaymentInitiationServicePISApi.updatePaymentPsuDataSelectPsuAuthenticationMethod ::
APIMethods_PaymentInitiationServicePISApi.updatePaymentPsuDataAuthorisationConfirmation ::
APIMethods_AccountInformationServiceAISApi.startConsentAuthorisationTransactionAuthorisation ::
APIMethods_AccountInformationServiceAISApi.startConsentAuthorisationUpdatePsuAuthentication ::
APIMethods_AccountInformationServiceAISApi.startConsentAuthorisationSelectPsuAuthenticationMethod ::
APIMethods_AccountInformationServiceAISApi.updateConsentsPsuDataTransactionAuthorisation ::
APIMethods_AccountInformationServiceAISApi.updateConsentsPsuDataUpdatePsuAuthentication ::
APIMethods_AccountInformationServiceAISApi.updateConsentsPsuDataUpdateAuthorisationConfirmation ::
APIMethods_AccountInformationServiceAISApi.updateConsentsPsuDataUpdateSelectPsuAuthenticationMethod ::
APIMethods_AccountInformationServiceAISApi.getConsentScaStatus :: Nil


Expand All @@ -49,13 +64,28 @@ object APIMethods_CommonServicesApi extends RestHelper {
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.getPaymentCancellationScaStatus).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.getPaymentInitiationAuthorisation).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.getPaymentInitiationScaStatus).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.startPaymentAuthorisation).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.startPaymentInitiationCancellationAuthorisation).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.updatePaymentCancellationPsuData).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.updatePaymentPsuData).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.startPaymentAuthorisationUpdatePsuAuthentication).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.startPaymentAuthorisationSelectPsuAuthenticationMethod).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.startPaymentAuthorisationTransactionAuthorisation).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.startPaymentInitiationCancellationAuthorisationTransactionAuthorisation).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.startPaymentInitiationCancellationAuthorisationUpdatePsuAuthentication).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.startPaymentInitiationCancellationAuthorisationSelectPsuAuthenticationMethod).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.updatePaymentCancellationPsuDataUpdatePsuAuthentication).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.updatePaymentCancellationPsuDataTransactionAuthorisation).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.updatePaymentCancellationPsuDataAuthorisationConfirmation).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.updatePaymentCancellationPsuDataSelectPsuAuthenticationMethod).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.updatePaymentPsuDataTransactionAuthorisation).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.updatePaymentPsuDataAuthorisationConfirmation).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.updatePaymentPsuDataSelectPsuAuthenticationMethod).head
resourceDocs += APIMethods_PaymentInitiationServicePISApi.resourceDocs.filter(_.partialFunction == APIMethods_PaymentInitiationServicePISApi.updatePaymentPsuDataAuthorisationConfirmation).head

resourceDocs += APIMethods_AccountInformationServiceAISApi.resourceDocs.filter(_.partialFunction == APIMethods_AccountInformationServiceAISApi.startConsentAuthorisation ).head
resourceDocs += APIMethods_AccountInformationServiceAISApi.resourceDocs.filter(_.partialFunction == APIMethods_AccountInformationServiceAISApi.updateConsentsPsuData ).head
resourceDocs += APIMethods_AccountInformationServiceAISApi.resourceDocs.filter(_.partialFunction == APIMethods_AccountInformationServiceAISApi.startConsentAuthorisationTransactionAuthorisation).head
resourceDocs += APIMethods_AccountInformationServiceAISApi.resourceDocs.filter(_.partialFunction == APIMethods_AccountInformationServiceAISApi.startConsentAuthorisationUpdatePsuAuthentication).head
resourceDocs += APIMethods_AccountInformationServiceAISApi.resourceDocs.filter(_.partialFunction == APIMethods_AccountInformationServiceAISApi.startConsentAuthorisationSelectPsuAuthenticationMethod).head
resourceDocs += APIMethods_AccountInformationServiceAISApi.resourceDocs.filter(_.partialFunction == APIMethods_AccountInformationServiceAISApi.updateConsentsPsuDataTransactionAuthorisation).head
resourceDocs += APIMethods_AccountInformationServiceAISApi.resourceDocs.filter(_.partialFunction == APIMethods_AccountInformationServiceAISApi.updateConsentsPsuDataUpdatePsuAuthentication).head
resourceDocs += APIMethods_AccountInformationServiceAISApi.resourceDocs.filter(_.partialFunction == APIMethods_AccountInformationServiceAISApi.updateConsentsPsuDataUpdateAuthorisationConfirmation).head
resourceDocs += APIMethods_AccountInformationServiceAISApi.resourceDocs.filter(_.partialFunction == APIMethods_AccountInformationServiceAISApi.updateConsentsPsuDataUpdateSelectPsuAuthenticationMethod).head
resourceDocs += APIMethods_AccountInformationServiceAISApi.resourceDocs.filter(_.partialFunction == APIMethods_AccountInformationServiceAISApi.getConsentScaStatus).head

}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,17 +3,18 @@ package code.api.berlin.group.v1_3
import java.text.SimpleDateFormat
import java.util.Date

import code.api.berlin.group.v1_3.model._
import code.api.util.APIUtil._
import code.api.util.{APIUtil, ConsentJWT, CustomJsonFormats, JwtUtil}
import code.bankconnectors.Connector
import code.consent.ConsentTrait
import code.model.ModeratedTransaction
import com.openbankproject.commons.model.enums.AccountRoutingScheme
import com.openbankproject.commons.model.{BankAccount, TransactionRequest, User, _}
import net.liftweb.common.Box.tryo
import net.liftweb.common.{Box, Full}
import net.liftweb.json
import net.liftweb.json.{JValue, parse}

import scala.collection.immutable.List

case class JvalueCaseClass(jvalueToCaseclass: JValue)
Expand Down Expand Up @@ -218,6 +219,11 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats {
_links: ConsentLinksV13
)

case class PutConsentResponseJson(
scaStatus: String,
_links: ConsentLinksV13
)


case class GetConsentResponseJson(
access: ConsentAccessJson,
Expand All @@ -231,6 +237,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats {

case class StartConsentAuthorisationJson(
scaStatus: String,
authorisationId: String,
pushMessage: String,
_links: ScaStatusJsonV13
)
Expand Down Expand Up @@ -502,6 +509,12 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats {
_links= ConsentLinksV13(s"/v1.3/consents/${consent.consentId}/authorisations")
)
}
def createPutConsentResponseJson(consent: ConsentTrait) : ScaStatusResponse = {
ScaStatusResponse(
scaStatus = consent.status.toLowerCase(),
_links = Some(LinksAll(scaStatus = Some(HrefType(Some(s"/v1.3/consents/${consent.consentId}/authorisations")))))
)
}

def createGetConsentResponseJson(createdConsent: ConsentTrait) : GetConsentResponseJson = {
val jsonWebTokenAsJValue: Box[ConsentJWT] = JwtUtil.getSignedPayloadAsJson(createdConsent.jsonWebToken)
Expand All @@ -522,6 +535,7 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats {
def createStartConsentAuthorisationJson(consent: ConsentTrait, challenge: ChallengeTrait) : StartConsentAuthorisationJson = {
StartConsentAuthorisationJson(
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??
)
Expand Down Expand Up @@ -603,22 +617,56 @@ object JSONFactory_BERLIN_GROUP_1_3 extends CustomJsonFormats {
)
}

def createStartPaymentCancellationAuthorisationsJson(challenges: List[ChallengeTrait],
paymentService: String,
paymentProduct: String,
paymentId: String): List[StartPaymentAuthorisationJson] = {
challenges.map(createStartPaymentCancellationAuthorisationJson(_, paymentService, paymentProduct, paymentId))
def createUpdatePaymentPsuDataTransactionAuthorisationJson(challenge: ChallengeTrait) = {
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}"))))
)
)
}
def createStartPaymentCancellationAuthorisationJson(challenge: ChallengeTrait,
paymentService: String,
paymentProduct: String,
paymentId: String
) = {
StartPaymentAuthorisationJson(
ScaStatusResponse(
scaStatus = challenge.scaStatus.map(_.toString).getOrElse(""),
authorisationId = challenge.challengeId,
psuMessage = "Please check your SMS at a mobile device.",
_links = ScaStatusJsonV13(s"/v1.3/${paymentService}/${paymentProduct}/${paymentId}/cancellation-authorisations/${challenge.challengeId}")
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}"))))
)
)
}

def createStartPaymentInitiationCancellationAuthorisation(
challenge: ChallengeTrait,
paymentService: String,
paymentProduct: String,
paymentId: String
) = {
UpdatePsuAuthenticationResponse(
scaStatus = challenge.scaStatus.map(_.toString).getOrElse(""),
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}"))))
)
)
}

def checkTransactionAuthorisation(JsonPost: JValue) = tryo {
JsonPost.extract[TransactionAuthorisation]
}.isDefined

def checkUpdatePsuAuthentication(JsonPost: JValue) = tryo {
JsonPost.extract[UpdatePsuAuthentication]
}.isDefined

def checkSelectPsuAuthenticationMethod(JsonPost: JValue) = tryo {
JsonPost.extract[SelectPsuAuthenticationMethod]
}.isDefined

def checkAuthorisationConfirmation(JsonPost: JValue) = tryo {
JsonPost.extract[AuthorisationConfirmation]
}.isDefined
}
Loading

0 comments on commit e865577

Please sign in to comment.