File: /mnt/data/ghayatcom/ghayatcom-api/app/Library/TwilioLibrary.php
<?php
namespace App\Library;
use Config;
use DB;
use Twilio\Exceptions\TwilioException;
use Twilio\Rest\Client;
use Exception;
use Throwable;
use App\AdminSettings;
class TwilioLibrary
{
public function __construct() {
$settings = AdminSettings::firstOrFail();
$this->status = $settings->twilio_status;
$this->account_sid = $settings->twilio_sid;
$this->auth_token = $settings->twilio_auth_token;
$this->twilio_verify_sid = $settings->twilio_verify_sid;
$this->twilio_number = $settings->twilio_number;
}
public function sendOtpSMS($mobile_number)
{
try{
if($this->status == 'enabled') {
$twilio = new Client($this->account_sid, $this->auth_token);
$twilio->verify->v2->services($this->twilio_verify_sid)->verifications->create($mobile_number, "sms");
}
return 1;
}catch(Exception | TwilioException | Throwable $e){
return $e->getMessage();
}
}
public function verifyOtpSMS($mobile_number, $verification_code)
{
try{
if($this->status == 'enabled') {
$twilio = new Client($this->account_sid, $this->auth_token);
$verification = $twilio->verify->v2->services($this->twilio_verify_sid)
->verificationChecks
->create(array('to' => $mobile_number, 'code' => trim($verification_code)));
if ($verification->valid) {
return 1;
}else{
return 'Invalid Mobile Number verification code.';
}
} else {
return 1;
}
}catch(Exception | TwilioException | Throwable $e){
return $e->getMessage();
}
}
public function sendSMS($mobile_number,$message) {
try {
if($this->status == 'enabled') {
$twilio = new Client($this->account_sid, $this->auth_token);
$twilio->messages->create($mobile_number, [
'from' => $this->twilio_number,
'body' => $message]
);
}
return 1;
}catch(Exception | TwilioException | Throwable $e){
return $e->getMessage();
}
}
}