Files
online.tbbank.gov.tm-larave…/app/Helpers/helpers.php
2024-01-30 23:40:29 +05:00

83 lines
2.1 KiB
PHP

<?php
use App\Models\System\Verification;
use Exception;
use GuzzleHttp\Client;
use GuzzleHttp\Psr7\Request as GuzzleRequest;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
/**
* Un mask phone from "+(993)-xx-xx-xx-xx"
*/
function unMaskPhone(string|int $phone): string
{
return substr(str_replace(['+', '(', ')', '-', '_'], '', $phone), 3);
}
/**
* Send a sms
*
* @return void
*/
function sendSMS(string|int $phone, string|int $message)
{
$client = new Client();
$headers = [
'Content-Type' => 'application/json;charset=utf-8;',
'Charset' => 'UTF-8',
];
$body = 'JSON={
"SendRequest": {
"TerminalID": "Online_PANEL",
"Version": "1",
"Lang": "EN",
"MobilePhone": "993'.$phone.'",
"Text": "'.$message.'"
}
}';
$request = new GuzzleRequest('POST', 'http://10.3.158.103:8080/kpsmsroute/online.request', $headers, $body);
try {
$res = $client->sendAsync($request)->wait();
return $res->getBody();
} catch (Exception $e) {
Log::error($e);
}
}
/**
* Send a sms verification code
*/
function sendSMSVerification(string|int $phone_number): ?Verification
{
$phone_code = rand(10000, 99999);
$verification = Verification::where(['username' => $phone_number])->first();
$verification ? $verification->update(['code' => $phone_code]) : Verification::create(['username' => $phone_number, 'code' => $phone_code]);
sendSMS($phone_number, 'Tassyklaýyş belgi: '.$phone_code);
return $verification;
}
/**
* Store auth events
*/
function storeAuthEvent(string $name, Request $request): void
{
Log::channel('auth_activity')
->info(sprintf(
'%s, APP_NAME: %s, REQUEST_TYPE: %s, SOURCE_IP: %s, SOURCE_PORT: %s, SOURCE_URL: %s, DESTINATION_IP: %s, DESTINATION_PORT: %s, DESTINATION_COUNTRY: %s',
$name,
config('app.name'),
$request->method(),
$request->ip(),
$_SERVER['REMOTE_PORT'],
$request->url(),
$request->host(),
$request->getPort(),
'tk',
));
}