From 01d1c4b9297300bed7104bf87f0446a03e4028c5 Mon Sep 17 00:00:00 2001
From: vtexier <vit@free.fr>
Date: Sun, 16 Dec 2018 19:57:56 +0100
Subject: [PATCH] Add node/sandboxes in bma api

---
 duniterpy/api/bma/node.py | 77 ++++++++++++++++++++++++++++-----------
 1 file changed, 55 insertions(+), 22 deletions(-)

diff --git a/duniterpy/api/bma/node.py b/duniterpy/api/bma/node.py
index ba5ce83c..db9f3730 100644
--- a/duniterpy/api/bma/node.py
+++ b/duniterpy/api/bma/node.py
@@ -23,6 +23,51 @@ logger = logging.getLogger("duniter/node")
 
 MODULE = 'node'
 
+SUMMARY_SCHEMA = {
+    "type": "object",
+    "properties": {
+        "duniter": {
+            "type": "object",
+            "properties": {
+                "software": {
+                    "type": "string"
+                },
+                "version": {
+                    "type": "string",
+                },
+                "forkWindowSize": {
+                    "type": "number"
+                }
+            },
+            "required": ["software", "version"]
+        },
+    },
+    "required": ["duniter"]
+}
+
+SANDBOX_SCHEMA = {
+    "type": "object",
+    "properties": {
+        "size": {
+            "type": "number"
+        },
+        "free": {
+            "type": "number"
+        }
+    },
+    "required": ["size", "free"]
+}
+
+SANDBOXES_SCHEMA = {
+    "type": "object",
+    "properties": {
+        "identities": SANDBOX_SCHEMA,
+        "memberships": SANDBOX_SCHEMA,
+        "transactions": SANDBOX_SCHEMA
+    },
+    "required": ["identities", "memberships", "transactions"]
+}
+
 
 async def summary(client: Client) -> dict:
     """
@@ -31,26 +76,14 @@ async def summary(client: Client) -> dict:
     :param client: Client to connect to the api
     :return:
     """
-    schema = {
-        "type": "object",
-        "properties": {
-            "duniter": {
-                "type": "object",
-                "properties": {
-                    "software": {
-                        "type": "string"
-                    },
-                    "version": {
-                        "type": "string",
-                    },
-                    "forkWindowSize": {
-                        "type": "number"
-                    }
-                },
-                "required": ["software", "version"]
-            },
-        },
-        "required": ["duniter"]
-    }
+    return await client.get(MODULE + '/summary', schema=SUMMARY_SCHEMA)
+
 
-    return await client.get(MODULE + '/summary', schema=schema)
+async def sandboxes(client: Client) -> dict:
+    """
+    GET Duniter node version and infos
+
+    :param client: Client to connect to the api
+    :return:
+    """
+    return await client.get(MODULE + '/sandboxes', schema=SANDBOXES_SCHEMA)
-- 
GitLab