/** * @param array $datas * @param EntityAbstract $element * @return mixed|UserEntity */ protected function fromApiToEntitySingle($datas = [], &$element = null) { $datas = parent::prepareData($datas); $entity = $element instanceof UserEntity ? $element : new UserEntity(); $entity->setId($this->get($datas, 'id')); $entity->setFirstname($this->get($datas, 'first_name')); $entity->setLastname($this->get($datas, 'last_name')); $entity->setFullname($this->get($datas, 'full_name')); $entity->setEmail($this->get($datas, 'email')); $entity->setLoginId($this->get($datas, 'login_id')); $entity->setPassword($this->get($datas, 'password')); $entity->setCopySettingsUserId($this->get($datas, 'copy_settings_user_id')); $entity->setWindowsId($this->get($datas, 'windows_id')); $entity->setUseWindowsAuth($this->get($datas, 'use_windows_auth')); $entity->setBuiltInAccount($this->get($datas, 'built_in_account')); $entity->setAdmin($this->get($datas, 'is_admin')); $entity->setUseGravatar($this->get($datas, 'use_gravatar')); $entity->setActive($this->get($datas, 'is_active')); $entity->setLocked($this->get($datas, 'is_locked')); $entity->setFailedLogins($this->get($datas, 'failed_logins')); $entity->setUsingSampleData($this->get($datas, 'is_using_sample_data')); $entity->setUsedSampleData($this->get($datas, 'has_used_sample_data')); $entity->setTeams($this->get($datas, 'teams')); $entity->setSourceControlUserNames($this->get($datas, 'source_control_user_names')); $entity->setLastLoginDateTime(isset($datas['last_login_date_time']) && strlen($datas['last_login_date_time']) > 0 ? new \DateTime($datas['last_login_date_time']) : null); $entity->setCreatedDateTime(isset($datas['created_date_time']) && strlen($datas['created_date_time']) > 0 ? new \DateTime($datas['created_date_time']) : null); $entity->setLastUpdatedDateTime(isset($datas['last_updated_date_time']) && strlen($datas['last_updated_date_time']) > 0 ? new \DateTime($datas['last_updated_date_time']) : null); if (isset($datas['security_roles']) && ($roles = $datas['security_roles'])) { $entity->setSecurityRole(SecurityRole::fromApiToEntity($roles)); } return $entity; }
/** * @param array $datas * @param EntityAbstract $element * @return mixed|CustomerEntity */ protected function fromApiToEntitySingle($datas = [], &$element = null) { $datas = parent::prepareData($datas); $entity = $element instanceof CustomerEntity ? $element : new CustomerEntity(); $entity->setId($this->get($datas, 'id')); $entity->setCompanyName($this->get($datas, 'company_name')); $entity->setCompanyUrl($this->get($datas, 'company_url')); $entity->setContactsCount($this->get($datas, 'contacts_count')); $entity->setNewContactsCount($this->get($datas, 'new_contacts_count')); $entity->setRejectedContactsCount($this->get($datas, 'rejected_contacts_count')); $entity->setApprovedContactsCount($this->get($datas, 'approved_contacts_count')); return $entity; }
/** * @param array $datas * @param EntityAbstract $element * @return mixed|AttachmentEntity */ protected function fromApiToEntitySingle($datas = [], &$element = null) { $datas = isset($datas['data']) ? $datas['data'] : $datas; $entity = $element instanceof AttachmentEntity ? $element : new AttachmentEntity(); $entity->setId($this->get($datas, 'id')); $entity->setFileName($this->get($datas, 'file_name')); $entity->setDescription($this->get($datas, 'description')); $entity->setFileData($this->get($datas, 'file_data')); $entity->setAttachDate($this->get($datas, 'attach_date')); $entity->setDataHash($this->get($datas, 'data_hash')); if (isset($datas['source']) && isset($datas['source']['source_type'])) { $sourceEntity = Item::instanciateItemType($datas['source']['source_type']); $entity->setSource($sourceEntity->getHelper()->fromApiToEntity($datas['source'], $sourceEntity)); } if (isset($datas['created_by']) && isset($datas['created_by']['user_type'])) { /** @var User|Contact $authorEntity */ $authorEntity = PeopleAbstract::instanciatePeopleType($datas['created_by']['user_type']); $entity->setCreatedBy($authorEntity->getHelper()->fromApiToEntity($datas['created_by'], $authorEntity)); } return $entity; }
/** * @param array $datas * @param EntityAbstract $element * @return mixed|ContactEntity */ protected function fromApiToEntitySingle($datas = [], &$element = null) { $datas = parent::prepareData($datas); $entity = $element instanceof ContactEntity ? $element : new ContactEntity(); $entity->setId($this->get($datas, 'id')); $entity->setFirstname($this->get($datas, 'first_name')); $entity->setLastname($this->get($datas, 'last_name')); $entity->setEmail($this->get($datas, 'email')); $entity->setLoginId($this->get($datas, 'login_id')); $entity->setPassword($this->get($datas, 'password')); $entity->setPhone($this->get($datas, 'phone')); $entity->setCanLogin($this->get($datas, 'can_login')); $entity->setStatus($this->get($datas, 'status')); if (isset($datas['portal_security_role']) && ($roles = $datas['portal_security_role'])) { $entity->setSecurityRole(SecurityRole::fromApiToEntity($roles)); } if (isset($datas['customer']) && ($customer = $datas['customer'])) { $entity->setCustomer(Customer::fromApiToEntity($customer)); } if (isset($datas['custom_fields']) && ($fields = $datas['custom_fields'])) { $entity->setCustomFields(CustomField::fromApiToEntity($fields)); } 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; }