From f6f79198b6467435fd7caccd2067eb0a29c97787 Mon Sep 17 00:00:00 2001
From: Jacek Kowalski <Jacek@jacekk.info>
Date: Fri, 21 Jun 2019 22:58:16 +0000
Subject: [PATCH] Move mapping creation to a function in lib/output.php

---
 regenerate.php |   14 ++------------
 parse.php      |   11 +----------
 lib/output.php |   17 +++++++++++++++++
 3 files changed, 20 insertions(+), 22 deletions(-)

diff --git a/lib/output.php b/lib/output.php
index d3fd6d9..4d05b40 100644
--- a/lib/output.php
+++ b/lib/output.php
@@ -1,4 +1,21 @@
 <?php
+function createMapping($db, $mapFunction, $saveConfig = FALSE) {
+	$mapping = [];
+	foreach($db->getAll() as $vehicle) {
+		$mapping[$vehicle['id']] = $mapFunction($vehicle['num']);
+	}
+	
+	if($saveConfig) {
+		$json = json_encode($mapping);
+		if(!file_put_contents($saveConfig['result_temp'], $json)) {
+			throw new Exception('Result save failed');
+		}
+		rename($saveConfig['result_temp'], $saveConfig['result']);
+	}
+	
+	return $mapping;
+}
+
 function createVehiclesList($trips, $mapping, $saveConfig = FALSE) {
 	$lines = [];
 	foreach($trips as $trip) {
diff --git a/parse.php b/parse.php
index ebd18cd..8a5416e 100644
--- a/parse.php
+++ b/parse.php
@@ -82,16 +82,7 @@
 		
 		$db->addMapping($mapping);
 		
-		$jsonContent = [];
-		foreach($db->getAll() as $vehicle) {
-			$jsonContent[$vehicle['id']] = $source['mapper']($vehicle['num']);
-		}
-		
-		$json = json_encode($jsonContent);
-		if(!file_put_contents($source['result_temp'], $json)) {
-			throw new Exception('Result save failed');
-		}
-		rename($source['result_temp'], $source['result']);
+		createMapping($db, $source['mapper'], $source);
 		
 		
 		$logger->info('Creating vehicle list...');
diff --git a/regenerate.php b/regenerate.php
index cd1186a..33db824 100644
--- a/regenerate.php
+++ b/regenerate.php
@@ -1,6 +1,7 @@
 <?php
 require_once(__DIR__.'/vendor/autoload.php');
 require_once(__DIR__.'/lib/database.php');
+require_once(__DIR__.'/lib/output.php');
 require_once(__DIR__.'/lib/vehicle_types.php');
 require_once(__DIR__.'/config.php');
 
@@ -8,19 +9,8 @@
 	$logger = new Monolog\Logger('regenerate_'.$name);
 	try {
 		$logger->info('Regenerating '.$name.'...');
-		
 		$db = new Database($source['database']);
-		
-		$jsonContent = [];
-		foreach($db->getAll() as $vehicle) {
-			$jsonContent[$vehicle['id']] = $source['mapper']($vehicle['num']);
-		}
-		
-		$json = json_encode($jsonContent);
-		if(!file_put_contents($source['result_temp'], $json)) {
-			throw new Exception('Result save failed');
-		}
-		rename($source['result_temp'], $source['result']);
+		createMapping($db, $source['mapper'], $source);
 		$logger->info('Finished');
 	} catch(Throwable $e) {
 		$logger->error($e->getMessage(), ['exception' => $e, 'exception_string' => (string)$e]);

--
Gitblit v1.9.1