mirror of
https://github.com/OpenBankProject/API-Explorer.git
synced 2026-02-06 10:47:23 +00:00
Introduce CompleteViewsJson
This commit is contained in:
parent
b1c76bbce0
commit
74823fe104
@ -287,6 +287,22 @@ class Boot extends Loggable{
|
||||
} else Empty
|
||||
}
|
||||
|
||||
def getCompleteAccountViews(URLParameters: List[String]): Box[(List[CompleteViewJson])] = {
|
||||
if (URLParameters.length == 2) {
|
||||
val bank = URLParameters(0)
|
||||
val account = URLParameters(1)
|
||||
|
||||
logOrReturnResult {
|
||||
for {
|
||||
viewsJson <- ObpAPI.getCompleteViews(bank, account)
|
||||
} yield {
|
||||
viewsJson
|
||||
}
|
||||
|
||||
}
|
||||
} else Empty
|
||||
}
|
||||
|
||||
def getPermissions(URLParameters: List[String]): Box[(PermissionsJson, AccountJson, List[ViewJson], PermissionsUrlParams)] = {
|
||||
if (URLParameters.length == 2) {
|
||||
val bank = URLParameters(0)
|
||||
@ -311,7 +327,7 @@ class Boot extends Loggable{
|
||||
//test if the bank exists and if the user have access to management page
|
||||
Menu.params[(OtherAccountsJson, ManagementURLParams)]("Management", "management", getAccount _ , t => List("")) / "banks" / * / "accounts" / * / "management",
|
||||
|
||||
Menu.params[(List[ViewJson])]("Views","Views Overview", getAccountViews _ , x => List("")) / "banks" / * / "accounts" / * / "views" / "list",
|
||||
Menu.params[(List[CompleteViewJson])]("Views","Views Overview", getCompleteAccountViews _ , x => List("")) / "banks" / * / "accounts" / * / "views" / "list",
|
||||
|
||||
Menu.params[(List[ViewJson], AccountJson, PermissionsUrlParams)]("Create Permission", "create permissions", getAccountViewsAndPermission _ , x => List(""))
|
||||
/ "permissions" / "banks" / * / "accounts" / * / "create" ,
|
||||
|
||||
@ -112,14 +112,26 @@ object ObpAPI extends Loggable {
|
||||
def getPermissions(bankId: String, accountId : String) : Box[PermissionsJson] = {
|
||||
ObpGet("/v1.2.1/banks/" + bankId + "/accounts/" + accountId + "/permissions").flatMap(x => x.extractOpt[PermissionsJson])
|
||||
}
|
||||
|
||||
|
||||
def getViews(bankId: String, accountId: String) : Box[List[ViewJson]] = {
|
||||
for {
|
||||
json <- ObpGet("/v1.2/banks/" + bankId + "/accounts/" + accountId + "/views")
|
||||
viewsJson <- Box(json.extractOpt[ViewsJson])
|
||||
} yield viewsJson.views.getOrElse(Nil)
|
||||
}
|
||||
|
||||
def getCompleteViews(bankId: String, accountId: String) : Box[List[CompleteViewJson]] = {
|
||||
for {
|
||||
json <- ObpGet("/v1.2/banks/" + bankId + "/accounts/" + accountId + "/views")
|
||||
} yield {
|
||||
println("views:"+ viewsJson.views)
|
||||
viewsJson.views.getOrElse(Nil)
|
||||
json \ "views" match {
|
||||
case JArray(l) => l.map(viewJson =>
|
||||
viewJson.values match{
|
||||
case vals: Map[String, Any] => CompleteViewJson(vals)
|
||||
case _ => CompleteViewJson(Map.empty)
|
||||
})
|
||||
case _ => Nil
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -472,75 +484,36 @@ object ObpJson {
|
||||
case class AccountBalanceJson(currency: Option[String],
|
||||
amount: Option[String])
|
||||
|
||||
class ViewJson(
|
||||
val id: Option[String],
|
||||
val short_name: Option[String],
|
||||
val description: Option[String],
|
||||
val is_public: Option[Boolean],
|
||||
val which_alias_to_use: Option[String],
|
||||
val hide_metadata_if_alias_used : Option[Boolean],
|
||||
val can_see_transaction_this_bank_account : Option[Boolean],
|
||||
val can_see_transaction_other_bank_account : Option[Boolean],
|
||||
val can_see_transaction_metadata : Option[Boolean],
|
||||
val can_see_transaction_label : Option[Boolean],
|
||||
val can_see_transaction_amount : Option[Boolean],
|
||||
val can_see_transaction_type : Option[Boolean],
|
||||
val can_see_transaction_currency : Option[Boolean],
|
||||
val can_see_transaction_start_date : Option[Boolean],
|
||||
val can_see_transaction_finish_date : Option[Boolean],
|
||||
val can_see_transaction_balance : Option[Boolean],
|
||||
val can_see_comments : Option[Boolean],
|
||||
val can_see_narrative : Option[Boolean],
|
||||
val can_see_tags : Option[Boolean],
|
||||
val can_see_images : Option[Boolean],
|
||||
val can_see_bank_account_owners : Option[Boolean],
|
||||
val can_see_bank_account_type : Option[Boolean],
|
||||
val can_see_bank_account_balance : Option[Boolean],
|
||||
val can_see_bank_account_currency : Option[Boolean],
|
||||
val can_see_bank_account_label : Option[Boolean],
|
||||
val can_see_bank_account_national_identifier : Option[Boolean],
|
||||
val can_see_bank_account_swift_bic : Option[Boolean],
|
||||
val can_see_bank_account_iban : Option[Boolean],
|
||||
val can_see_bank_account_number : Option[Boolean],
|
||||
val can_see_bank_account_bank_name : Option[Boolean],
|
||||
val can_see_other_account_national_identifier : Option[Boolean],
|
||||
val can_see_other_account_swift_bic : Option[Boolean],
|
||||
val can_see_other_account_iban : Option[Boolean],
|
||||
val can_see_other_account_bank_name : Option[Boolean],
|
||||
val can_see_other_account_number : Option[Boolean],
|
||||
val can_see_other_account_metadata : Option[Boolean],
|
||||
val can_see_other_account_kind : Option[Boolean],
|
||||
val can_see_more_info : Option[Boolean],
|
||||
val can_see_url : Option[Boolean],
|
||||
val can_see_image_url : Option[Boolean],
|
||||
val can_see_open_corporates_url : Option[Boolean],
|
||||
val can_see_corporate_location : Option[Boolean],
|
||||
val can_see_physical_location : Option[Boolean],
|
||||
val can_see_public_alias : Option[Boolean],
|
||||
val can_see_private_alias : Option[Boolean],
|
||||
val can_add_more_info : Option[Boolean],
|
||||
val can_add_url : Option[Boolean],
|
||||
val can_add_image_url : Option[Boolean],
|
||||
val can_add_open_corporates_url : Option[Boolean],
|
||||
val can_add_corporate_location : Option[Boolean],
|
||||
val can_add_physical_location : Option[Boolean],
|
||||
val can_add_public_alias : Option[Boolean],
|
||||
val can_add_private_alias : Option[Boolean],
|
||||
val can_delete_corporate_location : Option[Boolean],
|
||||
val can_delete_physical_location : Option[Boolean],
|
||||
val can_edit_narrative : Option[Boolean],
|
||||
val can_add_comment : Option[Boolean],
|
||||
val can_delete_comment : Option[Boolean],
|
||||
val can_add_tag : Option[Boolean],
|
||||
val can_delete_tag : Option[Boolean],
|
||||
val can_add_image : Option[Boolean],
|
||||
val can_delete_image : Option[Boolean],
|
||||
val can_add_where_tag : Option[Boolean],
|
||||
val can_see_where_tag : Option[Boolean],
|
||||
val can_delete_where_tag : Option[Boolean]
|
||||
)
|
||||
|
||||
//simplified version of what we actually get back from the api
|
||||
case class ViewJson(
|
||||
id: Option[String],
|
||||
short_name: Option[String],
|
||||
description: Option[String],
|
||||
is_public: Option[Boolean])
|
||||
|
||||
case class ViewsJson(views: Option[List[ViewJson]])
|
||||
|
||||
case class CompleteViewJson(json: Map[String, Any]){
|
||||
val id: Option[String] = json.get("id") match {
|
||||
case s:Some[String] => s
|
||||
case _ => None
|
||||
}
|
||||
|
||||
val shortName: Option[String] = json.get("short_name") match {
|
||||
case s:Some[String] => s
|
||||
case _ => None
|
||||
}
|
||||
|
||||
val description: Option[String] = json.get("description") match {
|
||||
case s:Some[String] => s
|
||||
case _ => None
|
||||
}
|
||||
|
||||
val isPublic: Option[Boolean] = json.get("is_public") match {
|
||||
case b:Some[Boolean] => b
|
||||
case _ => None
|
||||
}
|
||||
}
|
||||
|
||||
case class AccountJson(id: Option[String],
|
||||
label: Option[String],
|
||||
|
||||
@ -3,26 +3,23 @@ package code.snippet
|
||||
import net.liftweb.util.Helpers._
|
||||
import scala.xml.NodeSeq
|
||||
|
||||
import code.lib.ObpJson.ViewJson
|
||||
import code.lib.ObpJson.CompleteViewJson
|
||||
|
||||
class ViewsOverview(views : List[ViewJson]) {
|
||||
class ViewsOverview(views : List[CompleteViewJson]) {
|
||||
|
||||
def showAll(xhtml: NodeSeq) : NodeSeq = {
|
||||
"#listedViews" #> views.toString()
|
||||
def showAll(xhtml: NodeSeq) : NodeSeq ={
|
||||
|
||||
views.flatMap {
|
||||
view => {
|
||||
val id = view.id.getOrElse("")
|
||||
val short_name = view.short_name.getOrElse("")
|
||||
val description = view.description.getOrElse("")
|
||||
val id = view.id
|
||||
val shortName = view.shortName
|
||||
val description = view.description
|
||||
|
||||
val viewId = ".view_name [id]" #> id
|
||||
val viewShortName = ".view_name *" #> short_name
|
||||
val viewDescription = ".view_description *" #> description
|
||||
val viewShortName = ".view_name *" #> shortName
|
||||
val viewDescription = ".view_description *" #> description
|
||||
|
||||
(viewId &
|
||||
viewShortName &
|
||||
viewDescription).apply(xhtml)
|
||||
(viewId & viewShortName & viewDescription).apply(xhtml)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user