diff --git a/appinfo/controller/SettingsController.php b/appinfo/controller/SettingsController.php
new file mode 100644
index 0000000..e69de29
diff --git a/appinfo/info.xml b/appinfo/info.xml
index c7b055f..942bb53 100644
--- a/appinfo/info.xml
+++ b/appinfo/info.xml
@@ -11,4 +11,4 @@
workflow
deck
-
+
\ No newline at end of file
diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php
index 3b42e54..24679e9 100644
--- a/lib/AppInfo/Application.php
+++ b/lib/AppInfo/Application.php
@@ -17,7 +17,8 @@ class Application extends App {
return new SettingsController(
$c->query('OCP\IRequest'),
$c->query('OCP\IUserSession'),
- $c->query('OCA\Deckflow\Service\WorkflowService')
+ $c->query('OCA\Deckflow\Service\WorkflowService'),
+ $c->query('OCP\IDBConnection')
);
});
diff --git a/lib/AppInfo/DB/migration.php b/lib/AppInfo/DB/migration.php
new file mode 100644
index 0000000..e0a3a85
--- /dev/null
+++ b/lib/AppInfo/DB/migration.php
@@ -0,0 +1,21 @@
+query("CREATE TABLE IF NOT EXISTS *PREFIX*deckflow_workflows (
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
+ user_id TEXT NOT NULL,
+ deck_id TEXT NOT NULL,
+ source_stack_id TEXT NOT NULL,
+ target_stack_id TEXT NOT NULL
+ )");
+ }
+}
diff --git a/lib/Service/WorkflowService.php b/lib/Service/WorkflowService.php
index 0def7d2..83bff0b 100644
--- a/lib/Service/WorkflowService.php
+++ b/lib/Service/WorkflowService.php
@@ -4,32 +4,51 @@ namespace OCA\Deckflow\Service;
use OCP\IUserSession;
use OCA\Deck\Service\DeckService;
use OCP\ILogger;
+use OCA\Deckflow\DB\Migration;
class WorkflowService {
private $userSession;
private $deckService;
private $logger;
+ private $db;
- public function __construct(IUserSession $userSession, DeckService $deckService, ILogger $logger) {
+ public function __construct(IUserSession $userSession, DeckService $deckService, ILogger $logger, \OCP\IDBConnection $db) {
$this->userSession = $userSession;
$this->deckService = $deckService;
$this->logger = $logger;
+ $this->db = $db;
}
+ /**
+ * Holt alle Workflows des aktuellen Benutzers
+ * @return array
+ */
+ private function getUserWorkflows() {
+ $user = $this->userSession->getUser();
+ $userId = $user ? $user->getUID() : null;
+
+ // Hole alle Workflow-Konfigurationen des Benutzers aus der DB
+ $result = $this->db->executeQuery("SELECT * FROM *PREFIX*deckflow_workflows WHERE user_id = ?", [$userId]);
+ return $result->fetchAll();
+ }
+
+ /**
+ * Verschiebt überfällige Karten für alle Workflows
+ */
public function moveOverdueCards() {
$user = $this->userSession->getUser();
if ($user === null) {
return;
}
- // Hole alle Decks für den User
- $decks = $this->deckService->getDecksByUser($user->getUID());
+ $workflows = $this->getUserWorkflows();
- foreach ($decks as $deck) {
- // Hole die Quell- und Zielstapel
- $sourceStack = $deck->getStackById('sourceStackId'); // Ersetze durch die Konfiguration
- $targetStack = $deck->getStackById('targetStackId'); // Ersetze durch die Konfiguration
+ foreach ($workflows as $workflow) {
+ // Hole das Deck und die Stacks aus der Konfiguration
+ $deck = $this->deckService->getDeckById($workflow['deck_id']);
+ $sourceStack = $deck->getStackById($workflow['source_stack_id']);
+ $targetStack = $deck->getStackById($workflow['target_stack_id']);
// Überprüfe alle Karten im Quellstapel auf Überfälligkeit
foreach ($sourceStack->getCards() as $card) {