66use Shopware \Core \Framework \DataAbstractionLayer \EntityRepositoryInterface ;
77use Shopware \Core \Framework \DataAbstractionLayer \Search \Criteria ;
88use Shopware \Core \Framework \MessageQueue \Handler \AbstractMessageHandler ;
9+ use Shopware \Core \Framework \MessageQueue \ScheduledTask \Registry \TaskRegistry ;
910use Shopware \Core \Framework \MessageQueue \ScheduledTask \ScheduledTaskDefinition ;
1011use Shopware \Core \Framework \MessageQueue \ScheduledTask \ScheduledTaskEntity ;
1112use Symfony \Component \HttpFoundation \JsonResponse ;
@@ -23,10 +24,17 @@ class ScheduledTaskController
2324
2425 private EntityRepositoryInterface $ scheduledTaskRepository ;
2526
26- public function __construct (iterable $ taskHandler , EntityRepositoryInterface $ scheduledTaskRepository )
27+ private TaskRegistry $ taskRegistry ;
28+
29+ public function __construct (
30+ iterable $ taskHandler ,
31+ EntityRepositoryInterface $ scheduledTaskRepository ,
32+ TaskRegistry $ taskRegistry
33+ )
2734 {
2835 $ this ->taskHandler = $ taskHandler ;
2936 $ this ->scheduledTaskRepository = $ scheduledTaskRepository ;
37+ $ this ->taskRegistry = $ taskRegistry ;
3038 }
3139
3240 /**
@@ -68,6 +76,16 @@ public function runTask(string $id, Context $context): JsonResponse
6876 return new JsonResponse (null , JsonResponse::HTTP_NO_CONTENT );
6977 }
7078
79+ /**
80+ * @Route(path="/scheduled-tasks/register", methods={"POST"}, name="api.frosh.tools.scheduled.tasks.register")
81+ */
82+ public function registerTasks (): JsonResponse
83+ {
84+ $ this ->taskRegistry ->registerTasks ();
85+
86+ return new JsonResponse (null , JsonResponse::HTTP_NO_CONTENT );
87+ }
88+
7189 private function fetchTask (string $ id , Context $ context ): ScheduledTaskEntity
7290 {
7391 $ criteria = new Criteria ([$ id ]);
0 commit comments