mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 17:37:00 +00:00
feature/added the getCounterpartyLimitStatus endpoint
This commit is contained in:
parent
4b9438110a
commit
dc8520bcd5
@ -5482,6 +5482,33 @@ object SwaggerDefinitionsJSON {
|
||||
max_total_amount = maxTotalAmountExample.value,
|
||||
max_number_of_transactions = maxNumberOfTransactionsExample.value.toInt
|
||||
)
|
||||
|
||||
val counterpartyLimitStatus = CounterpartyLimitStatus(
|
||||
currency_status = currencyExample.value,
|
||||
max_monthly_amount_status = maxSingleAmountExample.value,
|
||||
max_number_of_monthly_transactions_status = maxNumberOfMonthlyTransactionsExample.value.toInt,
|
||||
max_yearly_amount_status = maxYearlyAmountExample.value,
|
||||
max_number_of_yearly_transactions_status = maxNumberOfYearlyTransactionsExample.value.toInt,
|
||||
max_total_amount_status = maxTotalAmountExample.value,
|
||||
max_number_of_transactions_status = maxNumberOfTransactionsExample.value.toInt
|
||||
)
|
||||
|
||||
val counterpartyLimitStatusV510 = CounterpartyLimitStatusV510(
|
||||
counterparty_limit_id = counterpartyLimitIdExample.value,
|
||||
bank_id = bankIdExample.value,
|
||||
account_id = accountIdExample.value,
|
||||
view_id = viewIdExample.value,
|
||||
counterparty_id = counterpartyIdExample.value,
|
||||
currency = currencyExample.value,
|
||||
max_single_amount = maxSingleAmountExample.value,
|
||||
max_monthly_amount = maxMonthlyAmountExample.value,
|
||||
max_number_of_monthly_transactions = maxNumberOfMonthlyTransactionsExample.value.toInt,
|
||||
max_yearly_amount = maxYearlyAmountExample.value,
|
||||
max_number_of_yearly_transactions = maxNumberOfYearlyTransactionsExample.value.toInt,
|
||||
max_total_amount = maxTotalAmountExample.value,
|
||||
max_number_of_transactions = maxNumberOfTransactionsExample.value.toInt,
|
||||
status = counterpartyLimitStatus
|
||||
)
|
||||
|
||||
val atmsJsonV510 = AtmsJsonV510(
|
||||
atms = List(atmJsonV510)
|
||||
|
||||
@ -54,6 +54,7 @@ import net.liftweb.mapper.By
|
||||
import net.liftweb.util.Helpers.tryo
|
||||
import net.liftweb.util.{Helpers, StringHelpers}
|
||||
|
||||
import java.time.{LocalDate, ZoneId}
|
||||
import java.util.Date
|
||||
import scala.collection.immutable.{List, Nil}
|
||||
import scala.collection.mutable.ArrayBuffer
|
||||
@ -3117,6 +3118,149 @@ trait APIMethods510 {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
staticResourceDocs += ResourceDoc(
|
||||
getCounterpartyLimitStatus,
|
||||
implementedInApiVersion,
|
||||
nameOf(getCounterpartyLimitStatus),
|
||||
"GET",
|
||||
"/banks/BANK_ID/accounts/ACCOUNT_ID/views/VIEW_ID/counterparties/COUNTERPARTY_ID/limits-status",
|
||||
"Get Counterparty Limit Status",
|
||||
s"""Get Counterparty Limit Status.""",
|
||||
EmptyBody,
|
||||
counterpartyLimitStatusV510,
|
||||
List(
|
||||
$UserNotLoggedIn,
|
||||
$BankNotFound,
|
||||
$BankAccountNotFound,
|
||||
$UserNoPermissionAccessView,
|
||||
$CounterpartyNotFoundByCounterpartyId,
|
||||
InvalidJsonFormat,
|
||||
UnknownError
|
||||
),
|
||||
List(apiTagCounterpartyLimits),
|
||||
)
|
||||
lazy val getCounterpartyLimitStatus: OBPEndpoint = {
|
||||
case "banks" :: BankId(bankId) :: "accounts" :: AccountId(accountId) :: "views" :: ViewId(viewId) ::"counterparties" :: CounterpartyId(counterpartyId) ::"limits-status" :: Nil JsonGet _ => {
|
||||
cc => implicit val ec = EndpointContext(Some(cc))
|
||||
for {
|
||||
(counterpartyLimit, callContext) <- NewStyle.function.getCounterpartyLimit(
|
||||
bankId.value,
|
||||
accountId.value,
|
||||
viewId.value,
|
||||
counterpartyId.value,
|
||||
cc.callContext
|
||||
)
|
||||
// Get the first day of the current month
|
||||
firstDayOfMonth: LocalDate = LocalDate.now().withDayOfMonth(1)
|
||||
|
||||
// Get the last day of the current month
|
||||
lastDayOfMonth: LocalDate = LocalDate.now().withDayOfMonth(
|
||||
LocalDate.now().lengthOfMonth()
|
||||
)
|
||||
// Get the first day of the current year
|
||||
firstDayOfYear: LocalDate = LocalDate.now().withDayOfYear(1)
|
||||
|
||||
// Get the last day of the current year
|
||||
lastDayOfYear: LocalDate = LocalDate.now().withDayOfYear(
|
||||
LocalDate.now().lengthOfYear()
|
||||
)
|
||||
|
||||
(fromBankAccount, callContext) <- NewStyle.function.getBankAccount(bankId, accountId, callContext)
|
||||
// Convert LocalDate to Date
|
||||
zoneId: ZoneId = ZoneId.systemDefault()
|
||||
firstCurrentMonthDate: Date = Date.from(firstDayOfMonth.atStartOfDay(zoneId).toInstant)
|
||||
lastCurrentMonthDate: Date = Date.from(lastDayOfMonth.atStartOfDay(zoneId).toInstant)
|
||||
|
||||
firstCurrentYearDate: Date = Date.from(firstDayOfYear.atStartOfDay(zoneId).toInstant)
|
||||
lastCurrentYearDate: Date = Date.from(lastDayOfYear.atStartOfDay(zoneId).toInstant)
|
||||
|
||||
defaultFromDate: Date = theEpochTime
|
||||
defaultToDate: Date = APIUtil.ToDateInFuture
|
||||
|
||||
(sumOfTransactionsFromAccountToCounterpartyMonthly, callContext) <- NewStyle.function.getSumOfTransactionsFromAccountToCounterparty(
|
||||
bankId,
|
||||
accountId,
|
||||
counterpartyId,
|
||||
firstCurrentMonthDate: Date,
|
||||
lastCurrentMonthDate: Date,
|
||||
callContext: Option[CallContext]
|
||||
)
|
||||
|
||||
(countOfTransactionsFromAccountToCounterpartyMonthly, callContext) <- NewStyle.function.getCountOfTransactionsFromAccountToCounterparty(
|
||||
bankId,
|
||||
accountId,
|
||||
counterpartyId,
|
||||
firstCurrentMonthDate: Date,
|
||||
lastCurrentMonthDate: Date,
|
||||
callContext: Option[CallContext]
|
||||
)
|
||||
|
||||
(sumOfTransactionsFromAccountToCounterpartyYearly, callContext) <- NewStyle.function.getSumOfTransactionsFromAccountToCounterparty(
|
||||
bankId,
|
||||
accountId,
|
||||
counterpartyId,
|
||||
firstCurrentYearDate: Date,
|
||||
lastCurrentYearDate: Date,
|
||||
callContext: Option[CallContext]
|
||||
)
|
||||
|
||||
(countOfTransactionsFromAccountToCounterpartyYearly, callContext) <- NewStyle.function.getCountOfTransactionsFromAccountToCounterparty(
|
||||
bankId,
|
||||
accountId,
|
||||
counterpartyId,
|
||||
firstCurrentYearDate: Date,
|
||||
lastCurrentYearDate: Date,
|
||||
callContext: Option[CallContext]
|
||||
)
|
||||
|
||||
(sumOfAllTransactionsFromAccountToCounterparty, callContext) <- NewStyle.function.getSumOfTransactionsFromAccountToCounterparty(
|
||||
bankId,
|
||||
accountId,
|
||||
counterpartyId,
|
||||
defaultFromDate: Date,
|
||||
defaultToDate: Date,
|
||||
callContext: Option[CallContext]
|
||||
)
|
||||
|
||||
(countOfAllTransactionsFromAccountToCounterparty, callContext) <- NewStyle.function.getCountOfTransactionsFromAccountToCounterparty(
|
||||
bankId,
|
||||
accountId,
|
||||
counterpartyId,
|
||||
defaultFromDate: Date,
|
||||
defaultToDate: Date,
|
||||
callContext: Option[CallContext]
|
||||
)
|
||||
|
||||
} yield {
|
||||
(CounterpartyLimitStatusV510(
|
||||
counterparty_limit_id = counterpartyLimit.counterpartyLimitId: String,
|
||||
bank_id = counterpartyLimit.bankId: String,
|
||||
account_id = counterpartyLimit.accountId: String,
|
||||
view_id = counterpartyLimit.viewId: String,
|
||||
counterparty_id = counterpartyLimit.counterpartyId: String,
|
||||
currency = counterpartyLimit.currency: String,
|
||||
max_single_amount = counterpartyLimit.maxSingleAmount.toString(),
|
||||
max_monthly_amount = counterpartyLimit.maxMonthlyAmount.toString(),
|
||||
max_number_of_monthly_transactions = counterpartyLimit.maxNumberOfMonthlyTransactions: Int,
|
||||
max_yearly_amount = counterpartyLimit.maxYearlyAmount.toString(),
|
||||
max_number_of_yearly_transactions = counterpartyLimit.maxNumberOfYearlyTransactions: Int,
|
||||
max_total_amount = counterpartyLimit.maxTotalAmount.toString(),
|
||||
max_number_of_transactions = counterpartyLimit.maxNumberOfTransactions: Int,
|
||||
status = CounterpartyLimitStatus(
|
||||
currency_status = fromBankAccount.currency,
|
||||
max_monthly_amount_status = sumOfTransactionsFromAccountToCounterpartyMonthly.amount,
|
||||
max_number_of_monthly_transactions_status = countOfTransactionsFromAccountToCounterpartyMonthly,
|
||||
max_yearly_amount_status = sumOfTransactionsFromAccountToCounterpartyYearly.amount,
|
||||
max_number_of_yearly_transactions_status = countOfTransactionsFromAccountToCounterpartyYearly,
|
||||
max_total_amount_status = sumOfAllTransactionsFromAccountToCounterparty.amount,
|
||||
max_number_of_transactions_status = countOfAllTransactionsFromAccountToCounterparty
|
||||
)
|
||||
), HttpCode.`200`(callContext))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
staticResourceDocs += ResourceDoc(
|
||||
deleteCounterpartyLimit,
|
||||
implementedInApiVersion,
|
||||
|
||||
@ -216,6 +216,33 @@ case class CounterpartyLimitV510(
|
||||
max_number_of_transactions: Int
|
||||
)
|
||||
|
||||
case class CounterpartyLimitStatus(
|
||||
currency_status: String,
|
||||
max_monthly_amount_status: String,
|
||||
max_number_of_monthly_transactions_status: Int,
|
||||
max_yearly_amount_status: String,
|
||||
max_number_of_yearly_transactions_status: Int,
|
||||
max_total_amount_status: String,
|
||||
max_number_of_transactions_status: Int
|
||||
)
|
||||
|
||||
case class CounterpartyLimitStatusV510(
|
||||
counterparty_limit_id: String,
|
||||
bank_id: String,
|
||||
account_id: String,
|
||||
view_id: String,
|
||||
counterparty_id: String,
|
||||
currency: String,
|
||||
max_single_amount: String,
|
||||
max_monthly_amount: String,
|
||||
max_number_of_monthly_transactions: Int,
|
||||
max_yearly_amount: String,
|
||||
max_number_of_yearly_transactions: Int,
|
||||
max_total_amount: String,
|
||||
max_number_of_transactions: Int,
|
||||
status: CounterpartyLimitStatus
|
||||
)
|
||||
|
||||
case class AtmJsonV510 (
|
||||
id : Option[String],
|
||||
bank_id : String,
|
||||
|
||||
Loading…
Reference in New Issue
Block a user