/**
  * 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);
 }
예제 #2
0
 /**
  * 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);
 }
예제 #3
0
 /**
  * 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);
 }