23 private const AVAILABLE_FILTERS = [
'ID',
'USER_ID',
'COLLAB_ID',
'TYPE'];
27 $this->repository = ServiceLocator::getInstance()->get(
'socialnetwork.onboarding.job.repository');
28 $this->cache = JobCacheProxy::getInstance();
35 $jobCollection = $this->repository->getAll($from, $limit);
40 $this->logUnknownThrowable($t);
43 return $jobCollection;
55 $jobCollection = $this->repository->getByCollabId($collabId, $from);
60 $this->logUnknownThrowable($t);
63 return $jobCollection;
73 $jobs = $this->cache->getByUserId(
$userId);
77 $jobs = $this->getByUserId(
$userId, $from)->getNotImmediatelyExecuted();
79 $this->cache->save([
$userId => $jobs]);
94 $jobCollection = $this->repository->getByUserId(
$userId, $from);
98 $jobCollection =
new JobCollection();
99 $this->logUnknownThrowable($t);
102 return $jobCollection;
116 $jobCollection = $this->repository->getByFilter(
$filter, $from);
121 $this->logUnknownThrowable($t);
124 return $jobCollection;
129 $availableFilter = [];
134 foreach (self::AVAILABLE_FILTERS as
$key)
141 $isIdsFilter = str_contains(
$key,
'ID');
142 if ($isIdsFilter && !$idsValidator->validate(
$filter[
$key])->isSuccess())
147 $isTypeFilter =
$key ===
'TYPE';
148 if ($isTypeFilter && !$typeValidator->validate(
$filter[
$key])->isSuccess())
156 return $availableFilter;
159 private function logUnknownThrowable(Throwable $t): void
161 Application::getInstance()->getExceptionHandler()->writeToLog($t);