mirror of
https://gitlab.linphone.org/BC/public/flexisip-account-manager.git
synced 2026-01-17 10:08:05 +00:00
39 lines
1.2 KiB
PHP
39 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api\Account;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Libraries\FlexisipPusherConnector;
|
|
use App\Rules\PnParam;
|
|
use App\Rules\PnPrid;
|
|
use App\Rules\PnProvider;
|
|
use App\Rules\CallId;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Validation\Rule;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
class PushNotificationController extends Controller
|
|
{
|
|
public function push(Request $request)
|
|
{
|
|
$request->validate([
|
|
'pn_provider' => ['required', new PnProvider],
|
|
'pn_param' => [new PnParam],
|
|
'pn_prid' => [new PnPrid],
|
|
'type' => ['required', Rule::in(array_keys(FlexisipPusherConnector::$apnsTypes))],
|
|
'call_id' => [new CallId],
|
|
]);
|
|
|
|
$fp = new FlexisipPusherConnector($request->get('pn_provider'), $request->get('pn_param'), $request->get('pn_prid'));
|
|
|
|
if ($fp->send(callId: $request->get('call_id'), type: $request->get('type'))) {
|
|
Log::channel('events')->info('API: Push notification sent', [
|
|
'call_id' => $request->get('call_id'),
|
|
'type' => $request->get('type')
|
|
]);
|
|
return;
|
|
}
|
|
|
|
abort(503, "Push notification not sent");
|
|
}
|
|
}
|