story = $story; $this->serializer = $serializer; $this->stack = $stack; $this->userQuery = $userQuery; } /** * @param $view */ public function execute(string $scenario, $view, int $objectId, string $className, int $version): void { $token = $this->stack->getCurrentRequest()->headers->get('x-auth-token'); $userId = $token ? $this->userQuery->getUserFromToken($token) : 0; $value = $this->serializer->normalize($view); $traceView = new TraceView( $scenario, $objectId, $userId, 'project', $className, json_encode($value), $version ); $this->story->handle($traceView); } /** * Update all story execute calls */ public function executeMultiple(string $scenario, array $views, string $className, ?int $version = null, bool $byPassToken = false): void { $token = $this->stack->getCurrentRequest()->headers->get('x-auth-token'); $userId = $token ? $this->userQuery->getUserFromToken($token) : 0; $traceViews = []; foreach ($views as $view) { if (isset($view["idTmpToRemove"])) { $objectId = $view["idTmpToRemove"]; unset($view["idTmpToRemove"]); } else { $objectId = $view["id"]; } $value = $this->serializer->normalize($view); $traceViews[] = new TraceView( $scenario, $objectId, $userId, 'project', $className, json_encode($value), $version ); } $multipleTraceview = new MultipleTraceView( $traceViews ); $this->story->handleMultiple($multipleTraceview); } }