diff --git a/lib/Db/Tag.php b/lib/Db/Tag.php new file mode 100644 index 0000000..729c597 --- /dev/null +++ b/lib/Db/Tag.php @@ -0,0 +1,28 @@ +addType('groupFolderId','integer'); + $this->addType('lastUpdatedTimestamp','integer'); + } + + public function jsonSerialize(): array { + return [ + 'groupFolderId' => $this->groupFolderId, + 'tagKey' => $this->tagKey, + 'tagValue' => $this->tagValue, + 'lastUpdatedTimestamp' => $this->lastUpdatedTimestamp, + ]; + } +} \ No newline at end of file diff --git a/lib/Db/TagMapper.php b/lib/Db/TagMapper.php new file mode 100644 index 0000000..d8561bd --- /dev/null +++ b/lib/Db/TagMapper.php @@ -0,0 +1,54 @@ +db->getQueryBuilder(); + $qb->select('*') + ->from(self::TABLENAME) + ->where($qb->expr()->eq('group_folder_id', $qb->createNamedParameter($groupFolderId, IQueryBuilder::PARAM_INT))) + ->andWhere($qb->expr()->eq('tag_key', $qb->createNamedParameter($tagKey))); + + return $this->findEntity($qb); + } + + /** + * @param string $tagKey + * @param string|null $tagValue + * @return array + */ + public function findAll(string $tagKey, ?string $tagValue): array { + /* @var $qb IQueryBuilder */ + $qb = $this->db->getQueryBuilder(); + $qb->select('*') + ->from(self::TABLENAME) + ->where($qb->expr()->eq('tag_key', $qb->createNamedParameter($tagKey))); + + if(isset($tagValue)) { + $qb->andWhere($qb->expr()->eq('tag_value', $qb->createNamedParameter($tagValue))); + } + + return $this->findEntities($qb); + } +} \ No newline at end of file