feature/Transaction Request Reasons - WIP

This commit is contained in:
Marko Milić 2020-07-24 16:22:34 +02:00
parent 16530421d0
commit 7356b9fd4a
10 changed files with 78 additions and 7 deletions

View File

@ -8,7 +8,7 @@
<groupId>com.tesobe</groupId>
<artifactId>obp-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.6.1</version>
<version>1.6.2</version>
</parent>
<artifactId>obp-api</artifactId>
<packaging>war</packaging>

View File

@ -104,7 +104,7 @@ import code.transactionChallenge.MappedExpectedChallengeAnswer
import code.transactionStatusScheduler.TransactionStatusScheduler
import code.transaction_types.MappedTransactionType
import code.transactionattribute.MappedTransactionAttribute
import code.transactionrequests.{MappedTransactionRequest, MappedTransactionRequestTypeCharge}
import code.transactionrequests.{MappedTransactionRequest, MappedTransactionRequestTypeCharge, TransactionRequestReasons}
import code.usercustomerlinks.MappedUserCustomerLink
import code.userlocks.UserLocks
import code.util.Helper
@ -816,6 +816,7 @@ object ToSchemify {
MappedKycStatus,
MappedSocialMedia,
MappedTransactionType,
TransactionRequestReasons,
MappedMeeting,
MappedMeetingInvitee,
MappedBankAccountData,

View File

@ -16,7 +16,7 @@ import code.api.v3_0_0.JSONFactory300.createBranchJsonV300
import code.api.v3_0_0.custom.JSONFactoryCustom300
import code.api.v3_0_0.{LobbyJsonV330, _}
import code.api.v3_1_0.{AccountBalanceV310, AccountsBalancesV310Json, BadLoginStatusJson, ContactDetailsJson, CustomerWithAttributesJsonV310, InviteeJson, ObpApiLoopbackJson, PhysicalCardWithAttributesJsonV310, PutUpdateCustomerEmailJsonV310, _}
import code.api.v4_0_0.{APIInfoJson400, AccountTagJSON, AccountTagsJSON, AttributeDefinitionJsonV400, AttributeDefinitionResponseJsonV400, AttributeDefinitionsResponseJsonV400, ChallengeJsonV400, CustomerAttributeJsonV400, CustomerAttributesResponseJson, DirectDebitJsonV400, EnergySource400, HostedAt400, HostedBy400, ModeratedAccountJSON400, ModeratedCoreAccountJsonV400, PostAccountAccessJsonV400, PostAccountTagJSON, PostCustomerPhoneNumberJsonV400, PostDirectDebitJsonV400, PostStandingOrderJsonV400, PostViewJsonV400, RefundJson, RevokedJsonV400, StandingOrderJsonV400, TransactionAttributeJsonV400, TransactionAttributeResponseJson, TransactionAttributesResponseJson, TransactionRequestBodyRefundJsonV400, TransactionRequestWithChargeJSON400, UserLockStatusJson, When}
import code.api.v4_0_0.{APIInfoJson400, AccountTagJSON, AccountTagsJSON, AttributeDefinitionJsonV400, AttributeDefinitionResponseJsonV400, AttributeDefinitionsResponseJsonV400, ChallengeJsonV400, CustomerAttributeJsonV400, CustomerAttributesResponseJson, DirectDebitJsonV400, EnergySource400, HostedAt400, HostedBy400, ModeratedAccountJSON400, ModeratedCoreAccountJsonV400, PostAccountAccessJsonV400, PostAccountTagJSON, PostCustomerPhoneNumberJsonV400, PostDirectDebitJsonV400, PostStandingOrderJsonV400, PostViewJsonV400, RefundJson, RevokedJsonV400, StandingOrderJsonV400, TransactionAttributeJsonV400, TransactionAttributeResponseJson, TransactionAttributesResponseJson, TransactionRequestBodyRefundJsonV400, TransactionRequestBodySEPAJsonV400, TransactionRequestWithChargeJSON400, UserLockStatusJson, When}
import code.api.v3_1_0.{AccountBalanceV310, AccountsBalancesV310Json, BadLoginStatusJson, ContactDetailsJson, InviteeJson, ObpApiLoopbackJson, PhysicalCardWithAttributesJsonV310, PutUpdateCustomerEmailJsonV310, _}
import code.branches.Branches.{Branch, DriveUpString, LobbyString}
import code.consent.ConsentStatus
@ -1936,6 +1936,22 @@ object SwaggerDefinitionsJSON {
"SHARED",
Some("20881230")
)
val transactionRequestBodySEPAJsonV400 = TransactionRequestBodySEPAJsonV400(
amountOfMoneyJsonV121,
ibanJson,
description = "This is a SEPA Transaction Request",
charge_policy = "SHARED",
future_date = Some("20881230"),
reason = Some(List(
TransactionRequestReason(
code = "410",
document_number = Some("2020/154"),
amount = Some("100"),
currency = Some("EUR"),
description = Some("international payment")
)
))
)
val transactionRequestBodyFreeFormJSON = TransactionRequestBodyFreeFormJSON(
amountOfMoneyJsonV121,
"This is a FREE_FORM Transaction Request",

View File

@ -350,7 +350,7 @@ trait APIMethods400 {
|$transactionRequestGeneralText
|
""".stripMargin,
transactionRequestBodySEPAJSON,
transactionRequestBodySEPAJsonV400,
transactionRequestWithChargeJSON210,
List(
$UserNotLoggedIn,

View File

@ -35,7 +35,7 @@ import code.api.v1_2_1.JSONFactory.{createAmountOfMoneyJSON, createOwnersJSON}
import code.api.v1_2_1.{BankRoutingJsonV121, JSONFactory, UserJSONV121, ViewJSONV121}
import code.api.v1_4_0.JSONFactory1_4_0.TransactionRequestAccountJsonV140
import code.api.v2_0_0.TransactionRequestChargeJsonV200
import code.api.v2_1_0.ResourceUserJSON
import code.api.v2_1_0.{IbanJson, ResourceUserJSON}
import code.api.v3_0_0.JSONFactory300.createAccountRoutingsJSON
import code.api.v3_0_0.{CustomerAttributeResponseJsonV300, ViewBasicV300}
import code.api.v3_1_0.AccountAttributeResponseJson
@ -211,6 +211,14 @@ case class PostViewJsonV400(view_id: String, is_system: Boolean)
case class PostAccountAccessJsonV400(user_id: String, view: PostViewJsonV400)
case class RevokedJsonV400(revoked: Boolean)
case class TransactionRequestBodySEPAJsonV400(
value: AmountOfMoneyJsonV121,
to: IbanJson,
description: String,
charge_policy: String,
future_date: Option[String] = None,
reason: Option[List[TransactionRequestReason]] = None
) extends TransactionRequestCommonBodyJSON
// the data from endpoint, extract as valid JSON
case class TransactionRequestBodyRefundJsonV400(
to: TransactionRequestAccountJsonV140,

View File

@ -0,0 +1,29 @@
package code.transactionrequests
import code.util.UUIDString
import com.openbankproject.commons.model.TransactionRequestReasonsTrait
import net.liftweb.mapper._
class TransactionRequestReasons extends TransactionRequestReasonsTrait with LongKeyedMapper[TransactionRequestReasons] with IdPK with CreatedUpdated{
def getSingleton = TransactionRequestReasons
object TransactionRequestReasonId extends UUIDString(this) // Add class for this
object Code extends MappedString(this, 8)
object DocumentNumber extends MappedString(this, 100)
object Currency extends MappedString(this, 3)
object Amount extends MappedString(this, 32)
object Description extends MappedString(this, 512)
override def transactionRequestReasonId: String = TransactionRequestReasonId.get
override def code: String = Code.get
override def documentNumber: String = DocumentNumber.get
override def amount: String = Amount.get
override def currency: String = Currency.get
override def description: String = Description.get
}
object TransactionRequestReasons extends TransactionRequestReasons with LongKeyedMetaMapper[TransactionRequestReasons] {}

View File

@ -7,7 +7,7 @@
<groupId>com.tesobe</groupId>
<artifactId>obp-parent</artifactId>
<relativePath>../pom.xml</relativePath>
<version>1.6.1</version>
<version>1.6.2</version>
</parent>
<artifactId>obp-commons</artifactId>
<packaging>jar</packaging>

View File

@ -706,6 +706,14 @@ case class TransactionRequestBody (
val description : String
)
case class TransactionRequestReason(
code: String,
document_number: Option[String],
amount: Option[String],
currency: Option[String],
description: Option[String]
)
case class Transaction(
//A universally unique id
@ignore

View File

@ -442,6 +442,15 @@ trait TransactionRequestTypeCharge {
def chargeSummary: String
}
trait TransactionRequestReasonsTrait {
def transactionRequestReasonId: String
def code: String
def documentNumber: String
def amount: String
def currency: String
def description: String
}
trait DirectDebitTrait {
def directDebitId: String
def bankId: String

View File

@ -5,7 +5,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>com.tesobe</groupId>
<artifactId>obp-parent</artifactId>
<version>1.6.1</version>
<version>1.6.2</version>
<packaging>pom</packaging>
<name>Open Bank Project API Parent</name>
<inceptionYear>2011</inceptionYear>