]> git.mxchange.org Git - friendica.git/blobdiff - src/Module/BaseApi.php
Fix user-contact rows not being updated in Contact\User::updateByContactUpdate
[friendica.git] / src / Module / BaseApi.php
index 2e8e1d15b83402709c6bb7b079a30f90380feef6..9732fdfcd3d2aa9353dcf2952cea70ba0eac92fb 100644 (file)
@@ -27,6 +27,7 @@ use Friendica\Core\System;
 use Friendica\DI;
 use Friendica\Model\Contact;
 use Friendica\Model\Post;
+use Friendica\Model\User;
 use Friendica\Network\HTTPException;
 use Friendica\Security\BasicAuth;
 use Friendica\Security\OAuth;
@@ -292,12 +293,23 @@ class BaseApi extends BaseModule
                }
        }
 
-       public static function getContactIDForSearchterm($searchterm)
+       public static function getContactIDForSearchterm(string $screen_name = null, int $cid = null, int $uid)
        {
-               if (intval($searchterm) == 0) {
-                       $cid = Contact::getIdForURL($searchterm, 0, false);
+               if (!empty($cid)) {
+                       return $cid;
+               }
+
+               if (strpos($screen_name, '@') !== false) {
+                       $cid = Contact::getIdForURL($screen_name, 0, false);
                } else {
-                       $cid = intval($searchterm);
+                       $user = User::getByNickname($screen_name, ['uid']);
+                       if (!empty($user['uid'])) {
+                               $cid = Contact::getPublicIdByUserId($user['uid']);
+                       }
+               }
+
+               if (empty($cid) && ($uid != 0)) {
+                       $cid = Contact::getPublicIdByUserId($uid);
                }
 
                return $cid;