File: /home/armgroup/libs/app/FarazSms.php
<?php
namespace App;
use Http;
use Illuminate\Support\Facades\Log;
class FarazSms
{
public function SendSMS(array $recipients, string $message)
{
$url = config('farazsms.base_url').'/v1/messages';
$data = [
'originator' => config('farazsms.originator'),
'recipients' => $recipients,
'message' => $message,
];
$this->logRequest('SendSMS', $url, 'POST', $data);
try {
$response = Http::withHeaders([
'Authorization' => 'AccessKey '.config('farazsms.api_key'),
'Content-Type' => 'application/json',
])->timeout(30)->post($url, $data);
$this->logResponse('SendSMS', $url, 'POST', $response);
} catch (\Exception $exception) {
Log::error("SendSMS \n POST {$url} \n", [$exception->getMessage()]);
}
}
public function SendPattern(string $pattern_code, string $recipient, array $values)
{
$url = config('farazsms.base_url').'/v1/messages/patterns/send';
$data = [
'pattern_code' => $pattern_code,
'originator' => config('farazsms.originator'),
'recipient' => $recipient,
'values' => $values,
];
$this->logRequest('SendPattern', $url, 'POST', $data);
try {
$response = Http::withHeaders([
'Authorization' => 'AccessKey '.config('farazsms.api_key'),
'Content-Type' => 'application/json',
])->timeout(30)->post($url, $data);
$this->logResponse('SendPattern', $url, 'POST', $response);
} catch (\Exception $exception) {
Log::error("SendPattern \n POST {$url} \n", [$exception->getMessage()]);
}
}
private function logRequest($log_id, $url, $method, $data)
{
Log::info("Request-{$log_id} \n {$method} {$url} \n", $data);
}
private function logResponse($log_id, $url, $method, $response)
{
Log::{$response->ok() ? 'info' : 'error'}("Response-{$log_id} \n {$method} {$url} \n", is_array($response->json()) ? $response->json() : [$response->json()]);
}
}