From bbfa3270e9fa2f14d7aa01d79f1feafaf9e8d36c Mon Sep 17 00:00:00 2001
From: Stavros Papadakis <spapad@gmail.com>
Date: Fri, 23 Dec 2016 10:51:18 +0200
Subject: [PATCH] Post protocol function

---
 base-php-client/index.php      | 44 ++++++++++++++++++++++++++++++++++
 base-php-client/src/App.php    | 15 ++++++++++--
 base-php-client/src/Client.php | 11 +++++++++
 3 files changed, 68 insertions(+), 2 deletions(-)

diff --git a/base-php-client/index.php b/base-php-client/index.php
index d7364b2..00a750f 100644
--- a/base-php-client/index.php
+++ b/base-php-client/index.php
@@ -82,6 +82,50 @@ try {
     exit(-1);
 }
 
+/**
+ * ΑποστολΞ� αρχΡίου Ξ³ΞΉΞ± Ο€ΟΟ‰Ο„ΞΏΞΊΟŒΞ»Ξ»Ξ·ΟƒΞ·
+ */
+if ($send) {
+    echo "ΑποστολΞ� Ργγράφου...", PHP_EOL;
+    echo "ΞˆΞ»Ξ΅Ξ³Ο‡ΞΏΟ‚ Ξ³ΞΉΞ± το αρχΡίο {$options['send']}... ";
+    if (is_readable($options['send'])) {
+        $file = base64_encode(file_get_contents($options['send']));
+        if ($file === false) {
+            echo PHP_EOL, "Ξ›Ξ‘Ξ˜ΞŸΞ£: Αδυναμία κωδικοποίησης του αρχΡίου.", PHP_EOL;
+        }
+        echo "OK", PHP_EOL;
+    } else {
+        echo PHP_EOL, "Ξ›Ξ‘Ξ˜ΞŸΞ£: ΀ο αρχΡίο δΡν Ρίναι Ξ±Ξ½Ξ±Ξ³Ξ½ΟŽΟƒΞΉΞΌΞΏ.", PHP_EOL;
+        exit(-1);
+    }
+
+    try {
+        // ΞΊΞ±ΞΈΞΏΟΞΉΟƒΞΌΟŒΟ‚ παραμέτρων σΡ πίνακα Ξ³ΞΉΞ± απλοποίηση 
+        $submission_data = [
+            'theme' => 'Ξ”ΞŸΞšΞ™ΞœΞ—: Αυτοματοποιημένο κΡίμΡνο της ' . date('c'),
+            'description' => 'Ξ”ΞŸΞšΞ™ΞœΞ—: Αυτοματοποιημένο κΡίμΡνο πΡριγραφΞ�Ο‚ ' . date('Ymdhmi'),
+            'docCategory' => 20,
+            'mainDoc' => [
+                'document' => [
+                    "base64" => $file
+                ],
+                'fileName' => $options['send'],
+                'description' => "Ξ”ΞŸΞšΞ™ΞœΞ—: ΑποστολΞ� δοκιμαστικού αρχΡίου {$options['send']}"
+            ]
+            // το παράδΡιγμα δΡν πΡριλαμβάνΡι συνημμένα αρχΡία 
+            // ΞΊΞ±ΞΉ ορισμένΡς Ρπιπλέον παραμέτρους 
+            // senderId, senderProtocol, senderProtocolDate, ada, attachedDoc[]
+        ];
+
+        $doc_info = $app->postProtocol($submission_data, $apikey);
+        echo "Ξ— αποστολΞ� ολοκληρώθηκΡ ΞΌΞ΅ ΑΑ.Ξ .: ", $doc_info["protocolNumber"], PHP_EOL;
+        echo "Αναλυτικά: ", print_r($doc_info, true), PHP_EOL;
+    } catch (\Exception $e) {
+        echo 'Ξ›Ξ‘Ξ˜ΞŸΞ£: Αδυναμία αποστολΞ�Ο‚ Ργγράφου. ', PHP_EOL, $e->getMessage(), PHP_EOL;
+        exit(1);
+    }
+}
+
 /**
  * ΛΡιτουργία Ξ»Ξ�ΟˆΞ·Ο‚ λίστας των καταχωρημένων Ο€ΟΟ‰Ο„ΞΏΞΊΟŒΞ»Ξ»Ο‰Ξ½.
  * Εάν έχΡι ΢ητηθΡί Ρπιστρέφονται ΞΊΞ±ΞΉ ΞΏΞΉ αναλυτικές πληροφορίΡς των Ργγράφων. 
diff --git a/base-php-client/src/App.php b/base-php-client/src/App.php
index d94edc2..c9990fa 100644
--- a/base-php-client/src/App.php
+++ b/base-php-client/src/App.php
@@ -107,9 +107,20 @@ class App
         return $response;
     }
 
-    public function submit($submission_data, $apikey = null)
+    public function postProtocol($submission_data, $apikey = null)
     {
-        
+        $payload = json_encode(array_merge([
+            'senderId' => $this->setting('sender_id'),
+                ], $submission_data
+            )
+        );
+
+        if ($this->_debug) {
+            echo "postProtocol :: payload: {$payload}", PHP_EOL;
+        }
+
+        $response = json_decode($this->client->postProtocol($payload, $apikey === null ? $this->getApiKey() : $apikey), true);
+        return $response;
     }
 
     public function getPdf($hashid, $apikey = null)
diff --git a/base-php-client/src/Client.php b/base-php-client/src/Client.php
index b436fe6..e426124 100644
--- a/base-php-client/src/Client.php
+++ b/base-php-client/src/Client.php
@@ -67,6 +67,17 @@ class Client
         return $result;
     }
 
+    public function postProtocol($payload, $apikey)
+    {
+        $result = $this->post("{$this->_settings['base_uri']}/protocol/submit", $payload, [
+            "api_key: {$apikey}",
+            "Content-Type: application/json",
+            "Accept: application/json",
+            ]
+        );
+        return $result;
+    }
+
     protected function setCommonCurlOptions($ch, $uri, $headers)
     {
         curl_setopt($ch, CURLOPT_URL, $uri);
-- 
GitLab