/**
* @param AbstractJob $job
*
* @return $this
*/
protected function invokeCallbacks(AbstractJob $job)
{
$result = $job->getResult();
if ($result->isRedirect() || $result->isRetry()) {
return $this;
}
if ($result->isError()) {
$callbackJobs = $job->getCallbacksError();
} else {
$callbackJobs = $job->getCallbacksDone();
if ($result->isSuccess()) {
$callbackJobs = $callbackJobs + $job->getCallbacksSuccess();
} else {
$callbackJobs = $callbackJobs + $job->getCallbacksError();
}
}
if (!is_array($callbackJobs) || count($callbackJobs) === 0) {
return $this;
}
foreach ($callbackJobs as $index => $callbackJob) {
/** @var $callbackJob AbstractJob */
$callbackJob($job);
}
return $this;
}