getAllUnderReviewUsers() ?? []; } public function getNumberOfNotReviewedUsers(int $apiKey, bool $useCache = true, bool $overall = false): array { $currentOperator = $this->f3->get('CURRENT_USER'); $takeFromCache = $this->canTakeNumberOfNotReviewedUsersFromCache($currentOperator); $total = $currentOperator->review_queue_cnt; if (!$useCache || !$takeFromCache) { $model = new \Models\Grid\ReviewQueue\Grid($apiKey); $total = !$overall ? $model->getTotalUnderReviewUsers() : $model->getTotalUnderReviewUsersOverall(); if ($total > 999) { $total = 999; } $data = [ 'id' => $currentOperator->id, 'review_queue_cnt' => $total, ]; $model = new \Models\Operator(); $model->updateReviewedQueueCnt($data); } return ['total' => $total]; } private function canTakeNumberOfNotReviewedUsersFromCache(\Models\Operator $currentOperator): bool { $diff = PHP_INT_MAX; $currentTime = gmdate('Y-m-d H:i:s'); $updatedAt = $currentOperator->review_queue_updated_at; if ($updatedAt) { $dt1 = new \DateTime($currentTime); $dt2 = new \DateTime($updatedAt); $diff = $dt1->getTimestamp() - $dt2->getTimestamp(); } $cacheTime = $this->f3->get('REVIEWED_QUEUE_CNT_CACHE_TIME'); return $cacheTime > $diff; } }