feat: add Connector to WatchListTrigger

This commit is contained in:
Maël Gangloff
2024-07-28 23:39:38 +02:00
parent 1f5c1f812b
commit 50c5b75067
7 changed files with 77 additions and 67 deletions

View File

@@ -1,36 +0,0 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20240728212316 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE watch_list ADD connector_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE watch_list ADD CONSTRAINT FK_152B584B4D085745 FOREIGN KEY (connector_id) REFERENCES connector (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('CREATE INDEX IDX_152B584B4D085745 ON watch_list (connector_id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SCHEMA public');
$this->addSql('ALTER TABLE watch_list DROP CONSTRAINT FK_152B584B4D085745');
$this->addSql('DROP INDEX IDX_152B584B4D085745');
$this->addSql('ALTER TABLE watch_list DROP connector_id');
}
}

View File

@@ -0,0 +1,36 @@
<?php
declare(strict_types=1);
namespace DoctrineMigrations;
use Doctrine\DBAL\Schema\Schema;
use Doctrine\Migrations\AbstractMigration;
/**
* Auto-generated Migration: Please modify to your needs!
*/
final class Version20240728213336 extends AbstractMigration
{
public function getDescription(): string
{
return '';
}
public function up(Schema $schema): void
{
// this up() migration is auto-generated, please modify it to your needs
$this->addSql('ALTER TABLE watch_list_trigger ADD connector_id INT DEFAULT NULL');
$this->addSql('ALTER TABLE watch_list_trigger ADD CONSTRAINT FK_CF857A4C4D085745 FOREIGN KEY (connector_id) REFERENCES connector (id) NOT DEFERRABLE INITIALLY IMMEDIATE');
$this->addSql('CREATE INDEX IDX_CF857A4C4D085745 ON watch_list_trigger (connector_id)');
}
public function down(Schema $schema): void
{
// this down() migration is auto-generated, please modify it to your needs
$this->addSql('CREATE SCHEMA public');
$this->addSql('ALTER TABLE watch_list_trigger DROP CONSTRAINT FK_CF857A4C4D085745');
$this->addSql('DROP INDEX IDX_CF857A4C4D085745');
$this->addSql('ALTER TABLE watch_list_trigger DROP connector_id');
}
}

View File

@@ -0,0 +1,8 @@
<?php
namespace App\Config;
interface ConnectorInterface
{
}

View File

@@ -32,14 +32,14 @@ class Connector
private array $authData = []; private array $authData = [];
/** /**
* @var Collection<int, WatchList> * @var Collection<int, WatchListTrigger>
*/ */
#[ORM\OneToMany(targetEntity: WatchList::class, mappedBy: 'connector')] #[ORM\OneToMany(targetEntity: WatchListTrigger::class, mappedBy: 'connector')]
private Collection $watchLists; private Collection $watchListTriggers;
public function __construct() public function __construct()
{ {
$this->watchLists = new ArrayCollection(); $this->watchListTriggers = new ArrayCollection();
} }
public function getId(): ?int public function getId(): ?int
@@ -84,29 +84,29 @@ class Connector
} }
/** /**
* @return Collection<int, WatchList> * @return Collection<int, WatchListTrigger>
*/ */
public function getWatchLists(): Collection public function getWatchListTriggers(): Collection
{ {
return $this->watchLists; return $this->watchListTriggers;
} }
public function addWatchList(WatchList $watchList): static public function addWatchListTrigger(WatchListTrigger $watchListTrigger): static
{ {
if (!$this->watchLists->contains($watchList)) { if (!$this->watchListTriggers->contains($watchListTrigger)) {
$this->watchLists->add($watchList); $this->watchListTriggers->add($watchListTrigger);
$watchList->setConnector($this); $watchListTrigger->setConnector($this);
} }
return $this; return $this;
} }
public function removeWatchList(WatchList $watchList): static public function removeWatchListTrigger(WatchListTrigger $watchListTrigger): static
{ {
if ($this->watchLists->removeElement($watchList)) { if ($this->watchListTriggers->removeElement($watchListTrigger)) {
// set the owning side to null (unless already changed) // set the owning side to null (unless already changed)
if ($watchList->getConnector() === $this) { if ($watchListTrigger->getConnector() === $this) {
$watchList->setConnector(null); $watchListTrigger->setConnector(null);
} }
} }

View File

@@ -2,9 +2,11 @@
namespace App\Entity; namespace App\Entity;
use App\Config\ConnectorInterface;
use Doctrine\ORM\Mapping\Entity; use Doctrine\ORM\Mapping\Entity;
#[Entity] #[Entity]
class OVHConnector extends Connector class OVHConnector extends Connector implements ConnectorInterface
{ {
} }

View File

@@ -69,9 +69,6 @@ class WatchList
#[SerializedName("triggers")] #[SerializedName("triggers")]
private Collection $watchListTriggers; private Collection $watchListTriggers;
#[ORM\ManyToOne(inversedBy: 'watchLists')]
private ?Connector $connector = null;
public function __construct() public function __construct()
{ {
$this->token = Uuid::v4(); $this->token = Uuid::v4();
@@ -149,16 +146,4 @@ class WatchList
return $this; return $this;
} }
public function getConnector(): ?Connector
{
return $this->connector;
}
public function setConnector(?Connector $connector): static
{
$this->connector = $connector;
return $this;
}
} }

View File

@@ -26,6 +26,9 @@ class WatchListTrigger
#[Groups(['watchlist:list', 'watchlist:item', 'watchlist:create', 'watchlist:update'])] #[Groups(['watchlist:list', 'watchlist:item', 'watchlist:create', 'watchlist:update'])]
private ?TriggerAction $action = null; private ?TriggerAction $action = null;
#[ORM\ManyToOne(inversedBy: 'watchListTriggers')]
private ?Connector $connector = null;
public function getEvent(): ?string public function getEvent(): ?string
{ {
return $this->event; return $this->event;
@@ -61,4 +64,16 @@ class WatchListTrigger
return $this; return $this;
} }
public function getConnector(): ?Connector
{
return $this->connector;
}
public function setConnector(?Connector $connector): static
{
$this->connector = $connector;
return $this;
}
} }