From e9c471db59e62e1ad85aeeac77a8d2b5c3993b83 Mon Sep 17 00:00:00 2001
From: Stavros Papadakis <spapad@gmail.com>
Date: Tue, 7 Mar 2017 09:50:56 +0200
Subject: [PATCH] Changed due to endpoint changes in beneficiaryNames

---
 academic-id/barebone/README.md                |  2 ++
 academic-id/data-quality-check/src/Client.php |  7 +++-
 academic-id/slim-app/src/osteam/App.php       | 32 +++++++++++++++----
 3 files changed, 33 insertions(+), 8 deletions(-)

diff --git a/academic-id/barebone/README.md b/academic-id/barebone/README.md
index 469b15c..4aa7240 100644
--- a/academic-id/barebone/README.md
+++ b/academic-id/barebone/README.md
@@ -1,5 +1,7 @@
 # Web Service Client σΡ PHP
 
+> OBSOLETE
+
 Ξ₯λοποιΞ�ΞΈΞ·ΞΊΞ΅ Ξ­Ξ½Ξ±Ο‚ Ξ±Ο€Ξ»ΟŒΟ‚ web service client ΞΊΞ±ΞΉ σΡ PHP Ξ³ΞΉΞ± Ξ½Ξ± πραγματοποιΡί τις ΞΊΞ»Ξ�σΡις στο Ρπίσημο web service μέσω php curl.
 Οι λΡιτουργίΡς του Ρίναι:
 
diff --git a/academic-id/data-quality-check/src/Client.php b/academic-id/data-quality-check/src/Client.php
index 419d19e..ea2e3d8 100644
--- a/academic-id/data-quality-check/src/Client.php
+++ b/academic-id/data-quality-check/src/Client.php
@@ -74,7 +74,12 @@ class Client
             if (isset($parsed_result['inspectionResult']) 
                 && $parsed_result['inspectionResult']['webServiceSuccess'] === true
                 && is_array($parsed_result['inspectionResult']['beneficiaryNames'])) {
-                return $parsed_result['inspectionResult']['beneficiaryNames'][0];
+                if (count($parsed_result['inspectionResult']['beneficiaryNames']) > 0) {
+                    if (is_array($bNames = $parsed_result['inspectionResult']['beneficiaryNames'][0]) && 
+                        isset($bNames['beneficiaryName'])) {
+                        return $bNames['beneficiaryName'];
+                    }
+                }
             }
         }
         return false;
diff --git a/academic-id/slim-app/src/osteam/App.php b/academic-id/slim-app/src/osteam/App.php
index 372a44b..fac5554 100644
--- a/academic-id/slim-app/src/osteam/App.php
+++ b/academic-id/slim-app/src/osteam/App.php
@@ -185,13 +185,17 @@ class App extends BaseApp
         if ($parsed_result['response'] === 'SUCCESS' && $parsed_result['errorReason'] === null) {
             if (isset($parsed_result['inspectionResult']) 
                 && $parsed_result['inspectionResult']['webServiceSuccess'] === true
-                && (
-                    ($endpoint == $this->urlAcademicId) || 
-                    ($endpoint == $this->urlAmka 
-                        && is_array($parsed_result['inspectionResult']['beneficiaryNames'])
-                        && count($parsed_result['inspectionResult']['beneficiaryNames']) > 0)
-                )) {
+                && $endpoint == $this->urlAcademicId) {
                 return $this->withTextReady($res, 'isStudent:true');
+            } elseif (isset($parsed_result['inspectionResult']) 
+                && $parsed_result['inspectionResult']['webServiceSuccess'] === true
+                && $endpoint == $this->urlAmka 
+                && is_array($parsed_result['inspectionResult']['beneficiaryNames'])
+                && count($parsed_result['inspectionResult']['beneficiaryNames']) > 0) {
+                if (is_array($bNames = $parsed_result['inspectionResult']['beneficiaryNames'][0]) && 
+                    isset($bNames['beneficiaryName'])) {
+                    return $this->withTextReady($res, 'isStudent:true');
+                }
             }
         }
         return $this->withTextReady($res, 'isStudent:false');
@@ -233,6 +237,13 @@ class App extends BaseApp
             return $this->withJsonReady($res, $results['response'], $results['http_status']);
         }
 
+        $fields_requested = $req->getQueryParam('fields', null);
+        if (($fields_requested !== null) && ($fields_requested !== 'academicID')) {
+            return $res->withJson(array_merge(BaseApp::coreResponseData(false), [
+                'message' => 'Error: Service Call Parameters Error, fields query parameter has wrong value'
+            ]), 400);
+        }
+
         // έλΡγχος Ξ΅Ο€ΞΉΟƒΟ„ΟΞ΅Ο†ΟŒΞΌΞ΅Ξ½Ξ·Ο‚ τιμΞ�Ο‚ ΞΊΞ±ΞΉ αποστολΞ� αποτΡλέσματος
         $parsed_result = json_decode($results['response'], true);
         if ($parsed_result === false) {
@@ -243,7 +254,14 @@ class App extends BaseApp
                 && $parsed_result['inspectionResult']['webServiceSuccess'] === true
                 && is_array($parsed_result['inspectionResult']['beneficiaryNames'])) {
                 if (count($parsed_result['inspectionResult']['beneficiaryNames']) > 0) {
-                    return $this->withTextReady($res, $parsed_result['inspectionResult']['beneficiaryNames'][0]);
+                    if (is_array($bNames = $parsed_result['inspectionResult']['beneficiaryNames'][0]) && 
+                        isset($bNames['submissionCode']) && isset($bNames['beneficiaryName'])) {
+                        if ($fields_requested === null) {
+                            return $this->withTextReady($res, "{$bNames['beneficiaryName']}");
+                        } elseif ($fields_requested === 'academicID') {
+                            return $this->withTextReady($res, "{$bNames['beneficiaryName']},{$bNames['submissionCode']}");
+                        }
+                    }
                 }
             }
             return $this->withTextReady($res, 'false');
-- 
GitLab