From 2064c2d6e5b1e04ed9dcd498be9a9c1889137ab3 Mon Sep 17 00:00:00 2001 From: Kwesi Banson Jnr Date: Sun, 5 Apr 2026 09:09:04 +0000 Subject: [PATCH] completed the send SMS which uses the first client App API key --- .../Controllers/ClientsTrafficController.php | 34 +++++++------------ app/Utilities/ApiCalls.php | 16 +++++++-- .../client-traffic/client-apps.blade.php | 2 +- resources/views/layouts/master.blade.php | 21 +++++++----- 4 files changed, 39 insertions(+), 34 deletions(-) diff --git a/app/Http/Controllers/ClientsTrafficController.php b/app/Http/Controllers/ClientsTrafficController.php index 541bc23..d45cc88 100644 --- a/app/Http/Controllers/ClientsTrafficController.php +++ b/app/Http/Controllers/ClientsTrafficController.php @@ -53,7 +53,6 @@ class ClientsTrafficController extends Controller public function indexTabulator(Request $request){ $client = new Client(); - // Construct the URL with pagination parameters from the request $page = $request->input('page', 0); // Note: This API seems 0-indexed $size = $request->input('size', 20); /* @@ -71,7 +70,7 @@ class ClientsTrafficController extends Controller */ $client_id = session('current_user.org_id'); - $clients_url = "messages/client/1?page=0&size=20&sort=createdAt,desc"; + $clients_url = "messages/client/$client_id?page=0&size=20&sort=createdAt,desc"; $result = ApiCalls::CurlGet($clients_url); // $content_only = collect($result['content'])->toArray(); $data = json_decode($result, true); @@ -86,8 +85,8 @@ class ClientsTrafficController extends Controller // ]); } public function getClientApps(){ - //dump(session('current_user')); $client_id = session('current_user.org_id'); + $apps_url = "applications/client/$client_id?page=0&size=20&sort=createdAt,desc"; $result = ApiCalls::CurlGet($apps_url); $result_arr = json_decode($result); @@ -109,28 +108,19 @@ class ClientsTrafficController extends Controller } public function store(Request $request){ - + //233244982690,233553175995,233204040805 $this->validate($request, [ 'message' => 'required', 'sender_id' => 'required|max:11', 'recipients_file'=> 'mimes:csv,txt|max:4096', 'pasted' => 'sometimes', - // 'status' => 'required', ]); - $recipients_arr = []; - // $create_client_url = "clients"; - // $result = ApiCalls::CurlPost(json_encode($client_arr), $create_client_url); + $recipients_arr = []; - if ($request->recipient_file && $request->pasted) { - // code... - } if ($request->filled('pasted')) { - // code... - $pasted_arr = explode(", ", $request->pasted); + $pasted_arr = explode(",", $request->pasted); foreach ($pasted_arr as $value) { - // code... if (ctype_digit($value) && (strlen($value) == 11 || strlen($value) == 12)) { - // Valid $recipients_arr[] = trim($value); } else{ @@ -148,21 +138,21 @@ class ClientsTrafficController extends Controller fclose($file); } $recipients_arr = array_unique($recipients_arr); + + $client_id = session('current_user.org_id'); + foreach ($recipients_arr as $phone) { $payload = [ 'from' => $request->sender_id, 'to' => $phone, - 'refId' => uniqid(), + 'refId' => uniqid('cmlportal_'), 'message' => $request->message ]; \Log::info('Payload details ' . json_encode($payload)); $send_sms_url = "sms/send"; - #$result = ApiCalls::CurlPost($send_sms_url, $payload); - #\Log::info('Message Successfully submitted ' . $result); - } - // $result_arr = json_decode($result); - - + $result = ApiCalls::CurlPost(json_encode($payload), $send_sms_url); + \Log::info('Message Successfully submitted ' . $result); + } Session::flash('success_message', 'Message successfully submitted for delivery!'); return redirect("send-sms"); } diff --git a/app/Utilities/ApiCalls.php b/app/Utilities/ApiCalls.php index e03822f..2591aed 100644 --- a/app/Utilities/ApiCalls.php +++ b/app/Utilities/ApiCalls.php @@ -31,6 +31,16 @@ class ApiCalls } public static function CurlPost($data, $url){ $post_url = env('APIBASEURL') . $url; + $header_part = ''; + $client_id = session('current_user.org_id'); + if ($url == 'sms/send') { + // code... + $apps_url = "applications/client/$client_id?page=0&size=20&sort=createdAt,desc"; + $result = static::CurlGet($apps_url); + $result_arr = json_decode($result); + $api_key = $result_arr->content[0]->apiKey; + $header_part = "Authorization: Bearer " . $api_key; + } $curl = curl_init(); curl_setopt_array($curl, array( CURLOPT_URL => $post_url, @@ -43,7 +53,7 @@ class ApiCalls CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => $data, CURLOPT_HTTPHEADER => array( - 'Content-Type: application/json' + 'Content-Type: application/json', $header_part ), )); $response = curl_exec($curl); @@ -53,6 +63,8 @@ class ApiCalls public static function CurlPatch($data, $url){ $patch_url = env('APIBASEURL') . $url; + $header_part = ''; + $curl = curl_init(); curl_setopt_array($curl, array( @@ -66,7 +78,7 @@ class ApiCalls CURLOPT_CUSTOMREQUEST => 'PATCH', CURLOPT_POSTFIELDS => $data, CURLOPT_HTTPHEADER => array( - 'Content-Type: application/json' + 'Content-Type: application/json', $header_part ), )); diff --git a/resources/views/client-traffic/client-apps.blade.php b/resources/views/client-traffic/client-apps.blade.php index 411fe3e..7b035cd 100644 --- a/resources/views/client-traffic/client-apps.blade.php +++ b/resources/views/client-traffic/client-apps.blade.php @@ -33,7 +33,7 @@ {{ $row->name}} -
{{ $row->type}}
+
{{ $row->type }}
diff --git a/resources/views/layouts/master.blade.php b/resources/views/layouts/master.blade.php index 3c3b38d..fc9a101 100644 --- a/resources/views/layouts/master.blade.php +++ b/resources/views/layouts/master.blade.php @@ -57,34 +57,37 @@ + + @yield('page-js')