Example #1
0
 public function grabber(array $directory_user)
 {
     log_message('TASK_DEBUG', __FUNCTION__ . ' > ' . 'Reviews grabber');
     try {
         $directoryUser = new Directory_User($directory_user['id']);
         if (!$directoryUser->exists()) {
             throw new Exception('Directory_User id:' . $directory_user['id'] . ' doesn\'t exist');
         }
         $directory = $directoryUser->directory->get();
         if (!$directory->exists()) {
             throw new Exception('Directory id:' . $directory_user['directory_id'] . ' doesn\'t exist');
         }
         if (!$directory->status) {
             throw new Exception('Directory id:' . $directory_user['directory_id'] . ' is disabled');
         }
         $link = !empty($directory_user['additional']) ? $directory_user['additional'] : $directory_user['link'];
         log_message('TASK_DEBUG', __FUNCTION__ . ' > ' . 'Try to grabb - ' . $directory->name);
         $aac = $this->getAAC();
         $user = new User($directory_user['user_id']);
         if (!$user->exists()) {
             return;
         }
         $aac->setUser($user);
         $directory_parcer = Directory_Parser::factory($directory->type)->set_url($link);
         $reviews = $directory_parcer->get_reviews();
         /**
          * Store additional data to
          */
         if ($directory_parcer instanceof Directory_Interface_UserStorage) {
             $directoryUser->setAdditional($directory_parcer->getDataToStore())->save();
         }
     } catch (Exception $e) {
         log_message('TASK_ERROR', __FUNCTION__ . ' > ' . 'Reviews: ' . $e->getMessage());
         throw $e;
     }
     //$today_midnight = strtotime('-7 day midnight');
     $today_midnight = strtotime('-14 day midnight');
     if (is_array($reviews) && !empty($reviews)) {
         foreach ($reviews as $_review) {
             $review_model = new Review();
             $review_model->from_array($_review);
             $review_model->user_id = $directory_user['user_id'];
             $review_model->directory_id = $directory_user['directory_id'];
             $review_model->profile_id = $directory_user['profile_id'];
             $review_model->posted_date = date('Y-m-d', $_review['posted']);
             $review_model->save();
             log_message('TASK_DEBUG', __FUNCTION__ . ' > ' . 'Review saved');
         }
     }
 }