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)
|
||||
->eq('user_id', $user_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))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return Database::getInstance('db')
|
||||
$query = Database::getInstance('db')
|
||||
->table(TABLE)
|
||||
->eq('user_id', $user_id)
|
||||
->eq('status', $current_status)
|
||||
->save(array('status' => $new_status));
|
||||
->eq('status', $current_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)
|
||||
@ -54,7 +59,7 @@ function change_item_ids_status($user_id, array $item_ids, $status)
|
||||
->table(TABLE)
|
||||
->eq('user_id', $user_id)
|
||||
->in('id', $item_ids)
|
||||
->save(array('status' => $status));
|
||||
->update(array('status' => $status));
|
||||
}
|
||||
|
||||
function update_feed_items($user_id, $feed_id, array $items, $rtl = false)
|
||||
|
@ -243,13 +243,22 @@ route('write_groups', function () {
|
||||
list($user, $authenticated, $response) = auth();
|
||||
|
||||
if ($authenticated && ctype_digit($_POST['id']) && ctype_digit($_POST['before'])) {
|
||||
Model\ItemGroup\change_items_status(
|
||||
$user['id'],
|
||||
$_POST['id'],
|
||||
Model\Item\STATUS_UNREAD,
|
||||
Model\Item\STATUS_READ,
|
||||
$_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(
|
||||
$user['id'],
|
||||
$_POST['id'],
|
||||
Model\Item\STATUS_UNREAD,
|
||||
Model\Item\STATUS_READ,
|
||||
$_POST['before']
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
response($response);
|
||||
|
Loading…
Reference in New Issue
Block a user