Fix issue when marking special group "Unread" as read in Fever API
This special group has the ID 0 and do not match any valid group in Miniflux database.
This commit is contained in:
parent
bef6e1032e
commit
31bf0711ee
@ -24,20 +24,25 @@ function change_item_status($user_id, $item_id, $status)
|
|||||||
->table(TABLE)
|
->table(TABLE)
|
||||||
->eq('user_id', $user_id)
|
->eq('user_id', $user_id)
|
||||||
->eq('id', $item_id)
|
->eq('id', $item_id)
|
||||||
->save(array('status' => $status));
|
->update(array('status' => $status));
|
||||||
}
|
}
|
||||||
|
|
||||||
function change_items_status($user_id, $current_status, $new_status)
|
function change_items_status($user_id, $current_status, $new_status, $before = null)
|
||||||
{
|
{
|
||||||
if (! in_array($new_status, array(STATUS_READ, STATUS_UNREAD, STATUS_REMOVED))) {
|
if (! in_array($new_status, array(STATUS_READ, STATUS_UNREAD, STATUS_REMOVED))) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Database::getInstance('db')
|
$query = Database::getInstance('db')
|
||||||
->table(TABLE)
|
->table(TABLE)
|
||||||
->eq('user_id', $user_id)
|
->eq('user_id', $user_id)
|
||||||
->eq('status', $current_status)
|
->eq('status', $current_status);
|
||||||
->save(array('status' => $new_status));
|
|
||||||
|
if ($before !== null) {
|
||||||
|
$query->lte('updated', $before);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $query->update(array('status' => $new_status));
|
||||||
}
|
}
|
||||||
|
|
||||||
function change_item_ids_status($user_id, array $item_ids, $status)
|
function change_item_ids_status($user_id, array $item_ids, $status)
|
||||||
@ -54,7 +59,7 @@ function change_item_ids_status($user_id, array $item_ids, $status)
|
|||||||
->table(TABLE)
|
->table(TABLE)
|
||||||
->eq('user_id', $user_id)
|
->eq('user_id', $user_id)
|
||||||
->in('id', $item_ids)
|
->in('id', $item_ids)
|
||||||
->save(array('status' => $status));
|
->update(array('status' => $status));
|
||||||
}
|
}
|
||||||
|
|
||||||
function update_feed_items($user_id, $feed_id, array $items, $rtl = false)
|
function update_feed_items($user_id, $feed_id, array $items, $rtl = false)
|
||||||
|
@ -243,6 +243,14 @@ route('write_groups', function () {
|
|||||||
list($user, $authenticated, $response) = auth();
|
list($user, $authenticated, $response) = auth();
|
||||||
|
|
||||||
if ($authenticated && ctype_digit($_POST['id']) && ctype_digit($_POST['before'])) {
|
if ($authenticated && ctype_digit($_POST['id']) && ctype_digit($_POST['before'])) {
|
||||||
|
if ($_POST['id'] == 0) {
|
||||||
|
Model\Item\change_items_status(
|
||||||
|
$user['id'],
|
||||||
|
Model\Item\STATUS_UNREAD,
|
||||||
|
Model\Item\STATUS_READ,
|
||||||
|
$_POST['before']
|
||||||
|
);
|
||||||
|
} else {
|
||||||
Model\ItemGroup\change_items_status(
|
Model\ItemGroup\change_items_status(
|
||||||
$user['id'],
|
$user['id'],
|
||||||
$_POST['id'],
|
$_POST['id'],
|
||||||
@ -251,6 +259,7 @@ route('write_groups', function () {
|
|||||||
$_POST['before']
|
$_POST['before']
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
response($response);
|
response($response);
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user