/** * Delivers a request item to the appropriate DataRequestHandler. * * @param RequestItem $requestItem * @return ResponseItem */ protected function handleRequestItem(RequestItem $requestItem) { // lazy initialization of the service handlers, no need to instance them all for each request $service = $requestItem->getService(); if (!isset($this->handlers[$service])) { $handlerClasses = Config::get('service_handler'); if (isset($handlerClasses[$service])) { $handlerClass = $handlerClasses[$service]; $this->handlers[$service] = new $handlerClass(); } else { throw new SocialSpiException("The service " . $service . " is not implemented", ResponseError::$NOT_IMPLEMENTED); } } $handler = $this->handlers[$service]; return $handler->handleItem($requestItem); }
/** * Delivers a request item to the appropriate DataRequestHandler. */ protected function handleRequestItem(RequestItem $requestItem) { // lazy initialization of the service handlers, no need to instance them all for each request if (!isset($this->handlers[$requestItem->getService()])) { switch ($requestItem->getService()) { case self::$PEOPLE_ROUTE: require_once 'src/social/spi/PersonService.php'; require_once 'src/social/service/PersonHandler.php'; $this->handlers[self::$PEOPLE_ROUTE] = new PersonHandler(); break; case self::$ACTIVITY_ROUTE: require_once 'src/social/spi/ActivityService.php'; require_once 'src/social/service/ActivityHandler.php'; $this->handlers[self::$ACTIVITY_ROUTE] = new ActivityHandler(); break; case self::$APPDATA_ROUTE: require_once 'src/social/spi/AppDataService.php'; require_once 'src/social/service/AppDataHandler.php'; $this->handlers[self::$APPDATA_ROUTE] = new AppDataHandler(); break; case self::$MESSAGE_ROUTE: require_once 'src/social/spi/MessagesService.php'; require_once 'src/social/service/MessagesHandler.php'; $this->handlers[self::$MESSAGE_ROUTE] = new MessagesHandler(); break; case self::$INVALIDATE_ROUTE: require_once 'src/social/spi/InvalidateService.php'; require_once 'src/social/service/InvalidateHandler.php'; $this->handlers[self::$INVALIDATE_ROUTE] = new InvalidateHandler(); break; case self::$SYSTEM_ROUTE: require_once 'src/social/service/SystemHandler.php'; $this->handlers[self::$SYSTEM_ROUTE] = new SystemHandler(); break; case self::$ALBUM_ROUTE: require_once 'src/social/spi/AlbumService.php'; require_once 'src/social/service/AlbumHandler.php'; $this->handlers[self::$ALBUM_ROUTE] = new AlbumHandler(); break; case self::$MEDIA_ITEM_ROUTE: require_once 'src/social/spi/MediaItemService.php'; require_once 'src/social/service/MediaItemHandler.php'; $this->handlers[self::$MEDIA_ITEM_ROUTE] = new MediaItemHandler(); break; default: throw new SocialSpiException("The service " . $requestItem->getService() . " is not implemented", ResponseError::$NOT_IMPLEMENTED); break; } } $handler = $this->handlers[$requestItem->getService()]; return $handler->handleItem($requestItem); }
/** * Delivers a request item to the appropriate DataRequestHandler. */ protected function handleRequestItem(RequestItem $requestItem) { if (!isset($this->handlers[$requestItem->getService()])) { throw new SocialSpiException("The service " . $requestItem->getService() . " is not implemented", ResponseError::$NOT_IMPLEMENTED); } $handler = $this->handlers[$requestItem->getService()]; return $handler->handleItem($requestItem); }