PharmaviteController.php (before) PharmaviteController.php (after)
<?php <?php
   
namespace App\Http\Controllers; namespace App\Http\Controllers;
   
use App\Helper\Helper; use App\Helper\Helper;
use App\Http\Controllers\Controller; use App\Http\Controllers\Controller;
use App\Model\PharmaviteModel; use App\Model\PharmaviteModel;
use Illuminate\Http\Request; use Illuminate\Http\Request;
   
class PharmaviteController extends Controller class PharmaviteController extends Controller
{ {
   private $pharmaviteObj;    private $pharmaviteObj;
   private $helperObj;    private $helperObj;
   public function __construct()    public function __construct()
   {    {
       $this->pharmaviteObj = new PharmaviteModel();        $this->pharmaviteObj = new PharmaviteModel();
       $this->helperObj = new Helper();        $this->helperObj = new Helper();
       $this->setPaths();        $this->setPaths();
       $this->getLogFilesList();        $this->getLogFilesList();
       $this->setWithLogFiles();        $this->setWithLogFiles();
   }    }
   
   /**    /**
    * phvContactus post request     * phvContactus post request
    */      */ 
   
   public function setPaths()    public function setPaths()
   {    {
   
       $this->logDirectory = dirname(__FILE__) . "/../../../storage/logs/";        $this->logDirectory = dirname(__FILE__) . "/../../../storage/logs/";
   }    }
   
   public function getLogFilesList()    public function getLogFilesList()
   {    {
   
       $this->logPath = $this->logDirectory . date('dmY');        $this->logPath = $this->logDirectory . date('dmY');
       if (!is_dir($this->logPath)) {        if (!is_dir($this->logPath)) {
   
           //Directory does not exist, so lets create it.            //Directory does not exist, so lets create it.
           mkdir($this->logPath);            mkdir($this->logPath);
           chmod($this->logPath, 0777);            chmod($this->logPath, 0777);
   
       }        }
       $this->logFiles = array(        $this->logFiles = array(
           'log' => array(            'log' => array(
               "type" => "text",                "type" => "text",
               "filename" => $this->logPath . "/pharmavative-contactus-log.txt",                "filename" => $this->logPath . "/pharmavative-contactus-log.txt",
               "mode" => ""),                "mode" => ""),
       );        );
   }    }
   
   public function setWithLogFiles()    public function setWithLogFiles()
   {    {
   
       if (!empty($this->logFiles)) {        if (!empty($this->logFiles)) {
           foreach ($this->logFiles as $fileDetails) {            foreach ($this->logFiles as $fileDetails) {
               $fileName = $fileDetails['filename'];                $fileName = $fileDetails['filename'];
               if ($fileDetails['type'] == 'csv' && !file_exists($fileName)) {                if ($fileDetails['type'] == 'csv' && !file_exists($fileName)) {
                   $handler = fopen($fileName, $fileDetails['mode']);                    $handler = fopen($fileName, $fileDetails['mode']);
                   fputcsv($handler, $fileDetails['columns']);                    fputcsv($handler, $fileDetails['columns']);
                   fclose($handler);                    fclose($handler);
                   touch($fileName);                    touch($fileName);
                   chmod($fileName, 0777);                    chmod($fileName, 0777);
               }                }
           }            }
   
       }        }
   }    }
   
   public function nmContactUs(Request $request)    public function nmContactUs(Request $request)
   {    {
                 
       $requestData = $request->input('data');        $requestData = $request->input('data');
       if (empty($requestData)) {        if (empty($requestData)) {
           $returnData = [            $returnData = [
               'error' => 'Invalid endpoint request',                'error' => 'Invalid endpoint request',
           ];            ];
           $message = 'Failed';            $message = 'Failed';
           $this->helperObj->logMe("error : Invalid endpoint request", $this->logFiles['log']['filename']);            $this->helperObj->logMe("error : Invalid endpoint request", $this->logFiles['log']['filename']);
           if (!empty($request->input('callback'))) {            if (!empty($request->input('callback'))) {
               return $this->returnData($request->input('callback'), '600', $message, $returnData);                return $this->returnData($request->input('callback'), '600', $message, $returnData);
           } else {            } else {
               return $this->returnData(null, '600', $message, $returnData);                return $this->returnData(null, '600', $message, $returnData);
           }            }
       }        }
       $receivedData = json_decode($requestData);        $receivedData = json_decode($requestData);
       $requestKeys = ['InquiryType', 'StorePurchased', 'Lot', 'Email', 'FirstName', 'LastName', 'AddressLine1', 'City', 'State', 'Zip', 'Subject', 'MessageBody'];        $requestKeys = ['InquiryType', 'StorePurchased', 'Lot', 'Email', 'FirstName', 'LastName', 'AddressLine1', 'City', 'State', 'Zip', 'Subject', 'MessageBody'];
       $keysInTheRequest = [];        $keysInTheRequest = [];
       $emptyValueKeys = [];        $emptyValueKeys = [];
       foreach ($receivedData as $key => $recValue) {        foreach ($receivedData as $key => $recValue) {
   
           $keysInTheRequest[] = $key;            $keysInTheRequest[] = $key;
           if (empty(trim($recValue)) && $key != 'AddressLine2') {            if (empty(trim($recValue)) && $key != 'AddressLine2') {
               $emptyValueKeys[] = $key;                $emptyValueKeys[] = $key;
           }            }
       }        }
       $keyComparedStatus = array_diff($requestKeys, $keysInTheRequest);        $keyComparedStatus = array_diff($requestKeys, $keysInTheRequest);
       if (!empty($keyComparedStatus)) {        if (!empty($keyComparedStatus)) {
   
           $missedParameters = implode(",", $keyComparedStatus);            $missedParameters = implode(",", $keyComparedStatus);
           $message = 'Failed';            $message = 'Failed';
           $returnData = [            $returnData = [
               'error' => $missedParameters . ' endpoint parameters are missing in the request',                'error' => $missedParameters . ' endpoint parameters are missing in the request',
           ];            ];
           $this->helperObj->logMe('error : '.$missedParameters . ' endpoint parameters are missing in the request', $this->logFiles['log']['filename']);            $this->helperObj->logMe('error : '.$missedParameters . ' endpoint parameters are missing in the request', $this->logFiles['log']['filename']);
           return $this->returnData($request->input('callback'), '600', $message, $returnData);            return $this->returnData($request->input('callback'), '600', $message, $returnData);
       }        }
       if (!empty($emptyValueKeys)) {        if (!empty($emptyValueKeys)) {
   
           $emptyValueKeys = implode(",", $emptyValueKeys);            $emptyValueKeys = implode(",", $emptyValueKeys);
           $message = 'Failed';            $message = 'Failed';
           $returnData = [            $returnData = [
               'error' => $emptyValueKeys . ' endpoint parameter values are empty in the request',                'error' => $emptyValueKeys . ' endpoint parameter values are empty in the request',
           ];            ];
           $this->helperObj->logMe('error : '.$emptyValueKeys . ' endpoint parameter values are empty in the request', $this->logFiles['log']['filename']);            $this->helperObj->logMe('error : '.$emptyValueKeys . ' endpoint parameter values are empty in the request', $this->logFiles['log']['filename']);
           return $this->returnData($request->input('callback'), '600', $message, $returnData);            return $this->returnData($request->input('callback'), '600', $message, $returnData);
       }        }
       $postPath = env('POST_NMCONTACT_URL', true);        $postPath = env('POST_NMCONTACT_URL', true);
       $response = $this->pharmaviteObj->postRequestData($postPath, $requestData);        $response = $this->pharmaviteObj->postRequestData($postPath, $requestData);
       //print_r($response);        //print_r($response);
       if (strtolower(trim($response)) != 'success') {        if (strtolower(trim($response)) != 'success') {
   
           $message = 'Failed';            $message = 'Failed';
           $returnData = [            $returnData = [
               'error' => 'Error occured while posting the request to the API',                'error' => 'Error occured while posting the request to the API',
               'request' => $requestData,                'request' => $requestData,
           ];            ];
           $this->helperObj->logMe('error : Error occured while posting the request to the API', $this->logFiles['log']['filename']);            $this->helperObj->logMe('error : Error occured while posting the request to the API', $this->logFiles['log']['filename']);
           return $this->returnData($request->input('callback'), '600', $message, $returnData);            return $this->returnData($request->input('callback'), '600', $message, $returnData);
       }        }
       $message = 'Success';        $message = 'Success';
       $returnData = [        $returnData = [
           'message' => 'Successfully posted the given request in the API (Email: ' . $receivedData->Email . ')',            'message' => 'Successfully posted the given request in the API (Email: ' . $receivedData->Email . ')',
       ];        ];
       // //Log::info($returnData);        // //Log::info($returnData);
       return $this->returnData($request->input('callback'), '200', $message, $returnData);        return $this->returnData($request->input('callback'), '200', $message, $returnData);
   }    }
.         public function nmmbg(Request $request) { 
   
         $requestData = $request->input('data'); 
         if (empty($requestData)) { 
   
             $returnData = [ 
                 'error' => 'Invalid endpoint request' 
             ]; 
             $message = 'Failed'; 
             $this->helperObj->logMe("error : Invalid endpoint request", $this->logFiles['log']['filename']); 
             if (!empty($request->input('callback'))) { 
                 return $this->returnData($request->input('callback'), '600', $message, $returnData ); 
             } else { 
                 return $this->returnData(null, '600', $message, $returnData ); 
             } 
         } 
         $receivedData = json_decode($requestData); 
         $requestKeys = ['EMail','FirstName','LastName','AddressLine1','City','State','Zip','ReturnProductId','ProductListNumber']; 
         $keysInTheRequest = []; 
         $emptyValueKeys = []; 
         foreach ($receivedData as $key => $recValue) { 
   
             $keysInTheRequest[] = $key; 
             if (empty($recValue) && $key !='AddressLine2') { 
   
                 $emptyValueKeys[] = $key; 
             } 
         } 
         $keyComparedStatus = array_diff($requestKeys, $keysInTheRequest); 
         if(!empty($keyComparedStatus)) { 
   
             $missedParameters = implode(",",$keyComparedStatus); 
             $message = 'Failed'; 
             $returnData = [ 
                 'error' => $missedParameters.' endpoint parameters are missing in the request' 
             ]; 
             $this->helperObj->logMe('error : '.$missedParameters . ' endpoint parameters are missing in the request', $this->logFiles['log']['filename']); 
             return $this->returnData($request->input('callback'), '600', $message, $returnData ); 
         } 
         if (!empty($emptyValueKeys)) { 
   
             $emptyValueKeys = implode(",",$emptyValueKeys); 
             $message = 'Failed'; 
             $returnData = [ 
                 'error' => $emptyValueKeys.' endpoint parameter values are empty in the request' 
             ]; 
             $this->helperObj->logMe('error : '.$emptyValueKeys . ' endpoint parameter values are empty in the request', $this->logFiles['log']['filename']); 
             return $this->returnData($request->input('callback'), '600', $message, $returnData ); 
         } 
         $postPath = env('POST_NMMBG_URL',true); 
         $response = $this->pharmaviteObj->postRequestData($postPath, $requestData); 
         if (strtolower(trim($response)) != 'success') { 
   
             $message = 'Failed'; 
             $returnData = [ 
                 'error' => 'Error occured while posting the request to the API', 
                 'request' => $requestData 
             ]; 
             $this->helperObj->logMe('error : Error occured while posting the request to the API', $this->logFiles['log']['filename']); 
             return $this->returnData($request->input('callback'), '600', $message, $returnData ); 
         } 
         $message = 'Success'; 
         $returnData = [ 
             'message' => 'Successfully posted the given request in the API (Email: '.$receivedData->EMail.')' 
         ]; 
         //Log::info($returnData); 
         return $this->returnData($request->input('callback'), '200', $message, $returnData ); 
     } 
   
   /**    /**
    * Response message function     * Response message function
    */      */ 
   public function returnData($jsonCallback = null, $status, $message, $error)    public function returnData($jsonCallback = null, $status, $message, $error)
   {    {
       $returnData = array(        $returnData = array(
           'status' => $status,            'status' => $status,
           'message' => $message,            'message' => $message,
           'body' => $error            'body' => $error
   
       );        );
       if (!empty($jsonCallback)) {        if (!empty($jsonCallback)) {
   
           echo $jsonCallback . '(' . json_encode($returnData) . ')';            echo $jsonCallback . '(' . json_encode($returnData) . ')';
           die();            die();
       } else {        } else {
   
           return response()->json($returnData);            return response()->json($returnData);
       }        }
   }    }
} }