serviceFactory = $serviceFactory; $this->config = $config; } public function actionList($params, $data, $request) { $scope = $params['scope']; $id = isset($params['id']) ? $params['id'] : null; $offset = intval($request->get('offset')); $maxSize = intval($request->get('maxSize')); $after = $request->get('after'); $filter = $request->get('filter'); $skipOwn = $request->get('skipOwn') === 'true'; $maxSizeLimit = $this->config->get('recordListMaxSizeLimit', self::MAX_SIZE_LIMIT); if (empty($maxSize)) { $maxSize = $maxSizeLimit; } if (!empty($maxSize) && $maxSize > $maxSizeLimit) { throw new Forbidden("Max size should should not exceed " . $maxSizeLimit . ". Use offset and limit."); } $result = $this->serviceFactory->create('Stream')->find($scope, $id, [ 'offset' => $offset, 'maxSize' => $maxSize, 'after' => $after, 'filter' => $filter, 'skipOwn' => $skipOwn, ]); return (object) [ 'total' => $result->total, 'list' => $result->collection->getValueMapList() ]; } public function getActionListPosts($params, $data, $request) { $scope = $params['scope']; $id = isset($params['id']) ? $params['id'] : null; $offset = intval($request->get('offset')); $maxSize = intval($request->get('maxSize')); $after = $request->get('after'); $where = $request->get('where'); $maxSizeLimit = $this->config->get('recordListMaxSizeLimit', self::MAX_SIZE_LIMIT); if (empty($maxSize)) { $maxSize = $maxSizeLimit; } if (!empty($maxSize) && $maxSize > $maxSizeLimit) { throw new Forbidden("Max size should should not exceed " . $maxSizeLimit . ". Use offset and limit."); } $result = $this->serviceFactory->create('Stream')->find($scope, $id, [ 'offset' => $offset, 'maxSize' => $maxSize, 'after' => $after, 'filter' => 'posts', 'where' => $where, ]); return (object) [ 'total' => $result->total, 'list' => $result->collection->getValueMapList() ]; } }