update last_modified when marking an item as read

Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>

this way it works

Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>

add changelog entry

Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>

Partly fix test

Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>

test passing

Signed-off-by: Benjamin Brahmer <info@b-brahmer.de>
This commit is contained in:
Benjamin Brahmer 2022-03-20 10:56:49 +01:00
parent da5e749ecc
commit 5af0cb6e22
5 changed files with 31 additions and 24 deletions

View File

@ -8,6 +8,7 @@ The format is mostly based on [Keep a Changelog](https://keepachangelog.com/en/1
- Add routes for starring/unstarring items by id
### Fixed
- Fix updated api not returning any item after marking item as read (#1713)
# Releases

View File

@ -186,14 +186,16 @@ class FeedMapperV2 extends NewsMapperV2
},
$this->db->executeQuery($idBuilder->getSQL(), $idBuilder->getParameters())->fetchAll()
);
$time = new Time();
$builder = $this->db->getQueryBuilder();
$builder->update(ItemMapperV2::TABLE_NAME)
->set('unread', $builder->createParameter('unread'))
->set('last_modified', $builder->createParameter('last_modified'))
->andWhere('id IN (:idList)')
->andWhere('unread != :unread')
->setParameter('unread', false, IQueryBuilder::PARAM_BOOL)
->setParameter('idList', $idList, IQueryBuilder::PARAM_INT_ARRAY);
->setParameter('idList', $idList, IQueryBuilder::PARAM_INT_ARRAY)
->setParameter('last_modified', $time->getMicroTime(), IQueryBuilder::PARAM_STR);
return $this->db->executeStatement(
$builder->getSQL(),

View File

@ -128,13 +128,16 @@ class FolderMapperV2 extends NewsMapperV2
return intval($value['id']);
}, $this->db->executeQuery($idBuilder->getSQL(), $idBuilder->getParameters())->fetchAll());
$time = new Time();
$builder = $this->db->getQueryBuilder();
$builder->update(ItemMapperV2::TABLE_NAME)
->set('unread', $builder->createParameter('unread'))
->set('last_modified', $builder->createParameter('last_modified'))
->andWhere('id IN (:idList)')
->andWhere('unread != :unread')
->setParameter('unread', false, IQueryBuilder::PARAM_BOOL)
->setParameter('idList', $idList, IQueryBuilder::PARAM_INT_ARRAY);
->setParameter('idList', $idList, IQueryBuilder::PARAM_INT_ARRAY)
->setParameter('last_modified', $time->getMicroTime(), IQueryBuilder::PARAM_STR);
return $this->db->executeStatement(
$builder->getSQL(),

View File

@ -49,6 +49,7 @@ class FeedMapperTest extends MapperTestUtility
$feed2->resetUpdatedFields();
$this->feeds = [$feed1, $feed2];
}
/**
@ -519,13 +520,13 @@ class FeedMapperTest extends MapperTestUtility
->with('news_items')
->will($this->returnSelf());
$this->builder->expects($this->once())
$this->builder->expects($this->exactly(2))
->method('createParameter')
->will($this->returnArgument(0));
$this->builder->expects($this->once())
$this->builder->expects($this->exactly(2))
->method('set')
->with('unread', 'unread')
->withConsecutive(['unread', 'unread'], ['last_modified', 'last_modified'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(2))
@ -533,11 +534,11 @@ class FeedMapperTest extends MapperTestUtility
->withConsecutive(['id IN (:idList)'], ['unread != :unread'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(2))
$this->builder->expects($this->exactly(3))
->method('setParameter')
->withConsecutive(['unread', false], ['idList', [1, 2]])
->withConsecutive(['unread', false], ['idList', [1, 2]], ['last_modified'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(1))
->method('getSQL')
->will($this->returnValue('QUERY'));
@ -616,7 +617,7 @@ class FeedMapperTest extends MapperTestUtility
->with('SQL QUERY')
->willReturn($result);
$this->builder->expects($this->once())
$this->builder->expects($this->exactly(2))
->method('createParameter')
->will($this->returnArgument(0));
@ -625,9 +626,9 @@ class FeedMapperTest extends MapperTestUtility
->with('news_items')
->will($this->returnSelf());
$this->builder->expects($this->once())
$this->builder->expects($this->exactly(2))
->method('set')
->with('unread', 'unread')
->withConsecutive(['unread', 'unread'], ['last_modified', 'last_modified'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(2))
@ -635,9 +636,9 @@ class FeedMapperTest extends MapperTestUtility
->withConsecutive(['id IN (:idList)'], ['unread != :unread'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(2))
$this->builder->expects($this->exactly(3))
->method('setParameter')
->withConsecutive(['unread', false], ['idList', [1, 2]])
->withConsecutive(['unread', false], ['idList', [1, 2]], ['last_modified'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(1))

View File

@ -342,7 +342,7 @@ class FolderMapperTest extends MapperTestUtility
->with('SQL QUERY')
->willReturn($result);
$this->builder->expects($this->once())
$this->builder->expects($this->exactly(2))
->method('createParameter')
->will($this->returnArgument(0));
@ -351,9 +351,9 @@ class FolderMapperTest extends MapperTestUtility
->with('news_items')
->will($this->returnSelf());
$this->builder->expects($this->once())
$this->builder->expects($this->exactly(2))
->method('set')
->with('unread', 'unread')
->withConsecutive(['unread', 'unread'], ['last_modified', 'last_modified'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(2))
@ -361,9 +361,9 @@ class FolderMapperTest extends MapperTestUtility
->withConsecutive(['id IN (:idList)'], ['unread != :unread'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(2))
$this->builder->expects($this->exactly(3))
->method('setParameter')
->withConsecutive(['unread', false], ['idList', [1, 2]])
->withConsecutive(['unread', false], ['idList', [1, 2]], ['last_modified'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(1))
@ -445,7 +445,7 @@ class FolderMapperTest extends MapperTestUtility
->with('SQL QUERY')
->willReturn($result);
$this->builder->expects($this->once())
$this->builder->expects($this->exactly(2))
->method('createParameter')
->will($this->returnArgument(0));
@ -454,9 +454,9 @@ class FolderMapperTest extends MapperTestUtility
->with('news_items')
->will($this->returnSelf());
$this->builder->expects($this->once())
$this->builder->expects($this->exactly(2))
->method('set')
->with('unread', 'unread')
->withConsecutive(['unread', 'unread'], ['last_modified', 'last_modified'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(2))
@ -464,9 +464,9 @@ class FolderMapperTest extends MapperTestUtility
->withConsecutive(['id IN (:idList)'], ['unread != :unread'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(2))
$this->builder->expects($this->exactly(3))
->method('setParameter')
->withConsecutive(['unread', false], ['idList', [1, 2]])
->withConsecutive(['unread', false], ['idList', [1, 2]], ['last_modified'])
->will($this->returnSelf());
$this->builder->expects($this->exactly(1))