62 lines
1.5 KiB
PHP
62 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Service;
|
|
|
|
use App\Entity\JobOrder;
|
|
|
|
use App\Ramcar\JOStatus;
|
|
|
|
class JobOrderCallbackRouter
|
|
{
|
|
public function sendJOStatusCallback(JobOrder $jo)
|
|
{
|
|
// get the job order source
|
|
$source = $jo->getJOSource();
|
|
if ($source != null)
|
|
{
|
|
// check if source has a callback url
|
|
$callback_url = $source->getCallbackURL();
|
|
if ($callback_url != null)
|
|
{
|
|
// form the body for the callback
|
|
// jo id and jo status
|
|
$jo_data = [
|
|
'id' => $jo->getID(),
|
|
// 'status' => JOStatus::getName($jo->getStatus()),
|
|
];
|
|
|
|
// send status
|
|
$this->sendJOInfo($jo_data, $callback_url);
|
|
}
|
|
}
|
|
}
|
|
|
|
protected function sendJOInfo($jo_info, $callback_url)
|
|
{
|
|
$body = json_encode($jo_info);
|
|
|
|
// error_log(print_r($body, true));
|
|
|
|
// error_log('Sending json output to ' . $callback_url);
|
|
|
|
$curl = curl_init();
|
|
|
|
$options = [
|
|
CURLOPT_URL => $callback_url,
|
|
CURLOPT_POST => true,
|
|
CURLOPT_RETURNTRANSFER => true,
|
|
CURLOPT_POSTFIELDS => $body,
|
|
CURLOPT_HTTPHEADER => [
|
|
'Content-Type: application/json',
|
|
],
|
|
];
|
|
|
|
curl_setopt_array($curl, $options);
|
|
$res = curl_exec($curl);
|
|
|
|
curl_close($curl);
|
|
|
|
// check result
|
|
error_log('Result ' . $res);
|
|
}
|
|
}
|