Ver Fonte

moved transaction logic to transaction helpers

hendrikbl há 5 anos atrás
pai
commit
194a265e28

+ 16 - 8
src/Extracting/DatabaseTransactionHelpers.php

@@ -11,11 +11,15 @@ trait DatabaseTransactionHelpers
      *
      * @return void
      */
-    private function startDbTransaction(String $connection = null)
+    private function startDbTransaction()
     {
-        try {
-            app('db')->connection($connection)->beginTransaction();
-        } catch (Exception $e) {
+        $connections = array_keys(config('database.connections', []));
+
+        foreach ($connections as $conn) {
+            try {
+                app('db')->connection($conn)->beginTransaction();
+            } catch (Exception $e) {
+            }
         }
     }
 
@@ -24,11 +28,15 @@ trait DatabaseTransactionHelpers
      *
      * @return void
      */
-    private function endDbTransaction(String $connection = null)
+    private function endDbTransaction()
     {
-        try {
-            app('db')->connection($connection)->rollBack();
-        } catch (Exception $e) {
+        $connections = array_keys(config('database.connections', []));
+
+        foreach ($connections as $conn) {
+            try {
+                app('db')->connection($conn)->rollBack();
+            } catch (Exception $e) {
+            }
         }
     }
 }

+ 2 - 10
src/Extracting/Strategies/Responses/ResponseCalls.php

@@ -90,11 +90,7 @@ class ResponseCalls extends Strategy
      */
     private function configureEnvironment(array $rulesToApply)
     {
-        // Start transactions for all connections since we don't know wich one is used
-        $connections = array_keys(config('database.connections'));
-        foreach ($connections as $conn) {
-            $this->startDbTransaction($conn);
-        }
+        $this->startDbTransaction();
         $this->setLaravelConfigs($rulesToApply['config'] ?? []);
     }
 
@@ -151,11 +147,7 @@ class ResponseCalls extends Strategy
      */
     private function finish()
     {
-        // Stop transactions for all connections since we started all of them.
-        $connections = array_keys(config('database.connections'));
-        foreach ($connections as $conn) {
-            $this->endDbTransaction($conn);
-        }
+        $this->endDbTransaction();
     }
 
     /**

+ 2 - 4
src/Extracting/Strategies/Responses/UseApiResourceTags.php

@@ -173,9 +173,7 @@ class UseApiResourceTags extends Strategy
      */
     protected function instantiateApiResourceModel(string $type, array $factoryStates = [], array $relations = [])
     {
-        $connection = app($type)->getConnectionName();
-
-        $this->startDbTransaction($connection);
+        $this->startDbTransaction();
         try {
             // Try Eloquent model factory
 
@@ -214,7 +212,7 @@ class UseApiResourceTags extends Strategy
                 }
             }
         } finally {
-            $this->endDbTransaction($connection);
+            $this->endDbTransaction();
         }
 
         return $instance;

+ 2 - 4
src/Extracting/Strategies/Responses/UseTransformerTags.php

@@ -162,9 +162,7 @@ class UseTransformerTags extends Strategy
 
     protected function instantiateTransformerModel(string $type, array $factoryStates = [], array $relations = [])
     {
-        $connection = app($type)->getConnectionName();
-
-        $this->startDbTransaction($connection);
+        $this->startDbTransaction();
         try {
             // try Eloquent model factory
 
@@ -204,7 +202,7 @@ class UseTransformerTags extends Strategy
                 }
             }
         } finally {
-            $this->endDbTransaction($connection);
+            $this->endDbTransaction();
         }
 
         return $instance;