From b35a97d09497e3e7fc561bb4a4f435ec7ae8ff4c Mon Sep 17 00:00:00 2001
From: Filippo Bertilotti <filippobertilotti@gmail.com>
Date: Wed, 09 Oct 2024 11:44:27 +0200
Subject: [PATCH] Merge branch 'main' of https://blit.dubbidigitali.it/r/~fbertilotti/fakesso

---
 routes/sso.php                                                                                  |    2 +
 app/Vola/Services/FakeSSODatabase/FakeSSODatabaseHandler.php                                    |   34 +++++++++-------
 app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php                               |   21 ++++++----
 routes/picasso.php                                                                              |    3 -
 resources/views/vodafone_fake_sso/response_templates/legacy/getWebcustomerInformation.blade.php |    2 
 5 files changed, 36 insertions(+), 26 deletions(-)

diff --git a/app/Vola/Services/FakeSSODatabase/FakeSSODatabaseHandler.php b/app/Vola/Services/FakeSSODatabase/FakeSSODatabaseHandler.php
index e26def4..74f2d99 100644
--- a/app/Vola/Services/FakeSSODatabase/FakeSSODatabaseHandler.php
+++ b/app/Vola/Services/FakeSSODatabase/FakeSSODatabaseHandler.php
@@ -1,4 +1,5 @@
 <?php
+
 namespace App\Vola\Services\FakeSSODatabase;
 
 use App\Models\Msisdn;
@@ -6,34 +7,37 @@
 use App\Models\VodafoneUser;
 use Exception;
 use Illuminate\Support\Facades\DB;
-use PDOException;
 
-class FakeSSODatabaseHandler {
+class FakeSSODatabaseHandler
+{
 
-    public function insertDataIntoTables(array $data) {
-        try{
-
-
-            $userModel = VodafoneUser::create(['Name' => $data["Name"],
-                                               'Surname' => $data["Surname"],
-                                               'EmailAddress' => $data["EmailAddress"]]);
-            $msisdnModel = Msisdn::create(['MSISDN' => $data["sim_1"],
-                                           'IdPiano' => $data['IdPiano'],
-                                           'LinkedUser' => $userModel->id]);
+    public function insertDataIntoTables(array $data)
+    {
+        try {
+            $userModel = VodafoneUser::create([
+                'Name' => $data["Name"],
+                'Surname' => $data["Surname"],
+                'EmailAddress' => $data["EmailAddress"]
+            ]);
+            $msisdnModel = Msisdn::create([
+                'MSISDN' => $data["sim_1"],
+                'IdPiano' => $data['IdPiano'],
+                'LinkedUser' => $userModel->id
+            ]);
 
             foreach ($data["products_select"] as $index => $value) {
                 $product = Products::find($value);
                 $product->msisdn()->attach($msisdnModel->id);
             }
 
-
-        }catch(PDOException $e) {
+        } catch (Exception $e) {
             echo $e->getMessage();
         }
 
     }
 
-    public function readProducts(): array {
+    public function readProducts(): array
+    {
         $productsList = Products::select("Name", "id")->get()?->toArray();
         return $productsList;
     }
diff --git a/app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php b/app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php
index 3257b68..6598289 100644
--- a/app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php
+++ b/app/Vola/Services/VolaFakeHTTPResponder/VolaFakeHTTPResponder.php
@@ -22,8 +22,8 @@
     public function __construct()
     {
         $this->xmlResponses = config('devtools.fake_sso_profiles');
-        $this->pathTemplateFolderLegacy = 'response_templates.legacy';
-        $this->pathTemplateFolderPicasso = 'response_templates.picasso';
+        $this->pathTemplateFolderLegacy = 'vodafone_fake_sso.response_templates.legacy';
+        $this->pathTemplateFolderPicasso = 'vodafone_fake_sso.response_templates.picasso';
     }
 
     public function getModelBasedResponses(Request $request): array
@@ -33,7 +33,10 @@
 
         if (isset($profile)) {
 
-            $responseContent["data"] = $this->fillXmlResponses($profile, $picassoRequest);
+            $uriParts = explode("?", $request->url());
+            $method = Str::afterLast($uriParts[0], "/");
+
+            $responseContent["data"] = $this->fillXmlResponses($method, $profile, $picassoRequest);
             $responseContent["status"] = 200;
             \RequestLogger::logProcessedRequest($request, $responseContent, (($picassoRequest) ? 'Picasso' : 'SSO Legacy') );
             return $responseContent;
@@ -48,11 +51,13 @@
 
     }
 
-    public function fillXMLResponses(string $profile, bool $picasso): string
+    public function fillXMLResponses(string $method, string $profile, bool $picasso): string
     {
-        $user = VodafoneUser::where(['id' => $profile]);
+        $user = VodafoneUser::where(['id' => $profile])->first();
+        //arguments
         $viewFolder = ($picasso) ? $this->pathTemplateFolderPicasso : $this->pathTemplateFolderLegacy;
-        return view($viewFolder, ['user' => $user])->render(); //views/response_templates/legacy/*.blade.php ?? *.xml
+        $view = $viewFolder . "." . $method;
+        return view($view, ['user' => $user])->render(); //views/response_templates/legacy/*.blade.php ?? *.xml
     }
 
     public function getResponses(Request $request, $selectedUser, $picasso = false): string|array
@@ -178,9 +183,9 @@
             case 'no-method-on-user':
                 return 'This method response is not set for this user. Check this server database.';
             case 'no-method':
-                return 'Couldnt detect requested method. Check your request url.';
+                return 'Couldnt identify requested method. Check your request url.';
             default:
-                return 'Couldnt detect proper response.';
+                return 'Couldnt identify proper response.';
         }
     }
 
diff --git a/resources/views/vodafone_fake_sso/response_templates/legacy/getWebcustomerInformation.blade.php b/resources/views/vodafone_fake_sso/response_templates/legacy/getWebcustomerInformation.blade.php
index 499df67..41aaa61 100644
--- a/resources/views/vodafone_fake_sso/response_templates/legacy/getWebcustomerInformation.blade.php
+++ b/resources/views/vodafone_fake_sso/response_templates/legacy/getWebcustomerInformation.blade.php
@@ -1,6 +1,6 @@
 <?xml version="1.0" encoding="iso-8859-1"?>
 <getWebCustomerInformation>
-    <EmailAddress>{{$email}}</EmailAddress>
+    <EmailAddress>{{$user->EmailAddress}}</EmailAddress>
     <Sex></Sex>
     <Surname>DoppiaSim</Surname>
     <BirthProvinceName>LUCCA</BirthProvinceName>
diff --git a/routes/picasso.php b/routes/picasso.php
index 5207027..9ba05cd 100644
--- a/routes/picasso.php
+++ b/routes/picasso.php
@@ -1,7 +1,6 @@
 <?php
 
-Route::group(['prefix' => 'picasso', 'middleware' => ['web']], function ()
-{
+Route::group(['prefix' => 'picasso', 'middleware' => ['web']], function () {
     Route::get('/auth/islogged', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
     Route::get('/services/getWebcustomerInformation', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
     Route::get('/services/getMsisdnList', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
diff --git a/routes/sso.php b/routes/sso.php
index 9d3602b..0c345cc 100644
--- a/routes/sso.php
+++ b/routes/sso.php
@@ -2,6 +2,7 @@
 
 Route::group(['prefix' => 'sso', 'middleware' => ['web']], function ()
 {
+    // metodi vecchi basati sulle stringhe xml giĆ  precompilate
     Route::get('/islogged', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
     Route::get('/getWebcustomerInformation', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
     Route::get('/getSelectedMSISDNDetails', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
@@ -9,6 +10,7 @@
     Route::get('/getMSISDNDetails', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
     Route::get('/getInfoActivationWSC', '\App\Http\Controllers\FakeResponder\FakeResponder@manageLegacyRequest');
 
+    // metodi nuovi basati su db
     Route::get('/v2/islogged', '\App\Http\Controllers\FakeResponder\FakeResponder@modelBasedRequest');
     Route::get('/v2/getWebcustomerInformation', '\App\Http\Controllers\FakeResponder\FakeResponder@modelBasedRequest');
     Route::get('/v2/getSelectedMSISDNDetails', '\App\Http\Controllers\FakeResponder\FakeResponder@modelBasedRequest');

--
Gitblit v1.8.0