/home/kueuepay/public_html/app/Http/Controllers/Admin/TransferMoneyLogsController.php
<?php

namespace App\Http\Controllers\Admin;

use App\Models\Transaction;
use Illuminate\Http\Request;
use App\Http\Helpers\Response;
use App\Models\TransactionDevice;
use App\Http\Controllers\Controller;
use App\Constants\PaymentGatewayConst;
use Illuminate\Support\Facades\Validator;

class TransferMoneyLogsController extends Controller
{
    /**
     * Method for transfer money logs
     * @return view
     */
    public function index(){
        $page_title = "All Transfer Money Logs";
        $transactions   = Transaction::where('type',PaymentGatewayConst::TYPETRANSFERMONEY)
                                    ->where('attribute',PaymentGatewayConst::SEND)
                                    ->with('user')->orderBy('id','desc')->paginate(15);

        return view('admin.sections.transfer-logs.index',compact(
            'page_title',
            'transactions'
        ));
    }
    /**
     * Method for transfer money confirm logs
     * @return view
     */
    public function confirm(){
        $page_title     = "Confirm Transfer Money Logs";
        $transactions   = Transaction::where('type',PaymentGatewayConst::TYPETRANSFERMONEY)
                                    ->where('attribute',PaymentGatewayConst::SEND)
                                    ->where('status',PaymentGatewayConst::STATUSSUCCESS)
                                    ->with('user')->orderBy('id','desc')->paginate(15);

        return view('admin.sections.transfer-logs.confirm',compact(
            'page_title',
            'transactions'
        ));
    }
    /**
     * Method for transfer money confirm logs
     * @return view
     */
    public function details($trx_id){
        $page_title             = "Transfer Money Log Details";
        $transaction            = Transaction::with(['user_wallet'])->where('trx_id',$trx_id)->first();
        $transaction_device     = TransactionDevice::where('transaction_id',$transaction->id)->first();
        if(!$transaction) return back()->with(['error' => ['Sorry! Data not found.']]);
        
        return view('admin.sections.transfer-logs.details',compact(
            'page_title',
            'transaction',
            'transaction_device'
        ));
    }
    /** 
    * Method for search all log  
    */
    public function search(Request $request) {
        $validator = Validator::make($request->all(),[
            'text'  => 'required|string',
        ]);
        if($validator->fails()) {
            $error = ['error' => $validator->errors()];
            return Response::error($error,null,400);
        }

        $validated = $validator->validate();
        
        $transactions    = Transaction::where('type',PaymentGatewayConst::TYPETRANSFERMONEY)
                                        ->search($validated['text'])->get();
       
        return view('admin.components.data-table.transfer-table',compact('transactions'));
        
    }
}
Best Practice

Best Practices

To ensure a smooth integration process and optimal performance, follow these best practices:

  1. Use secure HTTPS connections for all API requests.
  2. Implement robust error handling to handle potential issues gracefully.
  3. Regularly update your integration to stay current with any API changes or enhancements.