From b1d77777267face6651e942fb74baa3b3c353eb0 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 11 Nov 2022 08:33:35 +0000 Subject: [PATCH] Add log for warranty from app. #717 --- config/services.yaml | 5 ++ src/Controller/APIController.php | 10 ++- src/Entity/WarrantyLog.php | 150 +++++++++++++++++++++++++++++++ src/Service/WarrantyLogger.php | 33 +++++++ 4 files changed, 194 insertions(+), 4 deletions(-) create mode 100644 src/Entity/WarrantyLog.php create mode 100644 src/Service/WarrantyLogger.php diff --git a/config/services.yaml b/config/services.yaml index c130b986..8a78e195 100644 --- a/config/services.yaml +++ b/config/services.yaml @@ -277,6 +277,11 @@ services: arguments: $em: "@doctrine.orm.entity_manager" + # warranty logger for app + App\Service\WarrantyLogger: + arguments: + $em: "@doctrine.orm.entity_manager" + # promo logger App\Service\PromoLogger: arguments: diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index 3669b52b..3b7d89e3 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -41,7 +41,7 @@ use App\Service\RiderTracker; use App\Service\MapTools; use App\Service\InventoryManager; use App\Service\RiderAssignmentHandlerInterface; -use App\Service\WarrantyAPILogger; +use App\Service\WarrantyLogger; use App\Service\PromoLogger; use App\Service\HubSelector; use App\Service\HubDistributor; @@ -3371,7 +3371,7 @@ class APIController extends Controller implements LoggedController return $res->getReturnResponse(); // check if warranty serial is there - $serial = $this->cleanSerial($serial); + $serial = $this->cleanSerial($serial); $warr_serial = $em->getRepository(WarrantySerial::class)->find($serial); $warr = $em->getRepository(Warranty::class)->findOneBy(['serial' => $serial]); $batt = null; @@ -3578,7 +3578,7 @@ class APIController extends Controller implements LoggedController } public function warrantyRegister($serial, EntityManagerInterface $em, Request $req, KernelInterface $kernel, RisingTideGateway $rt, - TranslatorInterface $trans, WarrantyAPILogger $logger) + TranslatorInterface $trans, WarrantyLogger $logger) { // check required parameters and api key $required_params = [ @@ -3608,7 +3608,7 @@ class APIController extends Controller implements LoggedController 'last_name' => $req->request->get('last_name'), 'date_purchase' => $req->request->get('date_purchase'), ]; - $action = 'create'; + $action = 'create/update'; $source = WarrantySource::MOBILE; $res = $this->checkParamsAndKey($req, $em, $required_params); @@ -3978,6 +3978,8 @@ class APIController extends Controller implements LoggedController { $res->setError(true) ->setErrorMessage('Warranty registered to a vehicle not in your list of vehicles.'); + // set action to update + $action = 'update'; $logger->logWarrantyInfo($log_data, $res->getErrorMessage(), $user_id, $action, $source); return $res; } diff --git a/src/Entity/WarrantyLog.php b/src/Entity/WarrantyLog.php new file mode 100644 index 00000000..1dcd4715 --- /dev/null +++ b/src/Entity/WarrantyLog.php @@ -0,0 +1,150 @@ +date_create = new DateTime(); + $this->error = ''; + $this->data_sent = []; + $this->action = ''; + $this->source = ''; + } + + public function getID() + { + return $this->id; + } + + public function setDateCreate(DateTime $date_create) + { + $this->date_create = $date_create; + return $this; + } + + public function getDateCreate() + { + return $this->date_create; + } + + public function setApiUser($api_user) + { + $this->api_user = $api_user; + return $this; + } + + public function getApiUser() + { + return $this->api_user; + } + + public function addDataSent($id, $value) + { + $this->data_sent[$id] = $value; + return $this; + } + + public function setDataSent($data_sent) + { + $this->data_sent = $data_sent; + return $this; + } + + public function getDataSent($id) + { + // return null if we don't have it + if (!isset($this->data_sent[$id])) + return null; + + return $this->data_sent[$id]; + } + + public function getError() + { + return $this->error; + } + + public function setError($error) + { + return $this->error; + } + + public function setAction($action) + { + $this->action = $action; + return $this; + } + + public function getAction() + { + return $this->action; + } + + public function setSource($source) + { + $this->source = $source; + return $this; + } + + public function getSource() + { + return $this->source; + } +} + diff --git a/src/Service/WarrantyLogger.php b/src/Service/WarrantyLogger.php new file mode 100644 index 00000000..b8d66c61 --- /dev/null +++ b/src/Service/WarrantyLogger.php @@ -0,0 +1,33 @@ +em = $em; + } + + public function logWarrantyInfo($log_data, $error, $user_id, $action, $source) + { + $log_entry = new WarrantyAPILog(); + + $log_entry->setApiUser($user_id) + ->setError($error) + ->setDataSent($log_data) + ->setAction($action) + ->setSource($source); + + $this->em->persist($log_entry); + $this->em->flush(); + + } +} +