* Insert an item-uri record and return its id
*
* @param array $fields Item-uri fields
- *
* @return int|null item-uri id
* @throws \Exception
*/
* Searched for an id of a given uri. Adds it, if not existing yet.
*
* @param string $uri
+ * @param bool $insert
*
* @return integer item-uri id
+ *
* @throws \Exception
*/
- public static function getIdByURI($uri)
+ public static function getIdByURI(string $uri, bool $insert = true): int
{
+ if (empty($uri)) {
+ return 0;
+ }
+
// If the URI gets too long we only take the first parts and hope for best
$uri = substr($uri, 0, 255);
$itemuri = DBA::selectFirst('item-uri', ['id'], ['uri' => $uri]);
- if (!DBA::isResult($itemuri)) {
+ if (!DBA::isResult($itemuri) && $insert) {
return self::insert(['uri' => $uri]);
}
- return $itemuri['id'];
+ return $itemuri['id'] ?? 0;
}
+
/**
* Searched for an id of a given guid.
*
* @param string $guid
- *
* @return integer item-uri id
* @throws \Exception
*/
- public static function getIdByGUID($guid)
+ public static function getIdByGUID(string $guid): int
{
// If the GUID gets too long we only take the first parts and hope for best
$guid = substr($guid, 0, 255);