getAttribute('id') !== null) { $name = $request->getAttribute('id'); return JsonResponseFactory::createJsonResponse( RedisClient::getRouter($name, $this->protocolEnumFromRequest($request)) ); } return JsonResponseFactory::createJsonResponse( RedisClient::getAllRouters($this->protocolEnumFromRequest($request)) ); } /** * @throws \JsonException */ public function post(ServerRequest $request): ResponseInterface { $data = $request->getParsedBody(); $name = $request->getAttribute('id'); if (empty($data['service'])) { return JsonResponseFactory::createJsonResponse(['error' => 'Service is required'], 400); } if (empty($data['rule'])) { return JsonResponseFactory::createJsonResponse(['error' => 'Rule is required'], 400); } RedisClient::createOrReplace( $name, $data, EntityEnum::ROUTER, $this->protocolEnumFromRequest($request) ); return JsonResponseFactory::createJsonResponse(['message' => 'Router created successfully']); } /** * @throws \JsonException */ public function delete(ServerRequest $request): ResponseInterface { $name = $request->getAttribute('id'); RedisClient::deleteAllKeys( $name, EntityEnum::ROUTER, $this->protocolEnumFromRequest($request) ); return JsonResponseFactory::createJsonResponse(['message' => 'Router deleted successfully']); } }