Example #1
0
 /**
  * @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;
 }