From d2cae08fb022f50a5278dd8aac61f874b6be77e6 Mon Sep 17 00:00:00 2001 From: Korina Cordero Date: Fri, 30 Apr 2021 08:12:00 +0000 Subject: [PATCH] Add logging for warranty creation in mobile API. #555 --- src/Controller/APIController.php | 47 ++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 9 deletions(-) diff --git a/src/Controller/APIController.php b/src/Controller/APIController.php index e7a96ded..f7004295 100644 --- a/src/Controller/APIController.php +++ b/src/Controller/APIController.php @@ -30,6 +30,7 @@ use App\Ramcar\AdvanceOrderSlot; use App\Ramcar\AutoAssignStatus; use App\Ramcar\HubCriteria; use App\Ramcar\WillingToWaitContent; +use App\Ramcar\WarrantySource; use App\Service\InvoiceGeneratorInterface; use App\Service\RisingTideGateway; @@ -42,6 +43,7 @@ use App\Service\RiderAssignmentHandlerInterface; use App\Service\HubSelector; use App\Service\HubDistributor; use App\Service\HubFilterLogger; +use App\Service\WarrantyAPILogger; use App\Entity\MobileSession; use App\Entity\Customer; @@ -3051,7 +3053,8 @@ class APIController extends Controller implements LoggedController return $serial . '/' . $filename; } - public function warrantyRegister($serial, EntityManagerInterface $em, Request $req, KernelInterface $kernel, RisingTideGateway $rt, TranslatorInterface $trans) + public function warrantyRegister($serial, EntityManagerInterface $em, Request $req, KernelInterface $kernel, RisingTideGateway $rt, + TranslatorInterface $trans, WarrantyAPILogger $logger) { // check required parameters and api key $required_params = [ @@ -3073,22 +3076,37 @@ class APIController extends Controller implements LoggedController $inv_filename = $this->handlePictureUpload($invoice, $upload_dir, $serial, 'invoice'); $wcard_filename = $this->handlePictureUpload($warr_card, $upload_dir, $serial, 'wcard'); + $user_id = $req->query->get('api_key'); + $log_data = [ + 'plate_number' => $req->request->get('plate_num'), + 'first_name' => $req->request->get('first_name'), + 'last_name' => $req->request->get('last_name'), + 'date_purchase' => $req->request->get('date_purchase'), + ]; + $action = 'create'; + $source = WarrantySource::MOBILE; + $res = $this->checkParamsAndKey($req, $em, $required_params); if ($res->isError()) + { + $logger->logWarrantyInfo($log_data, $res->getErrorMessage(), $user_id, $action, $source); return $res->getReturnResponse(); + } // update customer information // $cust = $this->updateCustomerInfo($req, $em); // update warranty - $res = $this->updateWarranty($res, $em, $rt, $trans, $req, $serial, $inv_filename, $wcard_filename); + $res = $this->updateWarranty($res, $em, $rt, $trans, $req, $serial, $inv_filename, $wcard_filename, + $logger, $log_data, $user_id, $action, $source); $em->flush(); return $res->getReturnResponse(); } - protected function updateWarranty($res, $em, $rt, $trans, $req, $serial, $inv_filename = null, $wcard_filename = null) + protected function updateWarranty($res, $em, $rt, $trans, $req, $serial, $inv_filename = null, $wcard_filename = null, + $logger, $log_data, $user_id, $action, $source) { // get serial $warr_serial = $em->getRepository(WarrantySerial::class)->find($serial); @@ -3096,6 +3114,7 @@ class APIController extends Controller implements LoggedController { $res->setError(true) ->setErrorMessage('Invalid warranty serial code.'); + $logger->logWarrantyInfo($log_data, $res->getErrorMessage(), $user_id, $action, $source); return $res; } @@ -3120,7 +3139,8 @@ class APIController extends Controller implements LoggedController if (!$is_customer_warranty) { $res->setError(true) - ->setErrorMessage('Warranty registred to a vehicle not in your list of vehicles.'); + ->setErrorMessage('Warranty registered to a vehicle not in your list of vehicles.'); + $logger->logWarrantyInfo($log_data, $res->getErrorMessage(), $user_id, $action, $source); return $res; } @@ -3132,14 +3152,20 @@ class APIController extends Controller implements LoggedController $sms_msg = $trans->trans('warranty_register_confirm'); } + // check if sku is null // get sap battery $sku = $warr_serial->getSKU(); - $sap_bty = $em->getRepository(SAPBattery::class)->find($sku); - if ($sap_bty == null) + $sap_bty = null; + if ($sku != null) { - $res->setError(true) - ->setErrorMessage('Could not find battery entry for warranty.'); - return $res; + $sap_bty = $em->getRepository(SAPBattery::class)->find($sku); + if ($sap_bty == null) + { + $res->setError(true) + ->setErrorMessage('Could not find battery entry for warranty.'); + $logger->logWarrantyInfo($log_data, $res->getErrorMessage(), $user_id, $action, $source); + return $res; + } } // default date purchase to today @@ -3152,6 +3178,7 @@ class APIController extends Controller implements LoggedController { $res->setError(true) ->setErrorMessage('Invalid date format for date of purchase.'); + $logger->logWarrantyInfo($log_data, $res->getErrorMessage(), $user_id, $action, $source); return $res; } @@ -3196,6 +3223,8 @@ class APIController extends Controller implements LoggedController // set data to retrun to user $res->setData($data); + $logger->logWarrantyInfo($log_data, '', $user_id, $action, $source); + // send sms error_log('sending sms to - ' . $this->session->getPhoneNumber()); $rt->sendSMS($this->session->getPhoneNumber(), 'MOTOLITE', $sms_msg);