/home/kueuepay/www/app/Http/Controllers/Api/V1/User/DashboardController.php
<?php
namespace App\Http\Controllers\Api\V1\User;
use App\Models\User;
use App\Models\UserWallet;
use App\Models\Transaction;
use App\Http\Helpers\Response;
use App\Models\UserNotification;
use Illuminate\Support\Facades\DB;
use App\Http\Controllers\Controller;
use App\Constants\PaymentGatewayConst;
use App\Providers\Admin\CurrencyProvider;
class DashboardController extends Controller
{
public function dashboard() {
$default_currency = CurrencyProvider::default();
// User Wallets
$user_wallets = UserWallet::auth()->select('id','user_id','currency_id', DB::raw('CAST(balance AS FLOAT) as balance'),'status','created_at')->with(['currency' => function($q) {
$q->select('id','code','flag','name','symbol');
}])->get();
$gateway_image_paths = [
'base_url' => url("/"),
'path_location' => files_asset_path_basename("payment-gateways"),
'default_image' => files_asset_path_basename("profile-default"),
];
$transactions = Transaction::auth()->orderBy('id','desc')->get()->map(function($data){
if($data->type == PaymentGatewayConst::TYPETRANSFERMONEY){
if($data->attribute == PaymentGatewayConst::SEND){
$receiver_email = $data->details->receiver->email ?? '';
$receiver = User::where('email',$receiver_email)->first();
$receiver_fullname = $receiver->fullname;
$receiver_image = $receiver->image;
$sender_fullname = '';
$sender_image = '';
$card_name = '';
$card_number = '';
}else{
$sender_email = $data->details->sender->email ?? '';
$sender = User::where('email',$sender_email)->first();
$sender_fullname = $sender->fullname;
$sender_image = $sender->image;
$receiver_fullname = '';
$receiver_image = '';
$card_name = '';
$card_number = '';
}
}
if($data->type == PaymentGatewayConst::TYPEADDMONEY){
$gateway_image = $data->payment_gateway->gateway->image;
$card_name = '';
$card_number = '';
}
if($data->type == PaymentGatewayConst::CARD_PAYMENT){
$card_name = decrypt($data->card_method->name) ?? '';
$card_number = '************'.substr(decrypt($data->card_method->card_number) ?? '',-4) ?? '';
}
return [
'type' => $data->type,
'trx_id' => $data->trx_id,
'sender_fullname' => $sender_fullname ?? '',
'sender_email' => $sender_email ?? '',
'sender_image' => $sender_image ?? '',
'receiver_fullname' => $receiver_fullname ?? '',
'receiver_email' => $receiver_email ?? '',
'receiver_image' => $receiver_image ?? '',
'card_name' => $card_name ?? '',
'card_number' => $card_number ?? '',
'payment_gateway' => $data->payment_gateway->name ?? '',
'gateway_image' => $gateway_image ?? '',
'payment_type' => $data->payment_type ?? '',
'request_amount' => get_amount($data->request_amount),
'total_charge' => get_amount($data->total_charge),
'total_payable' => get_amount($data->total_payable),
'request_currency' => $data->request_currency,
'payment_currency' => $data->payment_currency,
'remark' => $data->remark,
'attribute' => $data->attribute,
'status' => $data->stringStatus->value,
'reject_reason' => $data->reject_reason,
'created_at' => $data->created_at
];
});
// User Information
$user_info = auth()->user()->only([
'id',
'firstname',
'lastname',
'fullname',
'username',
'email',
'image',
'mobile_code',
'mobile',
'full_mobile',
'email_verified',
'kyc_verified',
'two_factor_verified',
'two_factor_status',
'two_factor_secret',
]);
$profile_image_paths = [
'base_url' => url("/"),
'path_location' => files_asset_path_basename("user-profile"),
'default_image' => files_asset_path_basename("profile-default"),
];
$currency_image_paths = [
'base_url' => url("/"),
'path_location' => files_asset_path_basename("currency-flag"),
'default_image' => files_asset_path_basename("profile-default"),
];
$total_add_money = Transaction::auth()->where('type',PaymentGatewayConst::TYPEADDMONEY)->count();
$total_payments = Transaction::auth()->where('type',PaymentGatewayConst::CARD_PAYMENT)->count();
return Response::success([__('User dashboard data fetch successfully!')],[
'instructions' => [
'user_info' => [
'kyc_verified' => "0: Default, 1: Approved, 2: Pending, 3:Rejected",
]
],
'transactions' => $transactions,
'user_info' => $user_info,
'wallets' => $user_wallets,
'profile_image_paths' => $profile_image_paths,
'currency_image_paths' => $currency_image_paths,
'gateway_image_paths' => $gateway_image_paths,
'total_add_money' => $total_add_money,
'total_payments' => $total_payments
]);
}
/**
* Method for get the user notification.
*/
public function notifications() {
$user = auth()->user()->id;
$notification = UserNotification::where('user_id',$user)->orderBy("id","desc")->get()->map(function($data){
return [
'id' => $data->id,
'details' => $data->details,
'created_at' => $data->created_at
];
});
return Response::success([__('Notification Data Fetch Successfuly.')],[
'notification' => $notification,
],200);
}
}
Run Command [Bypass]
Run Command
Forgot Password
Reset Your Forgotten Password?
Take control of your account by resetting your password. Our password recovery page guides you through the necessary steps to securely reset your password.