2019-04-08 21:06:15 +00:00
|
|
|
<?php
|
|
|
|
|
|
|
|
/**
|
|
|
|
* @file src/Worker/UpdateContact.php
|
|
|
|
*/
|
|
|
|
|
|
|
|
namespace Friendica\Worker;
|
|
|
|
|
|
|
|
use Friendica\Core\Logger;
|
|
|
|
use Friendica\Model\Contact;
|
2019-04-09 05:15:23 +00:00
|
|
|
use Friendica\Util\DateTimeFormat;
|
|
|
|
use Friendica\Database\DBA;
|
2019-04-08 21:06:15 +00:00
|
|
|
|
|
|
|
class UpdateContact
|
|
|
|
{
|
2019-06-23 09:27:40 +00:00
|
|
|
public static function execute($contact_id, $command = '')
|
2019-04-08 21:06:15 +00:00
|
|
|
{
|
2019-06-23 09:27:40 +00:00
|
|
|
$force = ($command == "force");
|
|
|
|
|
|
|
|
$success = Contact::updateFromProbe($contact_id, '', $force);
|
|
|
|
|
|
|
|
Logger::info('Updated from probe', ['id' => $contact_id, 'force' => $force, 'success' => $success]);
|
|
|
|
|
|
|
|
// Update the update date fields only when we are forcing the update
|
|
|
|
if (!$force) {
|
|
|
|
return;
|
2019-04-09 05:15:23 +00:00
|
|
|
}
|
|
|
|
|
2019-06-23 09:27:40 +00:00
|
|
|
// Update the "last-update", "success_update" and "failure_update" field only when it is a public contact.
|
|
|
|
// These fields are set in OnePoll for all non public contacts.
|
|
|
|
$updated = DateTimeFormat::utcNow();
|
|
|
|
if ($success) {
|
|
|
|
DBA::update('contact', ['last-update' => $updated, 'success_update' => $updated], ['id' => $contact_id, 'uid' => 0]);
|
|
|
|
} else {
|
|
|
|
DBA::update('contact', ['last-update' => $updated, 'failure_update' => $updated], ['id' => $contact_id, 'uid' => 0]);
|
|
|
|
}
|
2019-04-08 21:06:15 +00:00
|
|
|
}
|
|
|
|
}
|