getMethod()); $method = 'handle' . ucfirst($method); $response = $this->$method($requestItem); } catch (SocialSpiException $e) { $response = new ResponseItem($e->getCode(), $e->getMessage()); } catch (Exception $e) { $response = new ResponseItem(ResponseError::$INTERNAL_ERROR, "Internal error: " . $e->getMessage()); } return $response; } public function handleDelete(RequestItem $request) { throw new SocialSpiException("Http delete not allowed for invalidation service", ResponseError::$BAD_REQUEST); } public function handlePut(RequestItem $request) { throw new SocialSpiException("Http put not allowed for invalidation service", ResponseError::$BAD_REQUEST); } public function handlePost(RequestItem $request) { throw new SocialSpiException("Http put not allowed for invalidation service", ResponseError::$BAD_REQUEST); } public function handleGet(RequestItem $request) { return $this->handleListMethods($request); } public function handleListMethods(RequestItem $request) { $containerConfig = new ContainerConfig(Config::get('container_path')); $gadgetConfig = $containerConfig->getConfig('default', 'gadgets.features'); if (! isset($gadgetConfig['osapi.services']) || count($gadgetConfig['osapi.services']) == 1) { // this should really be set in config/container.js, but if not, we build a complete default set so at least most of it works out-of-the-box $gadgetConfig['osapi.services'] = array( 'gadgets.rpc' => array('container.listMethods'), 'http://%host%/social/rpc' => array("messages.update", "albums.update", "activities.delete", "activities.update", "activities.supportedFields", "albums.get", "activities.get", "mediaitems.update", "messages.get", "appdata.get", "system.listMethods", "people.supportedFields", "messages.create", "mediaitems.delete", "mediaitems.create", "people.get", "people.create", "albums.delete", "messages.delete", "appdata.update", "activities.create", "mediaitems.get", "albums.create", "appdata.delete", "people.update", "appdata.create"), 'http://%host%/gadgets/api/rpc' => array('cache.invalidate')); } return $gadgetConfig['osapi.services']; } }