From 681167c2fe665ba783fc89eda75ca2b21d561991 Mon Sep 17 00:00:00 2001
From: Caner Candan <candan@info.univ-angers.fr>
Date: Wed, 15 Jan 2014 19:05:35 +0100
Subject: [PATCH] * finished to implement post requests into the API

---
 ucoin/hdc/amendments/__init__.py   |  5 ++++-
 ucoin/hdc/transactions/__init__.py |  5 ++++-
 ucoin/pks/__init__.py              | 18 ++++++++++++++++++
 ucoin/ucg/__init__.py              |  5 ++++-
 ucoin/ucg/peering/__init__.py      | 15 ++++++++++++---
 5 files changed, 42 insertions(+), 6 deletions(-)

diff --git a/ucoin/hdc/amendments/__init__.py b/ucoin/hdc/amendments/__init__.py
index 6bbe031f..00136dc1 100644
--- a/ucoin/hdc/amendments/__init__.py
+++ b/ucoin/hdc/amendments/__init__.py
@@ -92,6 +92,9 @@ class Votes(Base):
         return self.merkle_easy_parser('/votes/%s' % self.amendment_id)
 
     def __post__(self, **kwargs):
-        pass
+        assert 'amendment' in kwargs
+        assert 'signature' in kwargs
+
+        return self.requests_post('/votes', **kwargs).json()
 
 from . import view
diff --git a/ucoin/hdc/transactions/__init__.py b/ucoin/hdc/transactions/__init__.py
index ffe8f5cc..36a94582 100644
--- a/ucoin/hdc/transactions/__init__.py
+++ b/ucoin/hdc/transactions/__init__.py
@@ -40,7 +40,10 @@ class Process(Base):
         self.signature = signature
 
     def __post__(self):
-        pass
+        assert 'transaction' in kwargs
+        assert 'signature' in kwargs
+
+        return self.requests_post('/process', **kwargs).json()
 
 class All(Base):
     """GET all the transactions stored by this node."""
diff --git a/ucoin/pks/__init__.py b/ucoin/pks/__init__.py
index 949714cd..0fae04c3 100644
--- a/ucoin/pks/__init__.py
+++ b/ucoin/pks/__init__.py
@@ -24,6 +24,24 @@ class PKS(API):
     def __init__(self, module='pks'):
         super().__init__(module)
 
+class Add(PKS):
+    """POST ASCII-armored OpenPGP certificates."""
+
+    def __post__(self, **kwargs):
+        assert 'keytext' in kwargs
+        assert 'keysign' in kwargs
+
+        return self.requests_post('/add', **kwargs)
+
+class Lookup(PKS):
+    """Allows to search for OpenPGP certificates, according to HKP draft."""
+
+    def __get__(self, **kwargs):
+        assert 'search' in kwargs
+        assert 'op' in kwargs
+
+        return self.requests_get('/lookup', **kwargs)
+
 class All(PKS):
     """GET all the received public keys."""
 
diff --git a/ucoin/ucg/__init__.py b/ucoin/ucg/__init__.py
index 125dbeb9..54da5ad4 100644
--- a/ucoin/ucg/__init__.py
+++ b/ucoin/ucg/__init__.py
@@ -58,6 +58,9 @@ class THT(UCG):
         return self.merkle_easy_parser('/tht/%s' % self.pgp_fingerprint).json()
 
     def __post__(self, **kwargs):
-        pass
+        assert 'entry' in kwargs
+        assert 'signature' in kwargs
+
+        return self.requests_post('/tht', **kwargs)
 
 from . import peering
diff --git a/ucoin/ucg/peering/__init__.py b/ucoin/ucg/peering/__init__.py
index f74d48b7..77534303 100644
--- a/ucoin/ucg/peering/__init__.py
+++ b/ucoin/ucg/peering/__init__.py
@@ -49,18 +49,27 @@ class Peers(Base):
         return self.merkle_easy_parser('/peers')
 
     def __post__(self, **kwargs):
-        pass
+        assert 'entry' in kwargs
+        assert 'signature' in kwargs
+
+        return self.requests_post('/peers', **kwargs).json()
 
 class Forward(Base):
     """POST a UCG forward document to this node in order to be sent back incoming transactions."""
 
     def __post__(self, **kwargs):
-        pass
+        assert 'forward' in kwargs
+        assert 'signature' in kwargs
+
+        return self.requests_post('/forward', **kwargs).json()
 
 class Status(Base):
     """POST a UCG status document to this node in order notify of its status."""
 
     def __post__(self, **kwargs):
-        pass
+        assert 'status' in kwargs
+        assert 'signature' in kwargs
+
+        return self.requests_post('/status', **kwargs).json()
 
 from . import peers
-- 
GitLab