Files
digifi-mware/app/Controllers/BaseController.php
T
CHIEFSOFT\ameye 7bbc83d187 sms
2024-06-17 12:22:08 -04:00

204 lines
6.6 KiB
PHP

<?php
namespace App\Controllers;
use CodeIgniter\API\ResponseTrait;
use CodeIgniter\Controller;
use CodeIgniter\HTTP\CLIRequest;
use CodeIgniter\HTTP\IncomingRequest;
use CodeIgniter\HTTP\RequestInterface;
use CodeIgniter\HTTP\ResponseInterface;
use Psr\Log\LoggerInterface;
use Exception;
/**
* Class BaseController
*
* BaseController provides a convenient place for loading components
* and performing functions that are needed by all your controllers.
* Extend this class in any new controllers:
* class Home extends BaseController
*
* For security be sure to declare any new methods as protected or private.
*/
abstract class BaseController extends Controller
{
/**
* Instance of the main Request object.
*
* @var CLIRequest|IncomingRequest
*/
protected $request;
use ResponseTrait;
/**
* An array of helpers to be loaded automatically upon
* class instantiation. These helpers will be available
* to all other controllers that extend BaseController.
*
* @var list<string>
*/
protected $db;
private $con_name = 'digifi_db'; // 'wrench_blog';
protected $helpers = [];
/**
* Be sure to declare properties for any property fetch you initialized.
* The creation of dynamic property is deprecated in PHP 8.2.
*/
// protected $session;
/**
* @return void
*/
public function initController(RequestInterface $request, ResponseInterface $response, LoggerInterface $logger)
{
// Do Not Edit This Line
parent::initController($request, $response, $logger);
// Preload any models, libraries, etc, here.
// E.g.: $this->session = \Config\Services::session();
try {
$this->db = \Config\Database::connect($this->con_name);
} catch (Exception $e) {
echo 'Caught Data Connect Exception ::: ', $e->getMessage(), "\n";
}
}
protected function insert_db($table_name, $insert_data) : array{
$row = [];
$this->db->table($table_name)->insert($insert_data);
$query = $this->db->query("SELECT * FROM $table_name ORDER BY id DESC LIMIT 1");
$row = $query->getRowArray();
// echo $row->name;
return $row;
}
protected function update_db($table_name, $update_data, $where_data) : array{
$row = [];
$this->db->table($table_name)->insert($insert_data);
$query = $this->db->query("SELECT * FROM $table_name ORDER BY id DESC LIMIT 1");
$row = $query->getRowArray();
// echo $row->name;
return $row;
}
public function APIcall($method, $url, $data) {
// $curl = curl_init();
$curl = curl_init($url);
switch ($method) {
case "GET":
$params2 = '';
foreach($data as $key2=>$value2)
$params2 .= $key2.'='.$value2.'&';
$params2 = trim($params2, '&');
$url = $url.'?'.$params2;// add param to URL
log_message('critical', "API URL FINAL =>".$url );
//curl_setopt($curl, CURLOPT_FRESH_CONNECT, true);
//curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
//curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($data));
break;
case "POST":
curl_setopt($curl, CURLOPT_POST, 1);
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
case "PUT":
curl_setopt($curl, CURLOPT_CUSTOMREQUEST, "PUT");
if ($data)
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
break;
}
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HTTPHEADER, array(
'APIKEY: RegisteredAPIkey',
'Content-Type: application/json',
));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$result = curl_exec($curl);
if(!$result) {
echo("Connection failure!");
}
curl_close($curl);
return json_decode($result, true);
}
public function randomPassword( $length = 8 )
{
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^&*()_-=+;:,.?";
$length = rand(10, 16);
$password = substr( str_shuffle(sha1(rand() . time()) . $chars ), 0, $length );
return $password;
}
public function sendSMS($to_number):string{
$API_KEY ="TLYsgMTZBeasJHHimcWXG1QPHmjH7FPwnbKwiqTEwGCu6TrK0v13hCn8N6SYZp";
$BASE_URL = "https://api.ng.termii.com";
// $curl = curl_init();
// $data = array("api_key" => $API_KEY, "to" => $to_number, "from" => "talert",
// "sms" => "Hi there, testing Termii ", "type" => "plain", "channel" => "generic" );
//
// $post_data = json_encode($data);
//
// curl_setopt_array($curl, array(
// CURLOPT_URL => $BASE_URL."/api/sms/send",
// CURLOPT_RETURNTRANSFER => true,
// CURLOPT_ENCODING => "",
// CURLOPT_MAXREDIRS => 10,
// CURLOPT_TIMEOUT => 0,
// CURLOPT_FOLLOWLOCATION => true,
// CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
// CURLOPT_CUSTOMREQUEST => "POST",
// CURLOPT_POSTFIELDS => $post_data,
// CURLOPT_HTTPHEADER => array(
// "Content-Type: application/json"
// ),
// ));
//
// $response = curl_exec($curl);
//
// curl_close($curl);
// return $response;
log_message('error', "SMS TO API---=>". $to_number);
$curl = curl_init();
$data = array(
"to"=> $to_number,
"from"=> "DigiFI",
"sms"=> "Hi there, testing 123456",
"type"=> "plain",
"channel"=> "generic",
"api_key"=> $API_KEY,
);
$post_data = json_encode($data);
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://termii.com/api/sms/send',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_POSTFIELDS => $post_data,
CURLOPT_HTTPHEADER => array(
'Content-Type: application/json'
),
));
$response = curl_exec($curl);
log_message('error', "SMS TO API Response---=>". $response);
curl_close($curl);
return $response;
}
}