From 64994ed50bf27f21ec4a17c241f72bc333ed1afe Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Wed, 20 Feb 2019 09:00:24 +0000
Subject: [PATCH] Use transaction to add mapping to the DB

---
 lib/database.php |   14 ++++++++++++++
 1 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/lib/database.php b/lib/database.php
index 48ad047..2c86a7b 100644
--- a/lib/database.php
+++ b/lib/database.php
@@ -20,6 +20,18 @@
 		$this->addStatement = $this->pdo->prepare('INSERT OR REPLACE INTO vehicles (id, num, weight) VALUES (?, ?, ?)');
 	}
 	
+	public function beginTransaction() {
+		$this->pdo->beginTransaction();
+	}
+	
+	public function commit() {
+		$this->pdo->commit();
+	}
+	
+	public function rollback() {
+		$this->pdo->rollback();
+	}
+	
 	public function getById($id) {
 		$this->getByIdStatement->execute([$id]);
 		return $this->getByIdStatement->fetch();
@@ -39,9 +51,11 @@
 	}
 	
 	public function addMapping($mapping) {
+		$this->beginTransaction();
 		$weight = count($mapping);
 		foreach($mapping as $id => $vehicle) {
 			$this->add($id, (int)substr($vehicle['num'], 2), $weight);
 		}
+		$this->commit();
 	}
 }

--
Gitblit v1.9.1