Преглед изворни кода

Se agrego listener al eliminar Device

Guillermo Espinoza пре 8 година
родитељ
комит
932a42c55f
2 измењених фајлова са 31 додато и 5 уклоњено
  1. 28 3
      EventListener/DeviceListener.php
  2. 3 2
      Resources/config/services.yml

+ 28 - 3
EventListener/DeviceListener.php

@@ -20,21 +20,46 @@ class DeviceListener
      */
     private $devicePostUrl;
 
+    /**
+     * @var string
+     */
+    private $deviceDeletePostUrl;
+
 
     /**
      * @param Webservice $webservice
      * @param string $devicePostUrl
+     * @param string $deviceDeletePostUrl
      */
-    public function __construct(Webservice $webservice, $devicePostUrl)
+    public function __construct(Webservice $webservice, $devicePostUrl, $deviceDeletePostUrl)
     {
         $this->webservice = $webservice;
         $this->devicePostUrl = $devicePostUrl;
+        $this->deviceDeletePostUrl = $deviceDeletePostUrl;
     }
 
     /**
      * @param LifecycleEventArgs $args
      */
     public function postPersist(LifecycleEventArgs $args)
+    {
+        $this->send($args, $this->devicePostUrl, HttpRequestInterface::METHOD_POST);
+    }
+
+    /**
+     * @param LifecycleEventArgs $args
+     */
+    public function preRemove(LifecycleEventArgs $args)
+    {
+        $this->send($args, $this->deviceDeletePostUrl, HttpRequestInterface::METHOD_DELETE);
+    }
+
+    /**
+     * @param LifecycleEventArgs $arg
+     * @param string $url
+     * @param string $method
+     */
+    private function send(LifecycleEventArgs $args, $url, $method)
     {
         $entity = $args->getEntity();
         if ($entity instanceof DeviceInterface) {
@@ -43,8 +68,8 @@ class DeviceListener
                 'deviceId' => $entity->getId(),
                 'ip' => $entity->getIp(),
             );
-            
-            $result = $this->webservice->makeGetRequest($this->devicePostUrl, HttpRequestInterface::METHOD_POST, $data);
+
+            return $this->webservice->makeGetRequest($url, $method, $data);
         }
     }
 

+ 3 - 2
Resources/config/services.yml

@@ -6,6 +6,7 @@ services:
             - { name: validator.constraint_validator }
     device.device_listener:
         class: DeviceBundle\EventListener\DeviceListener
-        arguments: ["@webservice","%device_post_url%"]
+        arguments: ["@webservice","%device_post_url%","%device_delete_post_url%"]
         tags:
-            - { name: doctrine.event_listener, event: postPersist }
+            - { name: doctrine.event_listener, event: postPersist }
+            - { name: doctrine.event_listener, event: preRemove }