namespace Friendica\Model;
+use Friendica\Database\Database;
use Friendica\Database\DBA;
class ItemURI
*
* @param array $fields Item-uri fields
*
- * @return integer item-uri id
+ * @return int|null item-uri id
* @throws \Exception
*/
- public static function insert($fields)
+ public static function insert(array $fields)
{
// If the URI gets too long we only take the first parts and hope for best
$uri = substr($fields['uri'], 0, 255);
if (!DBA::exists('item-uri', ['uri' => $uri])) {
- DBA::insert('item-uri', $fields, true);
+ DBA::insert('item-uri', $fields, Database::INSERT_UPDATE);
}
- $itemuri = DBA::selectFirst('item-uri', ['id'], ['uri' => $uri]);
+ $itemuri = DBA::selectFirst('item-uri', ['id', 'guid'], ['uri' => $uri]);
if (!DBA::isResult($itemuri)) {
// This shouldn't happen
return null;
}
+ if (empty($itemuri['guid']) && !empty($fields['guid'])) {
+ DBA::update('item-uri', ['guid' => $fields['guid']], ['id' => $itemuri['id']]);
+ }
+
return $itemuri['id'];
}