public function onKernelException(GetResponseForExceptionEvent $event) { $exception = $event->getException(); $response = new JsonResponse(); $detail = sprintf("Message: %s\nFile: %s:%s", $exception->getMessage(), $exception->getFile(), $exception->getLine()); $data = ['type' => '#0', 'code' => 0, 'title' => 'Internal Server Error', 'status' => JsonResponse::HTTP_INTERNAL_SERVER_ERROR, 'detail' => $detail]; $response->setStatusCode(JsonResponse::HTTP_INTERNAL_SERVER_ERROR); $response->setData($data); if ($exception instanceof HttpExceptionInterface) { $response->headers->replace($exception->getHeaders()); } if ($exception instanceof HttpException) { $data = ['type' => '#' . $exception->getCode(), 'code' => $exception->getCode(), 'title' => $exception->getMessage(), 'status' => JsonResponse::HTTP_BAD_REQUEST, 'detail' => $exception->getDetails()]; $response->setStatusCode(JsonResponse::HTTP_BAD_REQUEST); $response->setData($data); } if ($exception instanceof AccessDeniedHttpException) { $event->setResponse(new Response("", 403)); } else { $event->setResponse($response); } if (!in_array($this->kernel->getEnvironment(), array('dev', 'test'))) { unset($data['detail']); } }
public function onKernelException(GetResponseForExceptionEvent $event) { $exception = $event->getException(); $response = new JsonResponse(); $response->setData(['message' => $exception->getMessage()]); if ($exception instanceof HttpExceptionInterface) { $response->setStatusCode($exception->getStatusCode()); $response->headers->replace($exception->getHeaders()); } else { $response->setStatusCode(JsonResponse::HTTP_INTERNAL_SERVER_ERROR); } if ('RuntimeException' === get_class($exception)) { $response->setStatusCode($exception->getCode()); } if ($exception instanceof ArrayErrorsException) { $response->setData(['formErrors' => $exception->getErrors()]); } if ($exception instanceof AuthenticationException) { $response->setData(['message' => $exception->getMessageKey()]); $response->setStatusCode(JsonResponse::HTTP_BAD_REQUEST); } if ($exception instanceof InsufficientAuthenticationException) { $response->setData(['message' => $this->translator->trans('error.insufficient_authentication')]); $response->setStatusCode(JsonResponse::HTTP_FORBIDDEN); } $event->setResponse($response); }
/** * Converts response into json which contains the exception message. * * @param \Symfony\Component\HttpKernel\Event\GetResponseForExceptionEvent $event The response event */ public function onKernelException(GetResponseForExceptionEvent $event) { if ($event->getRequest()->getRequestFormat() === 'json') { $exception = $event->getException(); $response = new JsonResponse(); switch ($exception) { case $exception instanceof InvalidFormException: $response->setStatusCode(400); $response->setData($exception->getFormErrors()); break; case $exception instanceof \InvalidArgumentException: $response->setStatusCode(400); $response->setData(['error' => $exception->getMessage()]); break; case $exception instanceof AccessDeniedException: $response->setStatusCode(403); $response->setData(['error' => 'Not allowed to access this resource']); break; case $exception instanceof NoResultException: $response->setStatusCode(404); $response->setData(['error' => 'Does not exist any object with id passed']); break; case $exception instanceof ResourceInUseException || $exception instanceof ResourceAlreadyPersistException || $exception instanceof CollectionMinLengthException: $response->setStatusCode(409); $response->setData(['error' => $exception->getMessage()]); break; default: $response->setData(['error' => $exception->getMessage()]); } $event->setResponse($response); } }
public function onKernelException(GetResponseForExceptionEvent $event) { $exception = $event->getException(); $response = new JsonResponse(['errorMessage' => $event->getException()->getMessage(), 'stackTrace' => $event->getException()->getTraceAsString()]); if ($exception instanceof HttpExceptionInterface) { $response->setStatusCode($exception->getStatusCode()); } else { if ($exception instanceof AuthenticationException) { $response->setData(['errorMessage' => 'You don\'t have permissions to do this.']); $response->setStatusCode(Response::HTTP_FORBIDDEN); } else { if ($exception instanceof InvalidFormException) { $errors = []; foreach ($exception->getForm()->getErrors(true) as $error) { if ($error->getOrigin()) { $errors[$error->getOrigin()->getName()][] = $error->getMessage(); } } $data = ['errors' => $errors, 'errorMessage' => '']; $response->setData($data); $response->setStatusCode(Response::HTTP_BAD_REQUEST); } else { $response->setStatusCode(Response::HTTP_INTERNAL_SERVER_ERROR); } } } $event->setResponse($response); }
public function thumbnailAction(Request $request, $id) { $mediaRepository = $this->getRepository('BuzzworthyMediaBundle:Media'); $video = $mediaRepository->find($id); $time = $request->get('time'); $thumbnailManager = $this->get('app.thumbnail_manager')->createThumbnail($video->getWebPath(), $time); $response = new JsonResponse(); true == $thumbnailManager ? $response->setStatusCode(Response::HTTP_OK) : $response->setStatusCode(Response::HTTP_FORBIDDEN); return $response; }
/** * Obteniendo el ultimo mapa guardado */ public function currentMapAction() { $em = $this->getDoctrine()->getManager(); $mapa = $em->getRepository('AdminBundle:MapaRecorrido')->findCurrentMap(); $response = new JsonResponse(); if ($mapa) { $response->setData($mapa); $response->setStatusCode(Response::HTTP_OK); } else { $response->setStatusCode(Response::HTTP_NOT_FOUND); } return $response; }
/** * @param GetResponseForExceptionEvent $event */ public function onKernelException(GetResponseForExceptionEvent $event) { $exception = $event->getException(); $response = new JsonResponse(); if ($exception instanceof HttpExceptionInterface) { $response->setStatusCode($exception->getStatusCode()); } elseif ($exception instanceof AuthenticationException) { $response->setStatusCode(403); } else { $response->setStatusCode(Response::HTTP_INTERNAL_SERVER_ERROR); } $response->setData(array('message' => $exception->getMessage(), 'status_code' => $response->getStatusCode(), 'trace' => $exception->getTrace(), 'code' => $exception->getCode())); $event->setResponse($response); }
public function onKernelException(GetResponseForExceptionEvent $event) { $exception = $event->getException(); $response = new JsonResponse(); if ($exception instanceof HttpExceptionInterface) { $response->setStatusCode($exception->getStatusCode()); $response->headers->replace($exception->getHeaders()); $response->setData(array('message' => $exception->getMessage())); } else { $response->setData(array('message' => 'An internal server error occurred. Sorry for the inconvenience.')); $response->setStatusCode(JsonResponse::HTTP_INTERNAL_SERVER_ERROR); } $event->setResponse($response); }
/** * @param \Dafiti\Silex\Response $controllerResponse * * @return HttpFoundation\Response */ protected function transform(\Dafiti\Silex\Response $controllerResponse) { $response = new HttpFoundation\JsonResponse(); $response->headers->add(['Content-Type' => self::CONTENT_TYPE]); $response->setStatusCode($controllerResponse->getStatusCode()); if ($this->hasError()) { $content = ['message' => $controllerResponse->getErrorMessage()]; $response->setData($content); return $response; } $response->setStatusCode($controllerResponse->getStatusCode()); $content = $this->getContent($controllerResponse); $response->setData($content); return $response; }
public function onKernelException(GetResponseForExceptionEvent $event) { if (!$event->getRequest()->isXmlHttpRequest()) { return; } $exception = $event->getException(); $response = new JsonResponse(array('hasError' => true, 'error' => $exception->getMessage())); if ($exception instanceof HttpExceptionInterface) { $response->setStatusCode($exception->getStatusCode()); $response->headers->replace($exception->getHeaders()); } else { $response->setStatusCode(Response::HTTP_INTERNAL_SERVER_ERROR); } $event->setResponse($response); }
/** * This listener is run when the KernelEvents::EXCEPTION event is triggered * * @param GetResponseForExceptionEvent $event */ public function on_kernel_exception(GetResponseForExceptionEvent $event) { $exception = $event->getException(); $message = $exception->getMessage(); if ($exception instanceof exception_interface) { $message = $this->language->lang_array($message, $exception->get_parameters()); } if (!$event->getRequest()->isXmlHttpRequest()) { $this->template->assign_vars(array('TITLE' => $this->language->lang('INFORMATION'), 'BODY' => $message)); $response = $this->controller_helper->render('installer_main.html', $this->language->lang('INFORMATION'), false, 500); } else { $data = array(); if (!empty($message)) { $data['message'] = $message; } if (defined('DEBUG')) { $data['trace'] = $exception->getTrace(); } $response = new JsonResponse($data, 500); } if ($exception instanceof HttpExceptionInterface) { $response->setStatusCode($exception->getStatusCode()); $response->headers->add($exception->getHeaders()); } $event->setResponse($response); }
public function onKernelView(GetResponseForControllerResultEvent $event) { if (!$event->isMasterRequest()) { return; } $request = $event->getRequest(); if ('json' !== $request->getRequestFormat()) { return; } $result = $event->getControllerResult(); if (null === $result) { $event->setResponse(new JsonResponse(null, 204)); return; } if ($result instanceof Response) { return; } $response = new JsonResponse(); if ($request->isMethod('POST')) { $response->setStatusCode(201); } if (!is_scalar($result)) { $result = $this->getSerializer()->normalize($result, null, ['groups' => $this->options['serialization_default_groups']]); } $response->setData($result); $event->setResponse($response); }
/** * Process Ajax Form to create/update virtual product * * @param int $idProduct * @param Request $request * * @return string */ public function saveAction($idProduct, Request $request) { $response = new JsonResponse(); $legacyContext = $this->container->get('prestashop.adapter.legacy.context'); $adminProductWrapper = $this->container->get('prestashop.adapter.admin.wrapper.product'); $productAdapter = $this->container->get('prestashop.adapter.data_provider.product'); //get product $product = $productAdapter->getProduct((int) $idProduct, true); if (!$product || !$request->isXmlHttpRequest()) { return $response; } $form = $this->createForm('PrestaShopBundle\\Form\\Admin\\Product\\ProductVirtual', null, array('csrf_protection' => false)); $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); $res = $adminProductWrapper->updateDownloadProduct($product, $data); $res->file_download_link = $res->filename ? $legacyContext->getAdminBaseUrl() . $res->getTextLink(true) : ''; $product->is_virtual = 1; $product->save(); $response->setData($res); } else { $response->setStatusCode(400); $response->setData($this->getFormErrorsForJS($form)); } return $response; }
/** * @inheritdoc */ public function start(Request $request, AuthenticationException $authException = null) { $response = new JsonResponse(); $response->setStatusCode(401); $response->setData(['ok' => false, 'error' => 'Accessing this resource requires authorization']); return $response; }
/** * Manage form add product attachment * * @param int $idProduct * @param Request $request * * @return string */ public function addAction($idProduct, Request $request) { $response = new JsonResponse(); $legacyContext = $this->container->get('prestashop.adapter.legacy.context'); $adminProductWrapper = $this->container->get('prestashop.adapter.admin.wrapper.product'); $productAdapter = $this->container->get('prestashop.adapter.data_provider.product'); //get product $product = $productAdapter->getProduct((int) $idProduct); if (!$product || !$request->isXmlHttpRequest()) { return $response; } $form = $this->createForm('PrestaShopBundle\\Form\\Admin\\Product\\ProductAttachement', null, array('csrf_protection' => false)); $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); $res = $adminProductWrapper->processAddAttachment($product, $data, $legacyContext->getLanguages()); if ($res) { $res->real_name = $data['name']; $response->setData($res); } } else { $response->setStatusCode(400); $response->setData($this->getFormErrorsForJS($form)); } return $response; }
public function getTimetableUrlAction($customerNameCanonical, $externalNetworkId, $externalRouteId, $externalStopPointId) { try { $filter = $this->getRequest()->query->get('filter'); if (empty($filter)) { // default value is now $date = new \DateTime("now"); } else { $date = new \DateTime($filter); } $season = $this->findSeasonByCustomerAndDate($customerNameCanonical, $externalNetworkId, $date); if (empty($season)) { throw new \Exception($this->get('translator')->trans('webservice.no_season_found', array('%date%' => $date->format('d/m/Y')), 'exceptions'), 404); } $mediaUrl = $this->getMediaUrl($externalNetworkId, $externalRouteId, $externalStopPointId, $season[0]['id']); if (empty($mediaUrl)) { throw new \Exception($this->get('translator')->trans('webservice.no_timetable_found', array('%date%' => $date->format('d/m/Y')), 'exceptions'), 404); } return $this->redirect($mediaUrl); } catch (\Exception $e) { $code = in_array($e->getCode(), array(404, 500)) ? $e->getCode() : 500; $response = new JsonResponse(); $response->setData(array('message' => $e->getMessage(), 'error_code' => $code)); $response->setStatusCode($code); return $response; } }
/** * @param int $statusCode * * @return JsonResponse */ protected function createResponse($statusCode = Response::HTTP_OK) { $response = new JsonResponse(); $response->setStatusCode($statusCode); $response->headers->set('Access-Control-Allow-Origin', $this->container->getParameter('tree_house.api.allowed_origins')); return $response; }
/** * Preparing a JsonResponse * * @param array $data * @param integer $statusCode */ protected function prepareJsonResponse($data = array(), $statusCode = Response::HTTP_OK) { $response = new JsonResponse(); $response->setData($data); $response->setStatusCode($statusCode); return $response; }
/** * @param GetResponseForExceptionEvent $event */ public function onKernelException(GetResponseForExceptionEvent $event) { $exception = $event->getException(); $code = $exception->getCode(); $debug = array('class' => get_class($exception), 'code' => $code, 'message' => $exception->getMessage()); $this->logger->error(print_r($debug, true)); // HttpExceptionInterface est un type d'exception spécial qui // contient le code statut et les détails de l'entête if ($exception instanceof NotFoundHttpException) { $data = array('error' => array('code' => $code ? $code : -3, 'message' => $exception->getMessage())); $response = new JsonResponse($data); $response->setStatusCode($exception->getStatusCode()); $response->headers->replace($exception->getHeaders()); $response->headers->set('Content-Type', 'application/json'); } elseif ($exception instanceof HttpExceptionInterface) { $data = array('error' => array('code' => $code ? $code : -2, 'message' => $exception->getMessage())); $response = new JsonResponse($data); $response->setStatusCode($exception->getStatusCode()); $response->headers->replace($exception->getHeaders()); $response->headers->set('Content-Type', 'application/json'); } else { $data = array('error' => array('code' => $code ? $code : -1, 'message' => 'Internal Server Error / ' . $exception->getMessage())); $response = new JsonResponse($data); $response->setStatusCode(Response::HTTP_INTERNAL_SERVER_ERROR); } // envoie notre objet réponse modifié à l'évènement $event->setResponse($response); }
/** * This listener is run when the KernelEvents::EXCEPTION event is triggered * * @param GetResponseForExceptionEvent $event * @return null */ public function on_kernel_exception(GetResponseForExceptionEvent $event) { $exception = $event->getException(); $message = $exception->getMessage(); if ($exception instanceof \phpbb\exception\exception_interface) { $message = $this->language->lang_array($message, $exception->get_parameters()); } if (!$event->getRequest()->isXmlHttpRequest()) { page_header($this->language->lang('INFORMATION')); $this->template->assign_vars(array('MESSAGE_TITLE' => $this->language->lang('INFORMATION'), 'MESSAGE_TEXT' => $message)); $this->template->set_filenames(array('body' => 'message_body.html')); page_footer(true, false, false); $response = new Response($this->template->assign_display('body'), 500); } else { $data = array(); if (!empty($message)) { $data['message'] = $message; } if (defined('DEBUG')) { $data['trace'] = $exception->getTrace(); } $response = new JsonResponse($data, 500); } if ($exception instanceof HttpExceptionInterface) { $response->setStatusCode($exception->getStatusCode()); $response->headers->add($exception->getHeaders()); } $event->setResponse($response); }
/** * Process Ajax Form to add a simple category (name and parent category) * * @param Request $request * * @return string */ public function addSimpleCategoryFormAction(Request $request) { $response = new JsonResponse(); $tools = $this->container->get('prestashop.adapter.tools'); $shopContext = $this->container->get('prestashop.adapter.shop.context'); $shopList = $shopContext->getShops(false, true); $currentIdShop = $shopContext->getContextShopID(); $form = $this->createFormBuilder()->add('category', 'PrestaShopBundle\\Form\\Admin\\Category\\SimpleCategory')->getForm(); $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); $_POST = ['submitAddcategory' => 1, 'name_1' => $data['category']['name'], 'id_parent' => $data['category']['id_parent'], 'link_rewrite_1' => $tools->link_rewrite($data['category']['name']), 'active' => 1, 'checkBoxShopAsso_category' => $currentIdShop ? [$currentIdShop => $currentIdShop] : $shopList]; $adminCategoryController = $this->container->get('prestashop.adapter.admin.controller.category')->getInstance(); if ($category = $adminCategoryController->processAdd()) { $response->setData(['category' => $category]); } if ($request->query->has('id_product')) { $productAdapter = $this->get('prestashop.adapter.data_provider.product'); $product = $productAdapter->getProduct($request->query->get('id_product')); $product->addToCategories($category->id); $product->save(); } } else { $response->setStatusCode(400); $response->setData($this->getFormErrorsForJS($form)); } return $response; }
public function coletaAction(Request $request) { $logger = $this->get('logger'); $status = $request->getContent(); $em = $this->getDoctrine()->getManager(); $dados = json_decode($status, true); if (empty($dados)) { $logger->error("JSON INVÁLIDO!!!!!!!!!!!!!!!!!!! Erro na COLETA"); // Retorna erro se o JSON for inválido $error_msg = '{ "message": "JSON Inválido", "codigo": 1 }'; $response = new JsonResponse(); $response->setStatusCode('500'); $response->setContent($error_msg); return $response; } $computador = $this->getComputador($dados, $request); if (empty($computador)) { // Se não identificar o computador, manda para o getUpdate $logger->error("Computador não identificado no getConfig. Necessário executar getUpdate"); $error_msg = '{ "message": "Computador não identificado", "codigo": 2 }'; $response = new JsonResponse(); $response->setStatusCode('500'); $response->setContent($error_msg); return $response; } //Verifica se a coleta foi forçada if ($computador->getForcaColeta() == 'true') { $computador->setForcaColeta('false'); $this->getDoctrine()->getManager()->persist($computador); $this->getDoctrine()->getManager()->flush(); } $result1 = $this->setHardware($dados['hardware'], $computador); $result2 = $this->setSoftware($dados['software'], $computador); $response = new JsonResponse(); if ($result1 && $result2) { $response->setStatusCode('200'); } else { $response->setStatusCode('500'); } return $response; }
/** * @Route("/editor_plugin/feedback/", options={"expose"=true}, name="aes_send_feedback") * @Method("POST") */ public function submitAction(Request $request) { $form = $this->get('form.factory')->create(new FeedbackType(), array(), array()); $translator = $this->get('translator'); $form->handleRequest($request); $jsonResponse = new JsonResponse(); $jsonResponse->headers->set('Access-Control-Allow-Origin', '*'); $jsonResponse->setData(array('status' => false, 'message' => $translator->trans('aes.msgs.feedback.error'))); $jsonResponse->setStatusCode(422); if ($form->isValid()) { $data = $form->getData(); $this->get('email')->send('Feedback from: ' . $data['name'], $data['message'], '*****@*****.**', $data['email']); $jsonResponse->setData(array('status' => true, 'message' => $translator->trans('aes.msgs.feedback.success'))); $jsonResponse->setStatusCode(200); } return $jsonResponse; }
/** * @param array $data * @param int $status * * @return JsonResponse */ protected function sendJsonResponse(array $data, $status = 200, $headers = array()) { $response = new JsonResponse($data); $response->setStatusCode($status); foreach ($headers as $key => $value) { $response->headers->set($key, $value); } return $response; }
/** * @param Application $app * @param bool $force */ public static function register(Application $app, $force = false) { $app->error(function (\Exception $e) use($app, $force) { /** @var Request $request */ $request = $app['request']; if ($force || $request->headers->has('accept') && 0 === strpos($request->headers->get('accept'), 'application/json')) { $response = new JsonResponse(); if ($e instanceof HttpException) { $response->setStatusCode($e->getStatusCode()); $response->headers->add($e->getHeaders()); } else { $response->setStatusCode(500); } $response->setData(array('error' => $e->getCode(), 'message' => $e->getMessage())); return $response; } return null; }); }
/** * method checks if there are jobs which are enabled but did not return 0 on last execution or are locked.<br> * if a match is found, HTTP status 417 is sent along with an array which contains name, return code and locked-state. * if no matches found, HTTP status 200 is sent with an empty array * * @return JsonResponse */ public function monitorAction() { $scheduledCommands = $this->getMonitoringData(); $failed = $this->monitorService->processCommandsJSON($scheduledCommands); $status = count($failed) > 0 ? Response::HTTP_EXPECTATION_FAILED : Response::HTTP_OK; $response = new JsonResponse(); $response->setContent(json_encode($failed)); $response->setStatusCode($status); return $response; }
protected function apiErrorResponse($message, $code = 400) { if ($code == 0) { $code = 400; } $responseData['error'] = array('message' => $message, 'code' => $code); $response = new JsonResponse($responseData); $response->setStatusCode($code); return $this->apiResponseHeaders($response); }
protected function processRequest(Request $request, Task &$task) { $response = new JsonResponse(); $requestContent = json_decode($request->getContent(), true); if (!isset($requestContent['task'])) { return $response->setStatusCode(400)->setContent($this->serialize(['error' => ['params' => 'Malformed request, missing parameters']])); } $taskParams = $requestContent['task']; $task->setName($taskParams['name']); $task->setStartDate(new \DateTime($taskParams['startDate'])); $task->setEndDate(new \DateTime($taskParams['endDate'])); $task->setBandColor($taskParams['bandColor']); $errors = $this->get('validator')->validate($task); if (count($errors) > 0) { return $response->setStatusCode(400)->setContent($this->serialize(['error' => $errors])); } $this->getDoctrine()->getManager()->persist($task); $this->getDoctrine()->getManager()->flush(); $response->setStatusCode(200); return $response->setContent($this->serialize(['task' => $task])); }
/** * @param array $dataArray * @param int $statusCode * @param bool $addIgnoreWdt * * @return JsonResponse * * @throws \Exception */ protected function sendJsonResponse($dataArray, $statusCode = null, $addIgnoreWdt = true) { $response = new JsonResponse(); if ($this->factory->getEnvironment() == 'dev' && $addIgnoreWdt) { $dataArray['ignore_wdt'] = 1; } if ($statusCode !== null) { $response->setStatusCode($statusCode); } $response->setData($dataArray); return $response; }
/** * @Route("/snippet/all/", * name="pugx_snippet_all" * ) * @Method({"GET"}) * @Cache(smaxage="3600", maxage="3600", public=true) * * @return JsonResponse */ public function allAction() { $repository = $this->container->get('request')->get('repository'); $response = new JsonResponse(); if (!$this->isValidRepositoryName($repository)) { $response->setData(array('msg' => 'Package not found. Please check the package name. eg. (symfony/symfony)')); $response->setStatusCode(404); return $response; } try { $badges = $this->container->get('snippet_generator')->generateAllSnippets($repository); $response->setData($badges); } catch (ClientErrorResponseException $e) { $response->setData(array('msg' => 'Package not found. Please check the package name. eg. (symfony/symfony)')); $response->setStatusCode(404); } catch (\Exception $e) { $response->setData(array('msg' => 'Server Error')); $response->setStatusCode(500); } return $response; }