'Generate Feedback Url', 'message' => 'You have successfully generated a feedback url' ]; } /** @var CanGenerateFeedbackUrl */ private $canGenerateFeedbackUrl; /** @var CreatesUrl */ private $createsUrl; /** * GenerateFeedbackUrlLogic constructor. * @param CanGenerateFeedbackUrl $canGenerateFeedbackUrl * @param CreatesUrl $createsUrl */ public function __construct(CanGenerateFeedbackUrl $canGenerateFeedbackUrl, CreatesUrl $createsUrl) { $this->canGenerateFeedbackUrl = $canGenerateFeedbackUrl; $this->createsUrl = $createsUrl; } /** * @param Request $request * @return JsonResponse * @throws ErrorException */ public function logic(Request $request) : JsonResponse { $object = new GenerateFeedbackUrlObject(); if($request->get('apiKeyExist')) { $object = new GenerateFeedbackUrlObject($request->get('apiKeyExist')); } $this->canGenerateFeedbackUrl->passes($object); $shortUrl = Str::random(20); $originalText = $request->input('system') . '|' . $request->input('customer_marking'). '|' . $request->input('email'). '|' . $request->input('question_set') . '|' . $shortUrl; $originalUrl = Crypt::encryptString($originalText); $url = $this->createsUrl->execute(new UrlObject('feedback', $shortUrl, $originalUrl)); $resource = ['token' => $url->short_url]; return $this->response(['data' => $resource]); } }