<?php
namespace App\Http\Controllers;
use App\Classes\SendSMSSislog;
use App\Classes\SmsManager;
use App\Imali\ImaliAccount;
use Illuminate\Http\Request;
class PushNotificationController extends Controller
{
protected SmsManager $smsManager;
public function __construct()
{
$this->smsManager = new SmsManager();
}
public function sendMessage(Request $request)
{
if ($request->sendForm == 'SMS') {
foreach ($request->accounts as $account) {
$user = ImaliAccount::query()
->join('users', 'users.id', '=', 'imali_accounts.user_id')
->where('account_number', $account)
->first();
$data = ['message' => $request->message, 'phone' => $user->phone];
$this->smsManager->sendNotification($data);
}
}
if ($request->sendForm == 'PUSH') {
$notification = array(
// 'icon' => 'ic_imali_logo_verde_01',
'icon' => 'ic_i_mali_cover',
'title' => $request->title,
'body' => $request->message,
'click_action' => 'com.imali.payapp.payment_NOTICIA',
// 'color' => '#008577'
'color' => '#ffffff'
);
$data = array(
// 'transaction' => $recharge->transaction_id,
// 'name' => $user->name,
// 'amount' => (double)$recharge->amount,
// 'phone' => $user->phone,
// 'reference' => $imaliAccount->reference,
// 'data' => $recharge->created_at,
// 'estado' => $recharge->estado,
'sms' => $request->message,
'terminal' => 'firebase'
);
foreach ($request->accounts as $account) {
$user = ImaliAccount::query()
->join('users', 'users.id', '=', 'imali_accounts.user_id')
->where('account_number', $account)
->first();
$this->pushNotifification($user->firebase_token, $notification, $data);
}
}
if ($request->sendForm == 'EMAIL') {
}
}
public function pushNotifification($token, $notification = array(), $data = array())
{
$apiKey = 'AAAA8zVzEPQ:APA91bHl_DXB6UGb_6gZlmFnaLTQoANtX_OBjvl3nOy2bSlnFhxedvk6EhGj7cZoIvmlbKeCnqGxXbuyMH_rEPuhRXvuitXzo6Pfl2TMXLar1PlifXqEhYq6tS55UMrY2Kffzj-P_UH-';
$fields = array('to' => $token, 'notification' => $notification, 'data' => $data);
$headers = array('Authorization: key=' . $apiKey, 'Content-Type: application/json');
$url = 'https://fcm.googleapis.com/fcm/send';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($fields));
$result = curl_exec($curl);
curl_close($curl);
return json_decode($result, true);
}
}