mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 13:07:02 +00:00
Added v6.0.0 of GET bank GET banks which return bank_id rather than id
This commit is contained in:
parent
dc53c9367b
commit
78229c8fa6
@ -23,7 +23,8 @@ import code.api.v3_0_0.JSONFactory300
|
||||
import code.api.v3_0_0.JSONFactory300.createAggregateMetricJson
|
||||
import code.api.v2_0_0.JSONFactory200
|
||||
import code.api.v3_1_0.{JSONFactory310, PostCustomerNumberJsonV310}
|
||||
import code.api.v4_0_0.CallLimitPostJsonV400
|
||||
import code.api.v1_2_1.BankRoutingJsonV121
|
||||
import code.api.v4_0_0.{BankAttributeBankResponseJsonV400, CallLimitPostJsonV400}
|
||||
import code.api.v4_0_0.JSONFactory400.createCallsLimitJson
|
||||
import code.api.v5_0_0.JSONFactory500
|
||||
import code.api.v5_0_0.{ViewJsonV500, ViewsJsonV500}
|
||||
@ -917,6 +918,89 @@ trait APIMethods600 {
|
||||
}
|
||||
}
|
||||
|
||||
staticResourceDocs += ResourceDoc(
|
||||
getBanks,
|
||||
implementedInApiVersion,
|
||||
nameOf(getBanks),
|
||||
"GET",
|
||||
"/banks",
|
||||
"Get Banks",
|
||||
"""Get banks on this API instance
|
||||
|Returns a list of banks supported on this server:
|
||||
|
|
||||
|- bank_id used as parameter in URLs
|
||||
|- Short and full name of bank
|
||||
|- Logo URL
|
||||
|- Website
|
||||
|
|
||||
|User Authentication is Optional. The User need not be logged in.
|
||||
|""",
|
||||
EmptyBody,
|
||||
BanksJsonV600(List(BankJsonV600(
|
||||
bank_id = "gh.29.uk",
|
||||
short_name = "short_name",
|
||||
full_name = "full_name",
|
||||
logo = "logo",
|
||||
website = "www.openbankproject.com",
|
||||
bank_routings = List(BankRoutingJsonV121("OBP", "gh.29.uk")),
|
||||
attributes = Some(List(BankAttributeBankResponseJsonV400("OVERDRAFT_LIMIT", "1000")))
|
||||
))),
|
||||
List(UnknownError),
|
||||
apiTagBank :: apiTagPSD2AIS :: apiTagPsd2 :: Nil
|
||||
)
|
||||
|
||||
lazy val getBanks: OBPEndpoint = {
|
||||
case "banks" :: Nil JsonGet _ => { cc =>
|
||||
implicit val ec = EndpointContext(Some(cc))
|
||||
for {
|
||||
(banks, callContext) <- NewStyle.function.getBanks(cc.callContext)
|
||||
} yield {
|
||||
(JSONFactory600.createBanksJsonV600(banks), HttpCode.`200`(callContext))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
staticResourceDocs += ResourceDoc(
|
||||
getBank,
|
||||
implementedInApiVersion,
|
||||
nameOf(getBank),
|
||||
"GET",
|
||||
"/banks/BANK_ID",
|
||||
"Get Bank",
|
||||
"""Get the bank specified by BANK_ID
|
||||
|Returns information about a single bank specified by BANK_ID including:
|
||||
|
|
||||
|- bank_id: The unique identifier of this bank
|
||||
|- Short and full name of bank
|
||||
|- Logo URL
|
||||
|- Website
|
||||
|""",
|
||||
EmptyBody,
|
||||
BankJsonV600(
|
||||
bank_id = "gh.29.uk",
|
||||
short_name = "short_name",
|
||||
full_name = "full_name",
|
||||
logo = "logo",
|
||||
website = "www.openbankproject.com",
|
||||
bank_routings = List(BankRoutingJsonV121("OBP", "gh.29.uk")),
|
||||
attributes = Some(List(BankAttributeBankResponseJsonV400("OVERDRAFT_LIMIT", "1000")))
|
||||
),
|
||||
List(UnknownError, BankNotFound),
|
||||
apiTagBank :: apiTagPSD2AIS :: apiTagPsd2 :: Nil
|
||||
)
|
||||
|
||||
lazy val getBank: OBPEndpoint = {
|
||||
case "banks" :: BankId(bankId) :: Nil JsonGet _ => { cc =>
|
||||
implicit val ec = EndpointContext(Some(cc))
|
||||
for {
|
||||
(bank, callContext) <- NewStyle.function.getBank(bankId, cc.callContext)
|
||||
(attributes, callContext) <- NewStyle.function.getBankAttributesByBank(bankId, callContext)
|
||||
} yield {
|
||||
(JSONFactory600.createBankJsonV600(bank, attributes), HttpCode.`200`(callContext))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
lazy val getCurrentConsumer: OBPEndpoint = {
|
||||
case "consumers" :: "current" :: Nil JsonGet _ => {
|
||||
cc => {
|
||||
|
||||
@ -334,6 +334,18 @@ case class StoredProcedureConnectorHealthJsonV600(
|
||||
error_message: Option[String]
|
||||
)
|
||||
|
||||
case class BankJsonV600(
|
||||
bank_id: String,
|
||||
short_name: String,
|
||||
full_name: String,
|
||||
logo: String,
|
||||
website: String,
|
||||
bank_routings: List[BankRoutingJsonV121],
|
||||
attributes: Option[List[BankAttributeBankResponseJsonV400]]
|
||||
)
|
||||
|
||||
case class BanksJsonV600(banks: List[BankJsonV600])
|
||||
|
||||
case class PostCustomerJsonV600(
|
||||
legal_name: String,
|
||||
customer_number: Option[String] = None,
|
||||
@ -1397,6 +1409,34 @@ object JSONFactory600 extends CustomJsonFormats with MdcLoggable {
|
||||
)
|
||||
}
|
||||
|
||||
def createBankJsonV600(bank: Bank, attributes: List[BankAttributeTrait] = Nil): BankJsonV600 = {
|
||||
val obp = BankRoutingJsonV121("OBP", bank.bankId.value)
|
||||
val bic = BankRoutingJsonV121("BIC", bank.swiftBic)
|
||||
val routings = bank.bankRoutingScheme match {
|
||||
case "OBP" => bic :: BankRoutingJsonV121(bank.bankRoutingScheme, bank.bankRoutingAddress) :: Nil
|
||||
case "BIC" => obp :: BankRoutingJsonV121(bank.bankRoutingScheme, bank.bankRoutingAddress) :: Nil
|
||||
case _ => obp :: bic :: BankRoutingJsonV121(bank.bankRoutingScheme, bank.bankRoutingAddress) :: Nil
|
||||
}
|
||||
BankJsonV600(
|
||||
bank_id = stringOrNull(bank.bankId.value),
|
||||
short_name = stringOrNull(bank.shortName),
|
||||
full_name = stringOrNull(bank.fullName),
|
||||
logo = stringOrNull(bank.logoUrl),
|
||||
website = stringOrNull(bank.websiteUrl),
|
||||
bank_routings = routings.filter(a => stringOrNull(a.address) != null),
|
||||
attributes = Option(
|
||||
attributes.filter(_.isActive == Some(true)).map(a => BankAttributeBankResponseJsonV400(
|
||||
name = a.name,
|
||||
value = a.value)
|
||||
)
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
def createBanksJsonV600(banks: List[Bank]): BanksJsonV600 = {
|
||||
BanksJsonV600(banks.map(bank => createBankJsonV600(bank, Nil)))
|
||||
}
|
||||
|
||||
/**
|
||||
* Create v6.0.0 response for GET /my/dynamic-entities
|
||||
*
|
||||
|
||||
Loading…
Reference in New Issue
Block a user