/** * {@inheritdoc} * * Transforms a configuration (array) to a job parameters (object). */ public function transform($configuration) { if (null === $configuration) { $configuration = []; } return $this->jobParametersFactory->create($this->job, $configuration); }
/** * {@inheritdoc} */ public function process($item) { $entity = $this->findOrCreateObject($item); try { $this->updater->update($entity, $item); } catch (\InvalidArgumentException $exception) { $this->skipItemWithMessage($item, $exception->getMessage(), $exception); } $violations = $this->validator->validate($entity); if ($violations->count() > 0) { $this->objectDetacher->detach($entity); $this->skipItemWithConstraintViolations($item, $violations); } $rawParameters = $entity->getRawParameters(); if (!empty($rawParameters)) { $job = $this->jobRegistry->get($entity->getJobName()); $parameters = $this->jobParamsFactory->create($job, $rawParameters); $violations = $this->jobParamsValidator->validate($job, $parameters); if ($violations->count() > 0) { $this->objectDetacher->detach($entity); $this->skipItemWithConstraintViolations($item, $violations); } } return $entity; }
/** * @param JobInstance $jobInstance * @param string $field * @param mixed $data */ protected function setData(JobInstance $jobInstance, $field, $data) { switch ($field) { case 'connector': $jobInstance->setConnector($data); break; case 'alias': $jobInstance->setJobName($data); break; case 'label': $jobInstance->setLabel($data); break; case 'type': $jobInstance->setType($data); break; case 'configuration': $job = $this->jobRegistry->get($jobInstance->getJobName()); /** @var JobParameters $jobParameters */ $jobParameters = $this->jobParametersFactory->create($job, $data); $jobInstance->setRawParameters($jobParameters->all()); break; case 'code': $jobInstance->setCode($data); break; } }
/** * Create a jobExecution * * @param JobInstance $jobInstance * @param UserInterface $user * * @return JobExecution */ protected function createJobExecution(JobInstance $jobInstance, UserInterface $user) { $job = $this->jobRegistry->get($jobInstance->getJobName()); $jobParameters = $this->jobParametersFactory->create($job, $jobInstance->getRawParameters()); $jobExecution = $this->jobRepository->createJobExecution($jobInstance, $jobParameters); $jobExecution->setUser($user->getUsername()); $this->jobRepository->updateJobExecution($jobExecution); return $jobExecution; }
/** * @param JobInstance $jobInstance * @param array $validationGroups * * @return ConstraintViolationListInterface */ protected function validateJobInstance(JobInstance $jobInstance, array $validationGroups) { $rawParameters = $jobInstance->getRawParameters(); $job = $this->jobRegistry->get($jobInstance->getJobName()); $jobParameters = $this->jobParametersFactory->create($job, $rawParameters); /** @var ConstraintViolationListInterface $jobParamsViolations */ $jobParamsViolations = $this->jobParametersValidator->validate($job, $jobParameters, $validationGroups); /** @var ConstraintViolationListInterface $jobInstanceViolations */ $jobInstanceViolations = $this->validator->validate($jobInstance, $validationGroups); foreach ($jobInstanceViolations as $violation) { $jobParamsViolations->add($violation); } return $jobParamsViolations; }