'Feedback Submission', 'message' => 'You have successfully submitted yours answers' ]; } /** @var SaveHelpMenuAnswerProcessor */ private $saveHelpMenuAnswerProcessor; /** @var UserSourceForQAProcessor */ private $userSourceForQAProcessor; /** * SubmitQAQuestionsLogic constructor. * @param SaveHelpMenuAnswerProcessor $saveHelpMenuAnswerProcessor * @param UserSourceForQAProcessor $userSourceForQAProcessor */ public function __construct(SaveHelpMenuAnswerProcessor $saveHelpMenuAnswerProcessor, UserSourceForQAProcessor $userSourceForQAProcessor) { $this->saveHelpMenuAnswerProcessor = $saveHelpMenuAnswerProcessor; $this->userSourceForQAProcessor = $userSourceForQAProcessor; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { $token = $request->input('token'); $userId = 0; $sourceId = 0; try { $decriptedToken = Crypt::decryptString($token); $delimiter = "|"; $parts = explode($delimiter, $decriptedToken); $system = $parts[0]; $customerMarking = $parts[1]; $email = $parts[2]; $result = $this->userSourceForQAProcessor->execute($system, $customerMarking, $email); $userId = $result['userId']; $sourceId = $result['sourceId']; } catch (\Throwable $e) { Log::error($e); } $answers = $request->input('answers'); foreach ($answers as $answer) { $filesUpload = $request->input('files'); $this->saveHelpMenuAnswerProcessor->execute($userId, $sourceId, $answer['questionId'], $answer['answer'], $answer['answerId'], $filesUpload); } $response = ['message' => 'Thank you for your feedback.']; return $this->response(['data' => $response]); } }