diff options
author | Sean Molenaar <sean@seanmolenaar.eu> | 2020-11-16 20:49:38 +0100 |
---|---|---|
committer | Sean Molenaar <SMillerDev@users.noreply.github.com> | 2020-12-08 13:58:12 +0100 |
commit | 4ee3fcb78113caff9f2b890cb7d1702dc936d81e (patch) | |
tree | f8fc506f997acdb8e5315c62bb068b0b6db6cd56 /lib/Db | |
parent | 8abddeab4f541883721d912f97dec07bffdfc6b8 (diff) |
Refactor User ID fetching and fix non-specific cleanup
Signed-off-by: Sean Molenaar <sean@seanmolenaar.eu>
Diffstat (limited to 'lib/Db')
-rw-r--r-- | lib/Db/ItemMapperV2.php | 11 | ||||
-rw-r--r-- | lib/Db/NewsMapperV2.php | 22 |
2 files changed, 29 insertions, 4 deletions
diff --git a/lib/Db/ItemMapperV2.php b/lib/Db/ItemMapperV2.php index 4f6f82413..4a301fca2 100644 --- a/lib/Db/ItemMapperV2.php +++ b/lib/Db/ItemMapperV2.php @@ -149,4 +149,15 @@ class ItemMapperV2 extends NewsMapperV2 return $this->db->executeQuery($query)->fetch(FetchMode::ASSOCIATIVE); } + + /** + * No-op clear deleted items. + * + * @param string|null $userID + * @param int|null $oldestDelete + */ + public function purgeDeleted(?string $userID, ?int $oldestDelete): void + { + //NO-OP + } } diff --git a/lib/Db/NewsMapperV2.php b/lib/Db/NewsMapperV2.php index 5d1905151..cbfb84fde 100644 --- a/lib/Db/NewsMapperV2.php +++ b/lib/Db/NewsMapperV2.php @@ -64,16 +64,30 @@ abstract class NewsMapperV2 extends QBMapper } /** - * Remove deleted items. + * Remove deleted entities. + * + * @param string|null $userID The user to purge + * @param int|null $oldestDelete The timestamp to purge from * * @return void */ - public function purgeDeleted(): void + public function purgeDeleted(?string $userID, ?int $oldestDelete): void { $builder = $this->db->getQueryBuilder(); $builder->delete($this->tableName) - ->where('deleted_at != 0') - ->execute(); + ->andWhere('deleted_at != 0'); + + if ($userID !== null) { + $builder->andWhere('user_id = :user_id') + ->setParameter(':user_id', $userID); + } + + if ($oldestDelete !== null) { + $builder->andWhere('deleted_at < :deleted_at') + ->setParameter(':deleted_at', $oldestDelete); + } + + $builder->execute(); } /** |