service = $service; $this->searchParamsFetcher = $searchParamsFetcher; } /** * @throws BadRequest * @throws Forbidden * @throws NotFound */ public function getActionList(Request $request): stdClass { $id = $request->getRouteParam('id'); $scope = $request->getRouteParam('scope'); if ($scope === null) { throw new BadRequest(); } if ($id === null && $scope !== UserEntity::ENTITY_TYPE) { throw new BadRequest("No ID."); } $searchParams = $this->searchParamsFetcher->fetch($request); $after = $request->getQueryParam('after'); $filter = $request->getQueryParam('filter'); $skipOwn = $request->getQueryParam('skipOwn') === 'true'; /** @todo Use named params. */ $findParams = new FindParams( $searchParams, $skipOwn, $after ? DateTime::fromString($after) : null, $filter ); $result = $scope === UserEntity::ENTITY_TYPE ? $this->service->findUserStream($id, $findParams) : $this->service->find($scope, $id ?? '', $findParams); return (object) [ 'total' => $result->getTotal(), 'list' => $result->getValueMapList(), ]; } /** * @throws BadRequest * @throws Forbidden * @throws NotFound */ public function getActionListPosts(Request $request): stdClass { $id = $request->getRouteParam('id'); $scope = $request->getRouteParam('scope'); if ($scope === null) { throw new BadRequest(); } if ($id === null && $scope !== UserEntity::ENTITY_TYPE) { throw new BadRequest("No ID."); } $after = $request->getQueryParam('after'); $searchParams = $this->searchParamsFetcher->fetch($request); /** @todo Use named params. */ $findParams = new FindParams( $searchParams, false, $after ? DateTime::fromString($after) : null, FindParams::FILTER_POSTS ); $result = $scope === UserEntity::ENTITY_TYPE ? $this->service->findUserStream($id, $findParams) : $this->service->find($scope, $id ?? '', $findParams); return (object) [ 'total' => $result->getTotal(), 'list' => $result->getValueMapList(), ]; } }