Viewing File: /home/ubuntu/btcthrottle-backend/app/Helpers/viewHelper.php
<?php
use Carbon\Carbon;
use App\Helpers\Helper;
use Illuminate\Support\Str;
use Illuminate\Support\Facades\Lang;
use Illuminate\Support\Facades\Session;
use Akaunting\Setting\Facade as Setting;
use Illuminate\Support\Facades\App;
use App\Models\Transaction;
/**
* @method tr()
*
* @uses used to convert the string to language based string
*
* @created Arun
*
* @updated
*
* @param string $key
*
* @return string value
*/
function tr($key , $additional_key = "" , $lang_path = "messages.") {
if (!Session::has('locale')) {
$locale = Session::put('locale', config('app.locale'));
}else {
$locale = Session::get('locale');
}
return Lang::choice('messages.'.$key, 0, Array('other_key' => $additional_key), $locale);
}
/**
* @method placeholder()
*
* @uses used to get the placeholder for form fields
*
* @created Sulabh
*
* @updated
*
* @param string $key
*
* @return string value
*/
function placeholder($key, $additional_key = "") {
return tr('enter').' '.tr($key, $additional_key);
}
/**
* @method common_date()
*
* @uses used to get the timestamp with given timezone and the formate
*
* @created Arun
*
* @updated
*
* @param string $date, $timezone, $format
*
* @return string value
*/
function common_date($date , $timezone , $format = "d M Y h:i A") {
if(!$date) {
return "";
}
if($timezone) {
$date = convertTimeToUSERzone($date , $timezone , $format);
}
return date($format , strtotime($date));
}
/**
* @method convertTimeToUTCzone()
*
* @uses this function convert string to UTC time zone
*
* @created Arun
*
* @updated
*
* @param string $str, $userTimezone, $format
*
* @return string value
*/
function convertTimeToUTCzone($str, $userTimezone, $format = 'Y-m-d H:i:s') {
$new_str = new DateTime($str, new DateTimeZone($userTimezone));
$new_str->setTimeZone(new DateTimeZone('UTC'));
return $new_str->format( $format);
}
/**
* @method convertTimeToUSERzone()
*
* @uses this function convert string to Given time zone
*
* @created Arun
*
* @updated
*
* @param string $str, $userTimezone, $format
*
* @return string value
*/
function convertTimeToUSERzone($str, $userTimezone, $format = 'Y-m-d H:i:s') {
if(empty($str)){
return '';
}
try {
$new_str = new DateTime($str, new DateTimeZone('UTC') );
$new_str->setTimeZone(new DateTimeZone( $userTimezone ));
}
catch(\Exception $e) {
// Do Nothing
}
return $new_str->format( $format);
}
/**
* @method routefreestring()
*
* @uses formate string with space and other special characters to -
*
* @created Arun
*
* @updated
*
* @param string $string
*
* @return string value
*/
function routefreestring($string) {
$string = preg_replace('/[^A-Za-z0-9\-]/', '', str_replace(' ', '-', $string));
$search = [' ', '&', '%', "?",'=','{','}','$'];
$replace = ['-', '-', '-' , '-', '-', '-' , '-','-'];
$string = str_replace($search, $replace, $string);
return $string;
}
/**
* @method shrink_text()
*
* @uses formate longtext to short
*
* @created Arun
*
* @updated
*
* @param string $text, $end_position
*
* @return string value
*/
function shrink_text($text, $end_position) {
return strlen($text) > $end_position ? substr($text, 0, $end_position).'...' : $text;
}
/**
* @method formatted_amount()
*
* @uses formate amount with respective currency
*
* @created Arun
*
* @updated
*
* @param string $amount, $currency_code
*
* @return string value
*/
function formatted_amount($amount = 0.00, $currency_code = "") {
$currency_code = $currency_code ? : Setting::get('currency_code', 'USD');
$currency = Setting::get('currency', '$');
$amount = number_format((float)$amount, 2, '.', '');
$formatted_amount = "$currency $amount" ? : "0.00";
return $formatted_amount;
}
/**
* @method api_success()
*
* @uses translate for api success response
*
* @created Arun
*
* @updated
*
* @param string $key , $other_key , $lang_path
*
* @return string value
*/
function api_success($key , $other_key = "" , $lang_path = "messages.") {
if (!Session::has('locale')) {
$locale = Session::put('locale', config('app.locale'));
} else {
$locale = Session::get('locale');
}
return Lang::choice('api-success.'.$key, 0, Array('other_key' => $other_key), $locale);
}
/**
* @method api_error()
*
* @uses translate for api error response
*
* @created Arun
*
* @updated
*
* @param string $key , $other_key , $lang_path
*
* @return string value
*/
function api_error($key , $other_key = "" , $lang_path = "messages.") {
if (!Session::has('locale')) {
$locale = Session::put('locale', config('app.locale'));
} else {
$locale = Session::get('locale');
}
return Lang::choice('api-error.'.$key, 0, Array('other_key' => $other_key), $locale);
}
/**
* @method envfile()
*
* @uses get the configuration value from .env file
*
* @created Vidhya R
*
* @updated
*
* @param string $key
*
* @return string value
*/
function envfile($key) {
$data = getEnvValues();
if($data) {
return $data[$key];
}
return "";
}
function getEnvValues() {
$data = [];
$path = base_path('.env');
if(file_exists($path)) {
$values = file_get_contents($path);
$values = explode("\n", $values);
foreach ($values as $key => $value) {
$var = explode('=',$value);
if(count($var) == 2 ) {
if($var[0] != "")
$data[$var[0]] = $var[1] ? $var[1] : null;
} else if(count($var) > 2 ) {
$keyvalue = "";
foreach ($var as $i => $imp) {
if ($i != 0) {
$keyvalue = ($keyvalue) ? $keyvalue.'='.$imp : $imp;
}
}
$data[$var[0]] = $var[1] ? $keyvalue : null;
}else {
if($var[0] != "")
$data[$var[0]] = null;
}
}
array_filter($data);
}
return $data;
}
/**
* @method emptyObject()
*
* @uses get empty object for exception
*
* @created Arun
*
* @updated
*
* @param
*
* @return string value
*/
function emptyObject() {
return (Object)[];
}
/**
* @method common_server_date()
*
* @uses Get server timestamp
*
* @created Arun
*
* @updated
*
* @param
*
* @return string value
*/
function common_server_date($date , $timezone = "" , $format = "d M Y h:i A") {
if($date == "0000-00-00 00:00:00" || $date == "0000-00-00" || !$date) {
return $date = '';
}
if($timezone) {
$date = convertTimeToUTCzone($date, $timezone, $format);
}
return $timezone ? $date : date($format, strtotime($date));
}
/**
* @method footer_section_formatted()
*
* @uses to formate the footer_section
*
* @created shakthi
*
* @updated
*
* @param
*
* @return
*/
function footer_section_formatted($footer_section) {
$footer_section_formatted = [
FOOTER_SECTION_NONE => tr('none'),
FOOTER_SECTION_1 => tr('one'),
FOOTER_SECTION_2 => tr('two'),
FOOTER_SECTION_3 => tr('three')
];
return isset($footer_section_formatted[$footer_section]) ? $footer_section_formatted[$footer_section] : tr('na');
}
/**
* To get a withdrawals status in text format.
*
* @created Karthick
*
* @param int $status
* @return string
*/
function withdrawal_status_formatted($status) {
$status_formattd = [
WITHDRAW_INITIATED => tr('initiated'),
WITHDRAW_PAID => tr('paid'),
WITHDRAW_ONHOLD => tr('onhold'),
WITHDRAW_REJECTED => tr('rejected'),
WITHDRAW_CANCELLED => tr('cancelled'),
];
return isset($status_formattd[$status]) ? $status_formattd[$status] : tr('na');
}
/**
* To get document type.
*
* @created Karthick
*
* @param int $document_id
* @return int
*/
function get_document_type($document_id) {
$document = Document::find($document_id);
return $document ? $document->type : 1;
}
/**
* To get document status text.
*
* @created Karthick
*
* @param int $status
* @return string
*/
function get_document_status($status) {
$document_status = [
USER_DOCUMENT_NONE => tr('none'),
USER_DOCUMENT_PENDING => tr('pending'),
USER_DOCUMENT_APPROVED => tr('approved'),
USER_DOCUMENT_DECLINED => tr('declined')
];
return isset($document_status[$status]) ? $document_status[$status] : tr('na');
}
/*
* @method get_withdrawal_request_badge()
*
* @uses to get bootstrap badge color for view - status
*
* @created Shakthi
*
* @updated
*
* @param
*
* @return
*/
function get_withdrawal_request_badge($status) {
$badges = [
WITHDRAW_INITIATED => 'badge-light-warning',
WITHDRAW_PAID => 'badge-light-success',
WITHDRAW_REJECTED => 'badge-light-danger',
WITHDRAW_CANCELLED => 'badge-light-info'
];
return isset($badges[$status]) ? $badges[$status] : 'badge-light-primary';
}
/**
* @method get_user_document_badge()
*
* @uses to get bootstrap badge color for view - status
*
* @created Shakthi
*
* @updated
*
* @param
*
* @return
*/
function get_user_document_badge($status) {
$badges = [
USER_DOCUMENT_PENDING => 'badge-light-warning',
USER_DOCUMENT_APPROVED => 'badge-light-success',
USER_DOCUMENT_DECLINED => 'badge-light-danger'
];
return isset($badges[$status]) ? $badges[$status] : 'badge-light-';
}
/**
* @method get_user_document_sub_page()
*
* @uses to get sub page name for orders in sidebar.
*
* @created shakthi
*
* @updated
*
* @param
*
* @return
*/
function get_user_document_sub_page($status) {
$status_sub_badge = [
USER_DOCUMENT_PENDING => 'document-pending',
USER_DOCUMENT_APPROVED => 'document-approved',
USER_DOCUMENT_DECLINED => 'document-declined'
];
return isset($status_sub_badge[$status]) ? $status_sub_badge[$status] : 'user-document-all';
}
/**
* @method get_user_document_status()
*
* @uses to get status text
*
* @created Shakthi
*
* @updated
*
* @param
*
* @return
*/
function user_document_status_formatted($status) {
$status_formattd = [
USER_DOCUMENT_PENDING => tr('pending') ,
USER_DOCUMENT_APPROVED => tr('approved'),
USER_DOCUMENT_DECLINED => tr('declined')
];
return isset($status_formattd[$status]) ? $status_formattd[$status] : tr('pending');
}
/**
* To get subscription plan types.
*
* @created Karthick
*
* @return array
*/
function get_plan_types() {
return [PLAN_TYPE_DAY, PLAN_TYPE_WEEK, PLAN_TYPE_MONTH, PLAN_TYPE_YEAR];
}
/**
* To get subscription plan type in text format.
*
* @created Karthick
*
* @param string
*
* @return array
*/
function get_plan_type_formatted($plan_type) {
$plan_type_formattd = [
PLAN_TYPE_DAY => tr('day') ,
PLAN_TYPE_WEEK => tr('week'),
PLAN_TYPE_MONTH => tr('month'),
PLAN_TYPE_YEAR => tr('year')
];
return isset($plan_type_formattd[$plan_type]) ? $plan_type_formattd[$plan_type] : tr('na');
}
/**
* To format subscription plan.
*
* @created Karthick
*
* @param int | $plan
*
* @param string | $plan_type
*
* @return string
*/
function subscription_formatted($plan, $plan_type) {
if(!$plan || !$plan_type) {
return '';
}
return $subscription_formatted = $plan . ' ' . Str::plural($plan_type, $plan);
}
/**
* To format ticket status.
*
* @created Karthick
*
* @param int | $status
*
* @return string
*/
function ticket_formatted($status) {
$status_formattd = [
TICKET_CREATED => tr('created') ,
TICKET_ACCEPTED => tr('accepted'),
TICKET_CLOSED => tr('closed')
];
return isset($status_formattd[$status]) ? $status_formattd[$status] : tr('na');
}
/**
* To get tailwind badge class for ticket status.
*
* @created Karthick
*
* @param int | $status
*
* @return string
*/
function ticket_badge($status) {
$badge = [
TICKET_CREATED => 'bg-secondary/10 text-secondary dark:bg-secondary/15',
TICKET_ACCEPTED => 'bg-info/10 text-info dark:bg-info/15',
TICKET_CLOSED => 'bg-success/10 text-success dark:bg-success/15'
];
return isset($badge[$status]) ? $badge[$status] : 'bg-error/10 text-error dark:bg-error/15';
}
/**
* To format ticket priority.
*
* @created Karthick
*
* @param int | $status
*
* @return string
*/
function ticket_priority_formatted($status) {
$priority_formatted = [
PRIORITY_LOW => tr('low') ,
PRIORITY_MEDIUM => tr('medium'),
PRIORITY_HIGH => tr('high')
];
return isset($priority_formatted[$status]) ? $priority_formatted[$status] : tr('na');
}
/**
* To get tailwind badge class for ticket priority.
*
* @created Karthick
*
* @param int | $status
*
* @return string
*/
function ticket_priority_badge($status) {
$badge = [
PRIORITY_LOW => 'bg-success/10 text-success dark:bg-success/15',
PRIORITY_MEDIUM => 'bg-warning/10 text-warning dark:bg-warning/15',
PRIORITY_HIGH => 'bg-error/10 text-error dark:bg-error/15'
];
return isset($badge[$status]) ? $badge[$status] : 'bg-error/10 text-error dark:bg-error/15';
}
/**
* To get roles.
*
* @created Karthick
*
* @return array
*/
function get_roles() {
return [WRITE, READ];
}
function text_formatted($text) {
return !$text ? '' : substr($text, 0, 4).".....".substr($text, -(8));
}
/**
* To format chat status text.
*
* @created Karthick
*
* @param int | $status
*
* @return string
*/
function chat_status_formatted($status) {
$status_formattd = [
CHAT_INITIATED => tr('initiated') ,
CHAT_ONGOING => tr('ongoing'),
CHAT_CANCELLED => tr('cancelled'),
CHAT_MISSED => tr('missed'),
CHAT_OFFLINE => tr('offline'),
CHAT_COMPLETED => tr('completed')
];
return isset($status_formattd[$status]) ? $status_formattd[$status] : tr('na');
}
/**
* To get tailwind badge class for chat status.
*
* @created Karthick
*
* @param int | $status
*
* @return string
*/
function chat_status_badge($status) {
$badge = [
CHAT_INITIATED => 'bg-secondary/10 text-secondary dark:bg-secondary/15',
CHAT_ONGOING => 'bg-info/10 text-info dark:bg-info/15',
CHAT_CANCELLED => 'bg-error/10 text-error dark:bg-error/15',
CHAT_MISSED => 'bg-primary/10 text-primary dark:bg-primary/15',
CHAT_OFFLINE => 'bg-warning/10 text-warning dark:bg-warning/15',
CHAT_COMPLETED => 'bg-success/10 text-success dark:bg-success/15'
];
return isset($badge[$status]) ? $badge[$status] : 'bg-error/10 text-error dark:bg-error/15';
}
/**
* To format status text.
*
* @created Karthick
*
* @param int | $status
*
* @return string
*/
function status_formatted($status) {
return $status ? tr('approved') : tr('declined');
}
/**
* To format kyc status text.
*
* @created Shakthi
*
* @param int | $status
*
* @return string
*/
function kyc_status_formatted($status) {
$kyc_status_formattd = [
KYC_PENDING => tr('pending'),
KYC_INITIATED => tr('initiated'),
KYC_APPROVED => tr('approved'),
];
return $kyc_status_formattd[$status] ?? tr('na');
}
function kyc_status_badge($kyc_status) {
$badge = [
KYC_PENDING => 'badge bg-label-primary',
KYC_INITIATED => 'badge bg-label-warning',
KYC_APPROVED => 'badge bg-label-success',
];
return isset($badge[$kyc_status]) ? $badge[$kyc_status] : 'badge bg-label-danger';
}
/**
* To format email status text.
*
* @created Karthick
*
* @param int | $email_status
*
* @return string
*/
function email_status_formatted($email_status) {
return $email_status ? tr('verified') : tr('not_verified');
}
/**
* To format status text.
*
* @created Arun
*
* @param int | $status
*
* @return string
*/
function payment_status_formatted($status) {
$status_formattd = [
PAYMENT_INITIATED => tr('initiated') ,
PAYMENT_APPROVED => tr('approved'),
PAYMENT_DECLINED => tr('declined')
];
return isset($status_formattd[$status]) ? $status_formattd[$status] : tr('na');
}
/**
* To format payment link api url.
*
* @created Karthick
*
* @param int | $type
*
* @param string | $token
*
* @return string
*/
function get_payment_link_api_url($type, $token): string {
if(!$type || !$token) return tr('url_not_found');
$payment_link_api_urls = [
PAY_IN => route('payment_links.'.PAY_IN, ['token' => $token]),
PAY_OUT => route('payment_links.'.PAY_OUT, ['token' => $token])
];
return isset($payment_link_api_urls[$type]) ? $payment_link_api_urls[$type] : tr('na');
}
/**
* To generate a unique id in custom length.
*
* @created Karthick
*
* @param int | $length
*
* @return string
*/
function generate_unique_id($length = 10): string {
$unique_id = '';
while($length > Str::length($unique_id)) {
$unique_id .= sha1(time().rand());
}
return Str::substr($unique_id, 1, $length);
}
/**
* To format transaction type in text.
*
* @created Karthick
*
* @param int | $type
*
* @return string
*/
function transaction_type_formatted($type): string {
$transaction_types = [
PAY_IN => tr('pay_in'),
PAY_OUT => tr('pay_out')
];
return isset($transaction_types[$type]) ? $transaction_types[$type] : tr('na');
}
/**
* To encrypt / decrypt a certain details
*
* @created Karthick
*
* REF : https://docs.google.com/document/d/1jxl3fBJw8m2SCwkhYdJJP_3SSCE8_ZeZ/edit#heading=h.rio8g27xqutn
*
* @param string | $action
*
* @param string | $details
*
* @param string | $secret
*
* @return string
*/
function encrypt_decrypt($action, $details, $secret) {
$encrypt_method = config('app.encrypt.method'); $encrypt_iv = config('app.encrypt.iv');
if(!in_array($action, [ENCRYPT, DECRYPT]) || !$details || !$secret || !$encrypt_method || !$encrypt_iv) {
return '';
}
$key = substr(hash('sha256', $secret, true), 0, 32); $iv = substr(hash('sha256', $encrypt_iv), 0, 16);
if($action == ENCRYPT) {
$encrypt_decrypt = urlencode(base64_encode(openssl_encrypt($details, $encrypt_method, $key, OPENSSL_RAW_DATA, $iv)));
} else {
$encrypt_decrypt = json_decode(openssl_decrypt(base64_decode(urldecode($details)), $encrypt_method, $key, OPENSSL_RAW_DATA, $iv), true);
}
return $encrypt_decrypt;
}
/**
* To format status badge in css class.
*
* @created Karthick
*
* @param int | $status
*
* @return string
*/
function status_badge_formatted($status): string {
$status_badge = [
APPROVED => 'bg-success/10 text-success dark:bg-success/15',
DECLINED => 'bg-error/10 text-error dark:bg-error/15',
];
return isset($status_badge[$status]) ? $status_badge[$status] : $status_badge[1];
}
/**
* To format payment link type in text.
*
* @created Karthick
*
* @param int | $type
*
* @return string
*/
function payment_link_type_formatted($type): string {
$payment_link_types = [
PAYMENT_LINK_TYPE_UPI => tr('upi'),
PAYMENT_LINK_TYPE_CARD => tr('card'),
PAYMENT_LINK_TYPE_CRYPTO => tr('crypto'),
PAYMENT_LINK_TYPE_INR => tr('inr')
];
return isset($payment_link_types[$type]) ? $payment_link_types[$type] : tr('na');
}
/**
* To get the all crypto methods.
*
* @created Karthick
*
* @return array
*/
function get_crypto_types() {
return [
CRYPTO_TYPE_ETH,
CRYPTO_TYPE_BUSD,
CRYPTO_TYPE_USDC,
CRYPTO_TYPE_USDT_ERC20,
CRYPTO_TYPE_USDT_TRON20,
];
}
/**
* To get the crypto api id to get the token value.
*
* @created Karthick
*
* @param int $crypto_type
*
* @return string
*/
function get_crypto_type_api_id($crypto_type):string {
$crypto_type_api_ids = [
CRYPTO_TYPE_ETH => 'ethereum',
CRYPTO_TYPE_BUSD => 'binance-usd',
CRYPTO_TYPE_USDC => 'usd-coin',
CRYPTO_TYPE_USDT_ERC20 => 'tether',
CRYPTO_TYPE_USDT_TRON20 => 'tron'
];
return isset($crypto_type_api_ids[$crypto_type]) ? $crypto_type_api_ids[$crypto_type] : '';
}
/**
* To get the crypto api id to get the token value.
*
* @created Karthick
*
* @param int $crypto_type
*
* @return string
*/
function get_crypto_symbol($crypto_type):string {
$crypto_type_api_ids = [
CRYPTO_TYPE_ETH => 'ETH',
CRYPTO_TYPE_BUSD => 'BUSD',
CRYPTO_TYPE_USDC => 'USDC',
CRYPTO_TYPE_USDT_ERC20 => 'USDT',
CRYPTO_TYPE_USDT_TRON20 => 'USDT'
];
return isset($crypto_type_api_ids[$crypto_type]) ? $crypto_type_api_ids[$crypto_type] : '';
}
/**
* To get the commisson % of admin for a particular payment type.
*
* @created Karthick
*
* @param int $crypto_type
*
* @return string
*/
function get_commission_percentage($payment_type) {
$admin_commission_types = [
PAYMENT_LINK_TYPE_UPI => Setting::get('upi_commission', 10),
PAYMENT_LINK_TYPE_CARD => Setting::get('card_commission', 10),
PAYMENT_LINK_TYPE_CRYPTO => Setting::get('crypto_commission', 10),
PAYMENT_LINK_TYPE_INR => Setting::get('inr_commission', 10)
];
return isset($admin_commission_types[$payment_type]) ? $admin_commission_types[$payment_type] : null;
}
/**
* To get user withdrawal status text.
*
* @created Karthick
*
* @param int $status
* @return string
*/
function user_withdrawal_status_formatted($status) {
$user_withdrawal_status = [
WITHDRAW_INITIATED => tr('initiated'),
WITHDRAW_PAID => tr('paid'),
WITHDRAW_ONHOLD => tr('onhold'),
WITHDRAW_REJECTED => tr('rejected'),
WITHDRAW_CANCELLED => tr('cancelled'),
];
return isset($user_withdrawal_status[$status]) ? $user_withdrawal_status[$status] : tr('na');
}
/**
* To format payment link badge in css class.
*
* @created Karthick
*
* @param int | $payment_type
*
* @return string
*/
function payment_link_type_badge($payment_type): string {
$payment_link_type_badge = [
PAYMENT_LINK_TYPE_UPI => 'badge bg-label-warning',
PAYMENT_LINK_TYPE_CARD => 'badge bg-label-info',
PAYMENT_LINK_TYPE_CRYPTO => 'badge bg-label-danger',
PAYMENT_LINK_TYPE_INR => 'badge bg-label-success',
];
return isset($payment_link_type_badge[$payment_type]) ? $payment_link_type_badge[$payment_type] : 'badge bg-label-danger';
}
/**
* To format withdrawal badge in css class.
*
* @created Karthick
*
* @param int | $status
*
* @return string
*/
function withdrawal_badge_formatted($status): string {
$withdrawal_badge = [
WITHDRAW_INITIATED => 'badge bg-label-primary',
WITHDRAW_PAID => 'badge bg-label-success',
WITHDRAW_ONHOLD => 'badge bg-label-info',
WITHDRAW_REJECTED => 'badge bg-label-warning',
WITHDRAW_CANCELLED => 'badge bg-label-danger'
];
return isset($withdrawal_badge[$status]) ? $withdrawal_badge[$status] : 'badge bg-label-danger';
}
/**
* To get the minimum amount for a particular payment type.
*
* @created Karthick
*
* @param int $crypto_type
*
* @return string
*/
function get_minimum_pay_in_amount($payment_type) {
$default = 10;
$minimum_pay_in_amounts = [
PAYMENT_LINK_TYPE_UPI => Setting::get('upi_minimum_pay_in_amount', $default),
PAYMENT_LINK_TYPE_CARD => Setting::get('card_minimum_pay_in_amount', $default),
PAYMENT_LINK_TYPE_CRYPTO => Setting::get('crypto_minimum_pay_in_amount', $default),
PAYMENT_LINK_TYPE_INR => Setting::get('inr_minimum_pay_in_amount', $default)
];
return isset($minimum_pay_in_amounts[$payment_type]) ? $minimum_pay_in_amounts[$payment_type] : $default;
}
/**
* To get the matching transaction status constant for stylopay payments.
*
* @created Karthick
*
* @param int $code
*
* @return int
*/
function get_transaction_status_constant($code) {
$transaction_status_constants = [
0 => TRANSACTION_PROCESSING,
11 => TRANSACTION_PROCESSING,
14 => TRANSACTION_SUCCESS,
15 => TRANSACTION_FAILED
];
return isset($transaction_status_constants[$code]) ? $transaction_status_constants[$code] : TRANSACTION_STYLOPAY_UNKNOWN;
}
/**
* To format the long text.
*
* @created Shakthi
*
* @param string
*
* @return string
*/
function withdrawal_text_formatted($text, $count) {
return !$text ? '' : substr($text, 0, $count).".....".substr($text, -($count));
}
/**
* To get trader wallet payment status text.
*
* @created Karthick
*
* @param int $status
* @return string
*/
function wallet_payment_status_formatted($status) {
$wallet_payment_status = [
PAYMENT_INITIATED => tr('initiated'),
PAYMENT_APPROVED => tr('approved'),
PAYMENT_DECLINED => tr('declined')
];
return isset($wallet_payment_status[$status]) ? $wallet_payment_status[$status] : tr('na');
}
/**
* To format trader wallet payment badge in css class.
*
* @created Karthick
*
* @param int | $status
*
* @return string
*/
function wallet_payment_badge_formatted($status): string {
$withdrawal_badge = [
PAYMENT_INITIATED => 'badge bg-label-primary',
PAYMENT_APPROVED => 'badge bg-label-success',
PAYMENT_DECLINED => 'badge bg-label-danger'
];
return isset($withdrawal_badge[$status]) ? $withdrawal_badge[$status] : 'badge bg-label-danger';
}
/**
* To get the inr type formatted text.
*
* @created Karthick
*
* @param int $type
*
* @return string
*/
function inr_type_formatted($type) {
$inr_types = [
PAYMENT_METHOD_TYPE_UPI => tr('upi'),
PAYMENT_METHOD_TYPE_NEFT => tr('neft'),
PAYMENT_METHOD_TYPE_IMPS => tr('imps'),
PAYMENT_METHOD_TYPE_RTGS => tr('rtgs')
];
return isset($inr_types[$type]) ? $inr_types[$type] : tr('na');
}
/**
* To format payment method badge in css class.
*
* @created Karthick
*
* @param int | $status
*
* @return string
*/
function payment_method_badge_formatted($status): string {
$payment_method_badge = [
PAYMENT_METHOD_TYPE_NEFT => 'badge bg-success',
PAYMENT_METHOD_TYPE_IMPS => 'badge bg-info',
PAYMENT_METHOD_TYPE_RTGS => 'badge bg-warning',
];
return isset($payment_method_badge[$status]) ? $payment_method_badge[$status] : 'badge bg-danger';
}
/**
* To get all the available payment methods.
*
* @created Karthick
*
* @return array
*/
function get_payment_methods(): array {
return [PAYMENT_METHOD_TYPE_UPI, PAYMENT_METHOD_TYPE_NEFT, PAYMENT_METHOD_TYPE_IMPS, PAYMENT_METHOD_TYPE_RTGS];
}
/**
* To get transaction status text.
*
* @created Arun
*
* @param int $status
* @return string
*/
function transaction_status_formatted($status) {
$transaction_status_formatted = [
TRANSACTION_INITIATED => tr('initiated'),
TRANSACTION_PROCESSING => tr('inprogress'),
TRANSACTION_SUCCESS => tr('success'),
TRANSACTION_FAILED => tr('failed'),
TRANSACTION_CANCELLED => tr('cancelled'),
TRANSACTION_CHARGEBACK => tr('chargeback'),
TRANSACTION_REFUND => tr('refunded'),
];
return isset($transaction_status_formatted[$status]) ? $transaction_status_formatted[$status] : tr('na');
}
/**
* To get transaction badge class.
*
* @created Arun
*
* @param int $status
* @return string
*/
function transaction_badge_formatted($status) {
$transaction_badge_formatted = [
TRANSACTION_INITIATED => 'badge bg-label-primary',
TRANSACTION_PROCESSING => 'badge bg-label-info',
TRANSACTION_SUCCESS => 'badge bg-label-success',
TRANSACTION_FAILED => 'badge bg-label-danger',
TRANSACTION_CANCELLED => 'badge bg-label-warning',
TRANSACTION_CHARGEBACK => 'badge bg-label-primary',
TRANSACTION_REFUND => 'badge bg-label-info',
];
return isset($transaction_badge_formatted[$status]) ? $transaction_badge_formatted[$status] : 'badge bg-label-danger';
}
/**
* To get the success message for transactions.
*
* @created Karthick
*
* @param int $key
*
* @param array $params
*
* @return string
*/
function transaction_success($key , $params = []) {
App::setLocale(Session::get('locale', config('app.locale')));
return __("transaction-success.$key", $params);
}
/**
* To get the error message for transactions.
*
* @created Karthick
*
* @param int $key
*
* @param array $params
*
* @return string
*/
function transaction_error($key , $params = []) {
App::setLocale(Session::get('locale', config('app.locale')));
return __("transaction-error.$key", $params);
}
/**
* To get the country codes (Alpha 2)
*
* @created Karthick
*
* @return array
*/
function country_codes(): array {
return ["AF","AL","DZ","AS","AD","AO","AI","AQ","AG","AR","AM","AW","AU","AT","AZ","BS","BH","BD","BB","BY","BE","BZ","BJ","BM","BT","BO","BQ","BA","BW","BV","BR","IO","BN","BG","BF","BI","CV","KH","CM","CA","KY","CF","TD","CL","CN","CX","CC","CO","KM","CD","CG","CK","CR","HR","CU","CW","CY","CZ","CI","DK","DJ","DM","DO","EC","EG","SV","GQ","ER","EE","SZ","ET","FK","FO","FJ","FI","FR","GF","PF","TF","GA","GM","GE","DE","GH","GI","GR","GL","GD","GP","GU","GT","GG","GN","GW","GY","HT","HM","VA","HN","HK","HU","IS","IN","ID","IR","IQ","IE","IM","IL","IT","JM","JP","JE","JO","KZ","KE","KI","KP","KR","KW","KG","LA","LV","LB","LS","LR","LY","LI","LT","LU","MO","MG","MW","MY","MV","ML","MT","MH","MQ","MR","MU","YT","MX","FM","MD","MC","MN","ME","MS","MA","MZ","MM","NA","NR","NP","NL","NC","NZ","NI","NE","NG","NU","NF","MP","NO","OM","PK","PW","PS","PA","PG","PY","PE","PH","PN","PL","PT","PR","QA","MK","RO","RU","RW","RE","BL","SH","KN","LC","MF","PM","VC","WS","SM","ST","SA","SN","RS","SC","SL","SG","SX","SK","SI","SB","SO","ZA","GS","SS","ES","LK","SD","SR","SJ","SE","CH","SY","TW","TJ","TZ","TH","TL","TG","TK","TO","TT","TN","TR","TM","TC","TV","UG","UA","AE","GB","UM","US","UY","UZ","VU","VE","VN","VG","VI","WF","EH","YE","ZM","ZW","AX"];
}
/**
* To mask a card number.
*
* @created Karthick
*
* @param string $card_number
*
* @param int $digits
*
* @return array
*/
function card_masked($card_number, $digits = -4): array {
$card_last_four_digits = Str::substr($card_number, $digits);
return [
'card_last_four_digits' => $card_last_four_digits,
'card_number' => Str::substr($card_number, 0, 8) . Str::repeat("*", 4) . $card_last_four_digits
];
}
/**
* To generate a payload using Transaction model.
*
* @created Karthick
*
* @param $transaction
*
* @return array
*/
function generate_transaction_callback_payload($transaction): array {
if(!$transaction instanceof Transaction) {
return [];
}
return [
"reference_id" => $transaction->unique_id,
"order_id" => $transaction->order_id,
"amount" => $transaction->total,
"currency_code" => $transaction->currency_code,
"currency_symbol" => $transaction->currency_symbol,
"payment_id" => $transaction->payment_id,
"mode" => $transaction->mode,
"status" => transaction_status_formatted($transaction->status),
"created_at" => $transaction->created_at
];
}
/**
* To get the app all service types.
*
* @created Karthick
*
* @return array
*/
function get_all_service_types(): array {
return [
SERVICE_TYPE_ONE,
SERVICE_TYPE_TWO,
SERVICE_TYPE_THREE
];
}
/**
* To get the app service types (only available services).
*
* @created Karthick
*
* @return array
*/
function get_available_service_types(): array {
return [
SERVICE_TYPE_ONE,
SERVICE_TYPE_TWO
];
}
/**
* To get the api mode formatted text.
*
* @created Karthick
*
* @param int | $mode
*
* @return string
*/
function api_mode_formatted($mode): string {
$api_modes = [
TRANSACTION_MODE_SANDBOX => tr('sandbox'),
TRANSACTION_MODE_LIVE => tr('live')
];
return isset($api_modes[$mode]) ? $api_modes[$mode] : tr('na');
}
/**
* To format api mode badge in css class.
*
* @created Karthick
*
* @param int | $mode
*
* @return string
*/
function api_mode_badge_formatted($mode): string {
$api_modes_badge = [
TRANSACTION_MODE_SANDBOX => 'badge bg-warning',
TRANSACTION_MODE_LIVE => 'badge bg-success'
];
return isset($api_modes_badge[$mode]) ? $api_modes_badge[$mode] : 'badge bg-danger';
}
/**
* To get the service type formatted text.
*
* @created Karthick
*
* @param int | $service_type
*
* @return string
*/
function service_type_formatted($service_type): string {
$service_types = [
SERVICE_TYPE_ONE => tr('coriunder'),
SERVICE_TYPE_TWO => tr('intersect')
];
return isset($service_types[$service_type]) ? $service_types[$service_type] : tr('na');
}
/**
* To format service type badge in css class.
*
* @created Karthick
*
* @param int | $service_type
*
* @return string
*/
function service_type_badge_formatted($service_type): string {
$service_type_badge = [
SERVICE_TYPE_ONE => 'badge bg-label-info',
SERVICE_TYPE_TWO => 'badge bg-label-warning'
];
return isset($service_type_badge[$service_type]) ? $service_type_badge[$service_type] : 'badge bg-danger';
}
/**
* To get the service type description text.
*
* @created Karthick
*
* @param int | $service_type
*
* @return string
*/
function service_type_description($service_type): string {
$service_descriptions = [
SERVICE_TYPE_ONE => tr('coriunder_description'),
SERVICE_TYPE_TWO => tr('intersect_description')
];
return isset($service_descriptions[$service_type]) ? $service_descriptions[$service_type] : tr('na');
}
/**
* To get the service type icon.
*
* @created Karthick
*
* @param int | $service_type
*
* @return string
*/
function service_type_icon($service_type): string {
$service_type_icons = [
SERVICE_TYPE_ONE => 'square-rounded-letter-c',
SERVICE_TYPE_TWO => 'circle-letter-i'
];
return isset($service_type_icons[$service_type]) ? $service_type_icons[$service_type] : 'circle-letter-i';
}
function wallet_text_formatted($text, $count) {
return !$text ? '' : substr($text, 0, $count).".....".substr($text, -($count));
}
?>
Back to Directory
File Manager