Samson Mutunga 2 éve
szülő
commit
8c8deaf55b

+ 76 - 26
app/Http/Controllers/AdminController.php

@@ -2,45 +2,95 @@
 
 namespace App\Http\Controllers;
 
+use App\Http\Traits\StringGeneratorTrait;
+use Ramsey\Uuid\Uuid;
+use Illuminate\Support\Facades\DB;
 use Illuminate\Http\Request;
 use App\Models\WebForm;
+use Illuminate\Support\Facades\Schema;
+use Exception;
 
 class AdminController extends Controller
 {
+  use StringGeneratorTrait;
 
-    public function index() {
-      $records = WebForm::orderBy('created_at', 'DESC')->paginate(30);
-      return view('app.admin.index', compact('records'));
-    }
-    public function login() {
-      return view('app.admin.login');
-    }
+  public function index()
+  {
+    $records = WebForm::orderBy('created_at', 'DESC')->paginate(30);
+    return view('app.admin.index', compact('records'));
+  }
+  public function login()
+  {
+    return view('app.admin.login');
+  }
 
-    public function submitLogin(Request $request){
-      $request->validate([
-        'username' => 'required|string',
-        'password' => 'required|string'
-      ]);
+  public function submitLogin(Request $request)
+  {
+    $request->validate([
+      'username' => 'required|string',
+      'password' => 'required|string'
+    ]);
 
-      $username = $request->get('username');
-      $password = $request->get('password');
+    $username = $request->get('username');
+    $password = $request->get('password');
 
-      $expectedUsername = config('app.adminSessionUsername');
-      $expectedPassword = config('app.adminSessionPassword');
+    $expectedUsername = config('app.adminSessionUsername');
+    $expectedPassword = config('app.adminSessionPassword');
 
-      if($username !== $expectedUsername && $password !== $expectedPassword){
-        return redirect()->back()->with('error', 'Invalid credentials!');
-      }
+    if ($username !== $expectedUsername && $password !== $expectedPassword) {
+      return redirect()->back()->with('error', 'Invalid credentials!');
+    }
 
-      $request->session()->put('adminSession', rand());
+    $request->session()->put('adminSession', rand());
 
-      return redirect()->to(route('admin.index'));
+    return redirect()->to(route('admin.index'));
+  }
+  public function logout(Request $request)
+  {
+    if (!$request->session()->exists('adminSession')) {
+      return redirect()->to(route('login'));
     }
-    public function logout(Request $request){
-      if (!$request->session()->exists('adminSession')) {
-          return redirect()->to(route('login'));
+    $request->session()->forget('adminSession');
+    return redirect()->to(route('admin.index'));
+  }
+
+  public function mygrateOldForms(Request $request)
+  {
+    $dateFilter = '2022-12-14';
+    $tables = [
+      'patient_find_a_clinic_request' => 'patient_find_a_clinic',
+      'patient_contact_message' => 'patient_contact_message',
+      'physician_training_request' => 'physician_training_request',
+      'physician_contact_message' => 'physician_contact_message',
+      'physician_directory_listing_request' => 'physician_directory_listing_request',
+      'physician_marketing_materials_request' => 'physician_marketing_materials_request',
+      'ligator_order' => 'physician_ligator_order'
+    ];
+
+    try {
+      foreach ($tables as $table => $formName) {
+        if(!Schema::hasTable($table)) continue;
+        $records = DB::select(DB::raw("SELECT * FROM $table WHERE DATE(created_at) <= '" . $dateFilter . "'"));
+        $excludes = ['id', 'uid', 'iid', 'created_at', 'updated_at'];
+        foreach ($records as $record) {
+          $record = array_diff_key((array)$record, array_flip($excludes));
+          $this->migrateTableRecordToWebFormTable($record, $formName);
+          Schema::dropIfExists($table);
+        }
       }
-      $request->session()->forget('adminSession');
-      return redirect()->to(route('admin.index'));
+      dd('Migrated!');
+    } catch (Exeception $error) {
+      dd($error->getMessage());
     }
+  }
+
+  private function migrateTableRecordToWebFormTable($record, $formName)
+  {
+    $record = new WebForm;
+    $record->iid = $this->makeIID();
+    $record->uid = Uuid::uuid6();
+    $record->form_name = $formName;
+    $record->form_data = json_encode($record);
+    $record->save();
+  }
 }

+ 5 - 27
app/Http/Controllers/AppController.php

@@ -57,22 +57,12 @@ class AppController extends Controller
       ]);
 
       $request['form_name'] = 'patient_find_a_clinic';
-
-      $record = new PatientFindAClinicRequest;
-      $record->iid = $this->makeIID();
-      $record->uid = Uuid::uuid6();
-      $record->name_first = $request->get('name_first');
-      $record->name_last = $request->get('name_last');
-      $record->email = $request->get('email');
-      $record->phone = $request->get('phone');
-      $record->zip = $request->get('zip');
-
-      $record->save();
       $this->saveWebForm($request);
+
       $this->sendWebsiteEmailNotification([
         'template' => 'find-a-clinic',
         'subject' => 'Find a clinic request',
-        'data' => $record
+        'data' => (object) $request->all()
       ]);
       return redirect()->back()->with('success', 'Your request has been submitted!');
     }
@@ -90,24 +80,12 @@ class AppController extends Controller
       ]);
 
       $request['form_name'] = 'patient_contact_message';
-
-      $record = new PatientContactMessage;
-      $record->iid = $this->makeIID();
-      $record->uid = Uuid::uuid6();
-      $record->name_first = $request->get('name_first');
-      $record->name_last = $request->get('name_last');
-      $record->email = $request->get('email');
-      $record->phone = $request->get('phone');
-      $record->zip = $request->get('zip');
-      $record->subject = $request->get('subject');
-      $record->message = $request->get('message');
-
-      $record->save();
       $this->saveWebForm($request);
+
       $this->sendWebsiteEmailNotification([
         'template' => 'contact',
-        'subject' => $record->subject,
-        'data' => $record
+        'subject' => $request->get('subject'),
+        'data' => (object) $request->all()
       ]);
       return redirect()->back()->with('success', 'Your request has been submitted!');
     }

+ 6 - 4
app/Http/Controllers/Controller.php

@@ -20,10 +20,11 @@ class Controller extends BaseController
 
     public function sendWebsiteEmailNotification($details){   
         $toUsers = [
-            ['email' => config('app.supportEmailAddress'), 'name' => 'Hemband Support'],
-            ['email' => config('app.adminEmailAddress'), 'name' => 'Hemband Admin'],
-            ['email' => 'salshah497@gmail.com', 'name' => 'Sal Shah'],
-            ['email' => 'hujaberi@gmail.com', 'name' => 'Hujaberi'],
+            ['email' => 'samsonmutunga@gmail.com', 'name' => 'Samson Mutunga'],
+            // ['email' => config('app.supportEmailAddress'), 'name' => 'Hemband Support'],
+            // ['email' => config('app.adminEmailAddress'), 'name' => 'Hemband Admin'],
+            // ['email' => 'salshah497@gmail.com', 'name' => 'Sal Shah'],
+            // ['email' => 'hujaberi@gmail.com', 'name' => 'Hujaberi'],
             
 
         ];    
@@ -43,5 +44,6 @@ class Controller extends BaseController
         $record->form_data = json_encode($data);
 
         $record->save();
+        return $record;
     }
 }

+ 6 - 88
app/Http/Controllers/PhysiciansController.php

@@ -82,28 +82,12 @@ class PhysiciansController extends Controller
       ]);
 
       $request['form_name'] = 'physician_training_request';
-
-      $record = new PhysicianTrainingRequest;
-      $record->iid = $this->makeIID();
-      $record->uid = Uuid::uuid6();
-      $record->name_first = $request->get('name_first');
-      $record->name_last = $request->get('name_last');
-      $record->practice_name = $request->get('practice_name');
-      $record->email = $request->get('email');
-      $record->phone = $request->get('phone');
-      $record->zip = $request->get('zip');
-      $record->training_type = $request->get('training_type');
-      $record->training_type_other = $request->get('training_type_other');
-      $record->training_format = $request->get('training_format');
-      $record->notes = $request->get('notes');
-
-      $record->save();
       $this->saveWebForm($request);
 
       $this->sendWebsiteEmailNotification([
         'template' => 'training-request',
         'subject' => 'Hemband Training Request',
-        'data' => $record
+        'data' => (object) $request->all()
       ]);
 
       return redirect()->back()->with('success', 'Your request has been submitted!');
@@ -122,26 +106,12 @@ class PhysiciansController extends Controller
       ]);
 
       $request['form_name'] = 'physician_contact_message';
-
-      $record = new PhysicianContactMessage;
-      $record->iid = $this->makeIID();
-      $record->uid = Uuid::uuid6();
-      $record->name_prefix = $request->get('name_prefix');
-      $record->name_first = $request->get('name_first');
-      $record->name_last = $request->get('name_last');
-      $record->practice_name = $request->get('practice_name');
-      $record->email = $request->get('email');
-      $record->phone = $request->get('phone');
-      $record->zip = $request->get('zip');
-      $record->message = $request->get('message');
-
-      $record->save();
       $this->saveWebForm($request);
 
       $this->sendWebsiteEmailNotification([
         'template' => 'physician-contact',
         'subject' => 'Hemband Physician Contact Form',
-        'data' => $record
+        'data' => (object) $request->all()
       ]);
       return redirect()->back()->with('success', 'Your request has been submitted!');
     }
@@ -160,26 +130,12 @@ class PhysiciansController extends Controller
       ]);
 
       $request['form_name'] = 'physician_directory_listing_request';
-
-      $record = new PhysicianDirectoryListingRequest;
-      $record->iid = $this->makeIID();
-      $record->uid = Uuid::uuid6();
-      $record->name_first = $request->get('name_first');
-      $record->name_last = $request->get('name_last');
-      $record->title = $request->get('title');
-      $record->practice_name = $request->get('practice_name');
-      $record->email = $request->get('email');
-      $record->phone = $request->get('phone');
-      $record->zip = $request->get('zip');
-      $record->comment = $request->get('comment');
-
-      $record->save();
       $this->saveWebForm($request);
 
       $this->sendWebsiteEmailNotification([
         'template' => 'physician-directory-listing-request',
         'subject' => 'Hemband Physician Directory Listing Request Form',
-        'data' => $record
+        'data' => (object) $request->all()
       ]);
       return redirect()->back()->with('success', 'Your request has been submitted!');
     }
@@ -198,27 +154,12 @@ class PhysiciansController extends Controller
       ]);
 
       $request['form_name'] = 'physician_marketing_materials_request';
-
-      $record = new PhysicianMarketingMaterialsRequest;
-      $record->iid = $this->makeIID();
-      $record->uid = Uuid::uuid6();
-      $record->name_first = $request->get('name_first');
-      $record->name_last = $request->get('name_last');
-      $record->title = $request->get('title');
-      $record->practice_name = $request->get('practice_name');
-      $record->practice_address = $request->get('practice_address');
-      $record->email = $request->get('email');
-      $record->phone = $request->get('phone');
-      $record->zip = $request->get('zip');
-      $record->comment = $request->get('comment');
-
-      $record->save();
       $this->saveWebForm($request);
 
       $this->sendWebsiteEmailNotification([
         'template' => 'physician-marketing-materials-request',
         'subject' => 'Hemband Physician Marketing Materials Request Form',
-        'data' => $record
+        'data' => (object) $request->all()
       ]);
       return redirect()->back()->with('success', 'Your request has been submitted!');
     }
@@ -239,35 +180,12 @@ class PhysiciansController extends Controller
       ]);
 
       $request['form_name'] = 'physician_ligator_order';
-
-      $record = new LigatorOrder;
-      $record->iid = $this->makeIID();
-      $record->uid = Uuid::uuid6();
-      $record->order_date = $request->get('order_date');
-      $record->postal_code = $request->get('postal_code');
-      $record->company_name = $request->get('company_name');
-      $record->group_npi = $request->get('group_npi');
-      $record->order_phyisician_name = $request->get('order_phyisician_name');
-      $record->physician_npi = $request->get('physician_npi');
-      $record->purchasing_contact_name = $request->get('purchasing_contact_name');
-      $record->phone_number = $request->get('phone_number');
-      $record->email = $request->get('email');
-      $record->shipping_address = $request->get('shipping_address');
-      $record->line_2 = $request->get('line_2');
-      $record->city = $request->get('city');
-      $record->state = $request->get('state');
-      $record->zip = $request->get('zip');
-      $record->quantity = $request->get('quantity');
-      $record->memo = $request->get('memo');
-      $record->delivery_option = $request->get('delivery_option');
-      $record->agrees_to_terms = $request->get('agrees_to_terms');
-      $record->save();
-      $this->saveWebForm($request);
+      $record = $this->saveWebForm($request);
 
       $this->sendWebsiteEmailNotification([
         'template' => 'physician-order-ligators',
         'subject' => 'Physician Ligator Order',
-        'data' => $record
+        'data' => (object) $request->all()
       ]);
       return redirect()->back()->with('orderIID', $record->iid)->with('success', 'Your order has been submitted!');
     }

+ 1 - 0
routes/web.php

@@ -58,5 +58,6 @@ Route::get('/login', [AdminController::class, 'login'])->name('login');
 Route::post('/submit-login', [AdminController::class, 'submitLogin'])->name('submit-login');
 Route::middleware('ensureAdminSession')->prefix('/admin')->name('admin.')->group(function () {
     Route::get('/', [AdminController::class, 'index'])->name('index');
+    Route::get('/migrate-old-forms', [AdminController::class, 'mygrateOldForms'])->name('migrate-old-forms');
     Route::get('/logout', [AdminController::class, 'logout'])->name('logout');
 });