acl->check('Activities')) { throw new Forbidden(); } $parentType = $request->getRouteParam('parentType'); $id = $request->getRouteParam('id'); $type = $request->getRouteParam('type'); if ( !$parentType || !$id || !in_array($type, ['activities', 'history']) ) { throw new BadRequest(); } $searchParams = $this->searchParamsFetcher->fetch($request); $offset = $searchParams->getOffset(); $maxSize = $searchParams->getMaxSize(); $targetEntityType = $request->getQueryParam('entityType'); $fetchParams = new ActivitiesFetchParams($maxSize, $offset, $targetEntityType); $recordCollection = $type === 'history' ? $this->service->getHistory($parentType, $id, $fetchParams) : $this->service->getActivities($parentType, $id, $fetchParams); return ResponseComposer::json([ 'total' => $recordCollection->getTotal(), 'list' => $recordCollection->getValueMapList(), ]); } }