Skip to content

Commit

Permalink
new query objects
Browse files Browse the repository at this point in the history
  • Loading branch information
kevinpapst committed Sep 12, 2024
1 parent 0b76e32 commit f94a896
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 19 deletions.
5 changes: 3 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
## Version 2.15.0 (unreleased)
## Version 2.15.0

Compatibility: requires minimum Kimai 2.17.0
Compatibility: requires minimum Kimai 2.21.0

- Activate PHPStan bleeding edge rules
- Internal refactoring (use attributes for importer service injection)
- Use new repository and query methods

## Version 2.14.0

Expand Down
39 changes: 24 additions & 15 deletions Command/KimaiImporterCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@
use App\Entity\TimesheetMeta;
use App\Entity\User;
use App\Entity\UserPreference;
use App\Repository\Loader\ActivityLoader;
use App\Repository\Loader\ProjectLoader;
use App\Repository\Loader\UserLoader;
use App\Repository\ActivityRepository;
use App\Repository\ProjectRepository;
use App\Repository\UserRepository;
use App\Timesheet\Util;
use DateTime;
use DateTimeZone;
Expand Down Expand Up @@ -1280,10 +1280,12 @@ private function clearCache(): void

// re-cache all projects
$this->projects = [];
$projects = $entityManager->getRepository(Project::class)->findAll();
$loader = new ProjectLoader($entityManager);
$loader->loadResults($projects);
/** @var Project $project */
/** @var ProjectRepository $repo */
$repo = $entityManager->getRepository(Project::class);
$qb = $repo->createQueryBuilder('p');
$query = $qb->select('p');
$projects = $repo->getProjects($query->getQuery());

foreach ($projects as $project) {
$oldId = $project->getMetaField(self::METAFIELD_NAME)?->getValue();
if (is_numeric($oldId)) {
Expand All @@ -1293,10 +1295,14 @@ private function clearCache(): void

// re-cache all activities
$this->activities = [];
$activities = $entityManager->getRepository(Activity::class)->findAll();
$loader = new ActivityLoader($entityManager);
$loader->loadResults($activities);
/** @var Activity $activity */

/** @var ActivityRepository $repo */
$repo = $entityManager->getRepository(Activity::class);
$qb = $repo->createQueryBuilder('a');
$query = $qb->select('a');
/** @var array<Activity> $activities */
$activities = $repo->getActivities($query->getQuery());

foreach ($activities as $activity) {
$oldActivity = $activity->getMetaField(self::METAFIELD_NAME)?->getValue();
$projectId = $activity->getProject()?->getId();
Expand All @@ -1307,10 +1313,13 @@ private function clearCache(): void

// re-cache all users
$this->users = [];
$users = $entityManager->getRepository(User::class)->findAll();
$loader = new UserLoader($entityManager);
$loader->loadResults($users);
/** @var User $user */

/** @var UserRepository $repo */
$repo = $entityManager->getRepository(User::class);
$qb = $repo->createQueryBuilder('u');
$query = $qb->select('u');
$users = $repo->getUsers($query->getQuery());

foreach ($users as $user) {
$oldId = $user->getPreferenceValue(self::METAFIELD_NAME);
if (is_numeric($oldId)) {
Expand Down
3 changes: 2 additions & 1 deletion Controller/ImportController.php
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
use KimaiPlugin\ImportBundle\Model\ImportModel;
use KimaiPlugin\ImportBundle\Model\TimesheetImportModel;
use Symfony\Component\Form\FormError;
use Symfony\Component\Form\FormTypeInterface;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Attribute\Route;
Expand Down Expand Up @@ -75,7 +76,7 @@ public function toggl(Request $request, ImporterService $importerService): Respo
}

/**
* @param class-string $formClass
* @param class-string<FormTypeInterface<ImportModel>> $formClass
* @param class-string $importer
*/
private function showForm(Request $request, ImportModel $model, string $formClass, string $tab, string $route, string $importer, ImporterService $importerService): Response
Expand Down
2 changes: 1 addition & 1 deletion composer.json
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@
],
"extra": {
"kimai": {
"require": 21700,
"require": 22100,
"name": "Importer"
}
},
Expand Down

0 comments on commit f94a896

Please sign in to comment.