feat : extend export endpoint for multi-user, multi-project, client filters

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-24 21:41:53 +01:00
parent 8f8eeddd91
commit 755c39a0f6
2 changed files with 63 additions and 23 deletions

View File

@@ -30,15 +30,17 @@ class TimeEntryRepository extends ServiceEntityRepository
}
/**
* @param null|int[] $tagIds
* @param null|User[] $users
* @param null|Project[] $projects
* @param null|int[] $tagIds
*
* @return TimeEntry[]
*/
public function findForExport(
DateTimeImmutable $after,
DateTimeImmutable $before,
?User $user = null,
?Project $project = null,
?array $users = null,
?array $projects = null,
?array $tagIds = null,
): array {
$qb = $this->createQueryBuilder('te')
@@ -49,15 +51,15 @@ class TimeEntryRepository extends ServiceEntityRepository
->orderBy('te.startedAt', 'ASC')
;
if (null !== $user) {
$qb->andWhere('te.user = :user')
->setParameter('user', $user)
if (null !== $users && [] !== $users) {
$qb->andWhere('te.user IN (:users)')
->setParameter('users', $users)
;
}
if (null !== $project) {
$qb->andWhere('te.project = :project')
->setParameter('project', $project)
if (null !== $projects && [] !== $projects) {
$qb->andWhere('te.project IN (:projects)')
->setParameter('projects', $projects)
;
}