public function index() { $this->autoRender = false; date_default_timezone_set('GMT'); $jsonData = $this->request->input(); Log::debug($jsonData); if (empty($jsonData)) { $this->response->body(DTO\ErrorDto::prepareError(104)); Log::error('Upload request data is empty'); return; } $result = UploadDTO\MainUploadDto::Deserialize($jsonData); $userData = UploadDTO\UserUploadDto::Deserialize($result->user); $restaurantController = new RestaurantController(); if (!$restaurantController->isValidate($userData->restaurantId)) { $this->response->body(DTO\ErrorDto::prepareError(100)); \Cake\Log\Log::error("request with incorrect restaurantId :- " . $userData->restaurantId); return; } $restaurantIMEIController = new RestaurantImeiController(); if (!$restaurantIMEIController->isPresent($userData->restaurantId, $userData->imei, $this->isNull($userData->macId))) { $this->response->body(DTO\ErrorDto::prepareError(116)); \Cake\Log\Log::error("request with incorrect restaurantId :- " . $userData->restaurantId); return; } $userController = new UserController(); $userValidateResult = $userController->validateUserForUpload($userData->userId, $userData->password, $userData->restaurantId); if (is_null($userValidateResult)) { $this->response->body(DTO\ErrorDto::prepareError(102)); \Cake\Log\Log::error("request with incorrect userId :- " . $userData->userId); return; } $uploadResult = false; if (!$result->data) { Log::error("No data found for the request, data is blank"); return; } foreach ($result->data as $index => $record) { switch ($record->operation) { case $this->operations['PO']: $operationData = $record->operationData; $orderResponse = $this->placeOrder($operationData, $userData); if ($orderResponse) { $this->response->body(DTO\ErrorDto::prepareSuccessMessage($orderResponse)); } else { $this->response->body(DTO\ErrorDto::prepareError(129)); } break; case $this->operations['TO']: $operationData = $record->operationData; $result = $this->tableOccupy($operationData, $userData); if ($result) { $this->response->body(DTO\ErrorDto::prepareSuccessMessage($result)); } else { $this->response->body(DTO\ErrorDto::prepareError(110)); } break; case $this->operations['GB']: $operationData = $record->operationData; $result = $this->generateBill($operationData, $userData); break; case $this->operations['PB']: $operationData = $record->operationData; $this->payedBill($operationData, $userData); break; case $this->operations['OFF']: $operationData = $record->operationData; $this->orderFullfiled($operationData, $userData); break; case $this->operations['AC']: $operationData = $record->operationData; $this->addCustomer($operationData, $userData); break; case $this->operations['AWC']: $operationData = $record->operationData; $this->addWaitingCustomer($operationData, $userData); break; case $this->operations['DWC']: $operationData = $record->operationData; $this->deleteWaitingCustomer($operationData, $userData); break; case $this->operations['CF']: $operationData = $record->operationData; $this->addCustomerFeedback($operationData, $userData); break; case $this->operations['CT']: $operationData = $record->operationData; $this->closeTable($operationData, $userData); break; case $this->operations['P']: $operationData = $record->operationData; $this->printBill($operationData, $userData); break; case $this->operations['ATA']: $operationData = $record->operationData; $this->addTakeaway($operationData, $userData); break; case $this->operations['UC']: $operationData = $record->operationData; $this->updateCustomer($operationData, $userData); break; case $this->operations['AAE']: $operationData = $record->operationData; $this->addApplicationError($operationData, $userData); break; case $this->operations['AD']: $operationData = $record->operationData; $this->addDelivery($operationData, $userData); break; default: $this->response->body(DTO\ErrorDto::prepareError(108)); break; } } }