/** * @param array $datas * @param EntityAbstract $element * @return mixed|ReleaseEntity */ protected function fromApiToEntitySingle($datas = [], &$element = null) { $datas = parent::prepareData($datas); $entity = $element instanceof ReleaseEntity ? $element : new ReleaseEntity(); $entity->setId($this->get($datas, 'id')); $entity->setName($this->get($datas, 'name')); $entity->setCanModify($this->get($datas, 'can_modify')); $entity->setIsActive($this->get($datas, 'is_active')); $entity->setReleaseNotes($this->get($datas, 'release_notes')); $entity->setReleaseType(isset($datas['release_type']) ? self::typeFromApiToEntitySingle($datas['release_type']) : null); $entity->setStatus(isset($datas['status']) ? self::statusFromApiToEntitySingle($datas['status']) : null); if (isset($datas['capacity']) && ($capacity = $datas['capacity'])) { $capacityEntity = new ReleaseCapacity(); $capacityEntity->setUnit(Item::durationUnitFromApiToEntitySingle($capacity['time_unit'])); $capacityEntity->setDuration($capacity['duration']); $entity->setCapacity($capacity); } $entity->setStartDate(isset($datas['start_date']) && null !== $datas['start_date'] ? new \DateTime($datas['start_date']) : null); $entity->setDueDate(isset($datas['due_date']) && null !== $datas['due_date'] ? new \DateTime($datas['due_date']) : null); $entity->setVelocityDueDate(isset($datas['velocity_start_date']) && null !== $datas['velocity_start_date'] ? new \DateTime($datas['velocity_start_date']) : null); if (isset($datas['parent'])) { $parent = $this->fromApiToEntitySingle($datas['parent']); $entity->setParent($parent); } if (isset($datas['children'])) { foreach ($datas['children'] as $child) { $child = $this->fromApiToEntitySingle($child); $entity->addChild($child); } } return $entity; }
/** * @param array $datas * @param EntityAbstract $element * @return mixed|SecurityRoleEntity */ protected function fromApiToEntitySingle($datas = [], &$element = null) { $datas = parent::prepareData($datas); $entity = $element instanceof SecurityRoleEntity ? $element : new SecurityRoleEntity(); $entity->setId($this->get($datas, 'id')); $entity->setName($this->get($datas, 'name')); return $entity; }
/** * @param array $datas * @param EntityAbstract $element * @return mixed|ProjectEntity */ protected function fromApiToEntitySingle($datas = [], &$element = null) { $datas = parent::prepareData($datas); $entity = $element instanceof ProjectEntity ? $element : new ProjectEntity(); $entity->setId($this->get($datas, 'id')); $entity->setName($this->get($datas, 'name')); $entity->setIsActive($this->get($datas, 'is_active')); $entity->setDescription($this->get($datas, 'description')); $entity->setStartDate(isset($datas['start_date']) && null !== $datas['start_date'] ? new \DateTime($datas['start_date']) : null); $entity->setDueDate(isset($datas['due_date']) && null !== $datas['due_date'] ? new \DateTime($datas['due_date']) : null); if (isset($datas['parent'])) { $parent = $this->fromApiToEntitySingle($datas['parent']); $entity->setProjectParent($parent); } if (isset($datas['children'])) { foreach ($datas['children'] as $child) { $child = $this->fromApiToEntitySingle($child); $entity->addChild($child); } } return $entity; }
/** * @param array $datas * @param EntityAbstract $element * @return mixed|void */ protected function fromApiToEntitySingle($datas = [], &$element = null) { $datas = parent::prepareData($datas); $entity = $element instanceof ItemAbstract ? $element : self::instanciateItemType($this->get($datas, 'item_type')); $entity->setId($this->get($datas, 'id')); $entity->setNumber($this->get($datas, 'number')); $entity->setName($this->get($datas, 'name')); $entity->setDescription($this->get($datas, 'description')); $entity->setNotes($this->get($datas, 'notes')); $entity->setHasWorkLogs($this->get($datas, 'has_work_logs')); $entity->setHasAttachments($this->get($datas, 'has_attachments')); $entity->setHasNotifications($this->get($datas, 'has_notifications')); $entity->setHasRelatedItems($this->get($datas, 'has_related_items')); $entity->setHasEmails($this->get($datas, 'has_emails')); $entity->setHasCommits($this->get($datas, 'has_commits')); $entity->setHasZendeskTickets($this->get($datas, 'has_zendesk_tickets')); $entity->setIsRanked($this->get($datas, 'is_ranked')); $entity->setArchived($this->get($datas, 'archived')); $entity->setPubliclyViewable($this->get($datas, 'publicly_viewable')); $entity->setRank($this->get($datas, 'rank')); $entity->setItemType($this->get($datas, 'item_type')); $entity->setHasNotifications($this->get($datas, 'has_notifications')); $entity->setSubitemType($this->get($datas, 'subitem_type')); $entity->setResolution($this->get($datas, 'resolution')); $entity->setPercentComplete($this->get($datas, 'percent_complete')); $entity->setBuildNumber($this->get($datas, 'build_number')); $entity->setBuildNumberOfFix($this->get($datas, 'build_number_of_fix')); $entity->setVote(isset($datas['vote']) ? self::voteFromApiToEntitySingle($datas['vote']) : null); if (isset($datas['parent'])) { $parent = self::instanciateItemType($this->get($datas, 'item_type')); $entity->setParent(self::fromApiToEntity($datas['parent'], $parent)); } $entity->setCustomFields(isset($datas['custom_fields']) ? CustomField::fromApiToEntity($datas['custom_fields']) : null); $entity->setReplicationProcedures($this->get($datas, 'replication_procedures')); // Dates $entity->setReportedDate(isset($datas['reported_date']) && null !== $datas['reported_date'] ? new \DateTime($datas['reported_date']) : null); $entity->setCompletionDate(isset($datas['completion_date']) && null !== $datas['completion_date'] ? new \DateTime($datas['completion_date']) : null); $entity->setCreatedDateTime(isset($datas['created_date_time']) && null !== $datas['created_date_time'] ? new \DateTime($datas['created_date_time']) : null); $entity->setLastUpdatedDateTime(isset($datas['last_updated_date_time']) && null !== $datas['last_updated_date_time'] ? new \DateTime($datas['last_updated_date_time']) : null); $entity->setDueDate(isset($datas['due_date']) && null !== $datas['due_date'] ? new \DateTime($datas['due_date']) : null); // Subitems if (isset($datas['subitems'])) { if (isset($datas['subitems']['count']) && $datas['subitems']['count'] > 0) { } } // Project $entity->setProject(isset($datas['project']) ? Project::fromApiToEntity($datas['project']) : null); $entity->setParentProject(isset($datas['project_parent']) ? Project::fromApiToEntity($datas['project_parent']) : null); // Release $entity->setRelease(isset($datas['release']) ? Release::fromApiToEntity($datas['release']) : null); // Durations $entity->setRemainingDuration(isset($datas['remaining_duration']) ? self::durationFromApiToEntitySingle($datas['remaining_duration']) : null); $entity->setActualDuration(isset($datas['actual_duration']) ? self::durationFromApiToEntitySingle($datas['actual_duration']) : null); $entity->setEstimatedDuration(isset($datas['estimated_duration']) ? self::durationFromApiToEntitySingle($datas['estimated_duration']) : null); // User, contacts and customer $entity->setReportedBy(isset($datas['reported_by']) ? User::fromApiToEntity($datas['reported_by']) : null); $entity->setCreatedBy(isset($datas['created_by']) ? User::fromApiToEntity($datas['created_by']) : null); $entity->setLastUpdatedBy(isset($datas['last_updated_by']) ? User::fromApiToEntity($datas['last_updated_by']) : null); if (isset($datas['assigned_to']) && $datas['assigned_to']['type']) { $assignedTo = PeopleAbstract::instanciatePeopleType($datas['assigned_to']['type']); $entity->setCreatedBy($assignedTo->getHelper()->fromApiToEntity($datas['assigned_to'])); } $entity->setReportedByCustomerContact(isset($datas['reported_by_customer_contact']) ? Contact::fromApiToEntity($datas['reported_by_customer_contact']) : null); $entity->setCustomer(isset($datas['customer']) ? Customer::fromApiToEntity($datas['customer']) : null); // Item options type $entity->setPriority(isset($datas['priority']) ? self::priorityFromApiToEntitySingle($datas['priority']) : null); $entity->setStatus(isset($datas['status']) ? self::statusFromApiToEntitySingle($datas['status']) : null); $entity->setSeverity(isset($datas['severity']) ? self::severityFromApiToEntitySingle($datas['severity']) : null); $entity->setWorkflowStep(isset($datas['workflow_step']) ? self::workflowStepFromApiToEntitySingle($datas['workflow_step']) : null); return $entity; }