From 2cabe10fa324c43c6c74532e27ac53375f3df837 Mon Sep 17 00:00:00 2001 From: Hypolite Petovan Date: Tue, 13 Nov 2018 22:00:07 -0500 Subject: [PATCH] Add return codes to ProfilePollQueue->add --- src/classes/Models/ProfilePollQueue.php | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/classes/Models/ProfilePollQueue.php b/src/classes/Models/ProfilePollQueue.php index e3868f0..3d85604 100644 --- a/src/classes/Models/ProfilePollQueue.php +++ b/src/classes/Models/ProfilePollQueue.php @@ -9,28 +9,37 @@ use Friendica\Directory\Utils\Network; */ class ProfilePollQueue extends \Friendica\Directory\Model { - public function add(string $profile_url): bool + const EMPTY_URL = 1; + const MISSING_HOST = 2; + const PRIVATE_HOST = 3; + const ALREADY_EXISTS = 4; + + /** + * @param string $profile_url + * @return int 0 on success or error code + */ + public function add(string $profile_url): int { $url = trim($profile_url); if (!$url) { - return false; + return self::EMPTY_URL; } $host = parse_url($url, PHP_URL_HOST); if (!$host) { - return false; + return self::MISSING_HOST; } if (Network::isPublicHost($host)) { - return false; + return self::PRIVATE_HOST; } - $this->atlas->perform( + $affected = $this->atlas->fetchAffected( 'INSERT IGNORE INTO `profile_poll_queue` SET `profile_url` = :profile_url', ['profile_url' => $url] ); - return true; + return ($affected == 1 ? 0 : self::ALREADY_EXISTS); } }