aboutsummaryrefslogtreecommitdiff
path: root/app/Models/CategoryDAO.php
diff options
context:
space:
mode:
Diffstat (limited to 'app/Models/CategoryDAO.php')
-rw-r--r--app/Models/CategoryDAO.php25
1 files changed, 13 insertions, 12 deletions
diff --git a/app/Models/CategoryDAO.php b/app/Models/CategoryDAO.php
index 20347e4f2..417ff7a6c 100644
--- a/app/Models/CategoryDAO.php
+++ b/app/Models/CategoryDAO.php
@@ -30,8 +30,8 @@ class FreshRSS_CategoryDAO extends Minz_ModelPdo {
} elseif ('attributes' === $name) { //v1.15.0
$ok = $this->pdo->exec('ALTER TABLE `_category` ADD COLUMN attributes TEXT') !== false;
- /** @var array<array{'url':string,'kind':int,'category':int,'name':string,'website':string,'lastUpdate':int,
- * 'priority':int,'pathEntries':string,'httpAuth':string,'error':int,'ttl':int,'attributes':string}> $feeds */
+ /** @var array<array{'id':int,'url':string,'kind':int,'category':int,'name':string,'website':string,'lastUpdate':int,
+ * 'priority':int,'pathEntries':string,'httpAuth':string,'error':int,'keep_history':?int,'ttl':int,'attributes':string}> $feeds */
$feeds = $this->fetchAssoc('SELECT * FROM `_feed`') ?? [];
$stm = $this->pdo->prepare('UPDATE `_feed` SET attributes = :attributes WHERE id = :id');
@@ -153,7 +153,7 @@ SQL;
}
/**
- * @param array{'name':string,'kind':int,'attributes'?:string|array<string,mixed>} $valuesTmp
+ * @param array{'name':string,'kind':int,'attributes'?:array<string,mixed>|mixed|null} $valuesTmp
* @return int|false
* @throws JsonException
*/
@@ -230,6 +230,7 @@ SQL;
$stm = $this->pdo->query($sql);
if ($stm !== false) {
while ($row = $stm->fetch(PDO::FETCH_ASSOC)) {
+ /** @var array{'id':int,'name':string,'kind':int,'lastUpdate':int,'error':int,'attributes'?:array<string,mixed>} $row */
yield $row;
}
} else {
@@ -245,7 +246,7 @@ SQL;
public function searchById(int $id): ?FreshRSS_Category {
$sql = 'SELECT * FROM `_category` WHERE id=:id';
$res = $this->fetchAssoc($sql, ['id' => $id]) ?? [];
- /** @var array<array{'name':string,'id':int,'kind':int,'lastUpdate'?:int,'error'?:int|bool,'attributes'?:string}> $res */
+ /** @var array<array{'name':string,'id':int,'kind':int,'lastUpdate':int,'error':int|bool,'attributes':string}> $res */
$cat = self::daoToCategory($res);
return $cat[0] ?? null;
}
@@ -253,7 +254,7 @@ SQL;
public function searchByName(string $name): ?FreshRSS_Category {
$sql = 'SELECT * FROM `_category` WHERE name=:name';
$res = $this->fetchAssoc($sql, ['name' => $name]) ?? [];
- /** @var array<array{'name':string,'id':int,'kind':int,'lastUpdate'?:int,'error'?:int|bool,'attributes'?:string}> $res */
+ /** @var array<array{'name':string,'id':int,'kind':int,'lastUpdate':int,'error':int|bool,'attributes':string}> $res */
$cat = self::daoToCategory($res);
return $cat[0] ?? null;
}
@@ -263,8 +264,8 @@ SQL;
$categories = $this->listCategories($prePopulateFeeds, $details);
uasort($categories, static function (FreshRSS_Category $a, FreshRSS_Category $b) {
- $aPosition = $a->attributes('position');
- $bPosition = $b->attributes('position');
+ $aPosition = $a->attributeInt('position');
+ $bPosition = $b->attributeInt('position');
if ($aPosition === $bPosition) {
return ($a->name() < $b->name()) ? -1 : 1;
} elseif (null === $aPosition) {
@@ -332,9 +333,9 @@ SQL;
public function getDefault(): ?FreshRSS_Category {
$sql = 'SELECT * FROM `_category` WHERE id=:id';
- $res = $this->fetchAssoc($sql, [':id' => self::DEFAULTCATEGORYID]);
+ $res = $this->fetchAssoc($sql, [':id' => self::DEFAULTCATEGORYID]) ?? [];
/** @var array<array{'name':string,'id':int,'kind':int,'lastUpdate'?:int,'error'?:int|bool,'attributes'?:string}> $res */
- $cat = self::daoToCategory($res ?? []);
+ $cat = self::daoToCategory($res);
if (isset($cat[0])) {
return $cat[0];
} else {
@@ -444,7 +445,7 @@ SQL;
$feedDao::daoToFeed($feedsDao, $previousLine['c_id'])
);
$cat->_kind($previousLine['c_kind']);
- $cat->_attributes('', $previousLine['c_attributes'] ?? '[]');
+ $cat->_attributes($previousLine['c_attributes'] ?? '[]');
$list[(int)$previousLine['c_id']] = $cat;
$feedsDao = []; //Prepare for next category
@@ -464,7 +465,7 @@ SQL;
$cat->_kind($previousLine['c_kind']);
$cat->_lastUpdate($previousLine['c_last_update'] ?? 0);
$cat->_error($previousLine['c_error'] ?? 0);
- $cat->_attributes('', $previousLine['c_attributes'] ?? []);
+ $cat->_attributes($previousLine['c_attributes'] ?? []);
$list[(int)$previousLine['c_id']] = $cat;
}
@@ -487,7 +488,7 @@ SQL;
$cat->_kind($dao['kind']);
$cat->_lastUpdate($dao['lastUpdate'] ?? 0);
$cat->_error($dao['error'] ?? 0);
- $cat->_attributes('', $dao['attributes'] ?? '');
+ $cat->_attributes($dao['attributes'] ?? '');
$list[] = $cat;
}