logger = $logger; $this->serializer = $serializer; $this->mattermostService = $mattermostService; } /** * Send message to a mattermost chat from alertmanager. * * Docs
* - alertmanager
* - mattermost
* * @Route("/api/v1/send_message/alertmanager", methods={"POST"}) * @OA\Tag(name="mattermost") * @OA\RequestBody( * @OA\JsonContent( * ref=@Model(type=AlertmanagerMessage::class) * ) * ) * @OA\Response( * response=200, * description="Success delivery" * ) */ public function sendMessageFromAlertmanager(Request $request): Response { try { $this->logger->notice($request->getContent()); $message = $this->serializer->deserialize( $request->getContent(), AlertmanagerMessage::class, 'json' ); $response = $this->mattermostService->sendAlertmanagerMessage($message); return new Response($response->getBody()->getContents()); } catch (Throwable $e) { $this->logger->critical($e->getMessage()); return new Response( $e->getMessage(), 0 === $e->getCode() ? Response::HTTP_INTERNAL_SERVER_ERROR : $e->getCode() ); } } /** * Send message to a mattermost chat from grafana. * * Docs
* - grafana
* - mattermost
* * @Route("/api/v1/send_message/grafana", methods={"POST"}) * @OA\Tag(name="mattermost") * @OA\RequestBody( * @OA\JsonContent( * ref=@Model(type=GrafanaMessage::class) * ) * ) * @OA\Response( * response=200, * description="Success delivery" * ) */ public function sendMessageFromGrafana(Request $request): Response { try { $this->logger->notice($request->getContent()); $message = $this->serializer->deserialize( $request->getContent(), GrafanaMessage::class, 'json' ); $response = $this->mattermostService->sendGrafanaMessage($message); return new Response($response->getBody()->getContents()); } catch (Throwable $e) { $this->logger->critical($e->getMessage()); return new Response( $e->getMessage(), 0 === $e->getCode() ? Response::HTTP_INTERNAL_SERVER_ERROR : $e->getCode() ); } } }