Example #1
0
File: Service.php Project: ephp/ws
 /**
  * ORM\PrePersist()
  * ORM\PreUpdate()
  */
 public function populate()
 {
     $i = 0;
     $fieldsCollection = new \Doctrine\Common\Collections\ArrayCollection();
     $outFieldsCollection = new \Doctrine\Common\Collections\ArrayCollection();
     $fields = array();
     $out_fields = array();
     preg_match_all('/%[a-z_.\\-]+%/', $this->getUri(), $find1);
     $fields = array_merge($fields, $find1[0]);
     preg_match_all('/%[a-z_.\\-]+%/', $this->getHeader(), $find2);
     $fields = array_merge($fields, $find2[0]);
     preg_match_all('/%[a-z_.\\-]+%/', $this->getExample(), $find3);
     $fields = array_merge($fields, $find3[0]);
     if (count($fields) > 0) {
         foreach ($fields as $field_name) {
             $field = new Field();
             $field->setService($this);
             $field->setOrderField($i++);
             $field->setField($field_name);
             if (isset($this->_input[$field_name])) {
                 $field->setRequired($this->_input[$field_name]->getRequired());
                 $field->setDescription($this->_input[$field_name]->getDescription());
             } else {
                 if ($field_name == '%token%') {
                     $field->setRequired('SI');
                     $field->setDescription("Token restituito dall'autenticazione");
                 }
             }
             $fieldsCollection->add($field);
         }
         $this->setFields($fieldsCollection);
     }
     preg_match_all('/%[a-z_.\\-]+%/', $this->getOutput(), $find4);
     $out_fields = array_merge($out_fields, $find4[0]);
     if (count($out_fields) > 0) {
         foreach ($out_fields as $field_name) {
             $field = new OutField();
             $field->setField($field_name);
             $field->setService($this);
             $field->setOrderField($i++);
             if (isset($this->_output[$field_name])) {
                 $field->setRequired($this->_output[$field_name]->getRequired());
                 $field->setDescription($this->_output[$field_name]->getDescription());
             } else {
                 if ($field_name == '%token%') {
                     $field->setRequired('SI');
                     $field->setDescription("Token restituito dall'autenticazione da usare nell'header nelle chiamate future");
                 }
             }
             $outFieldsCollection->add($field);
         }
         $this->setOutFields($outFieldsCollection);
     }
     preg_match_all('/<\\/[a-z_.\\-]+>[^<]+[.]{3}/', $this->getOutput(), $find5);
     $out_fields = $find5[0];
     if (count($out_fields) > 0) {
         foreach ($out_fields as $field_name) {
             $field_name = trim(str_replace(array('/', '...'), array('', ''), $field_name));
             $field = new OutField();
             $field->setField($field_name);
             $field->setService($this);
             $field->setOrderField($i++);
             if (isset($this->_output[$field_name])) {
                 $field->setRequired($this->_output[$field_name]->getRequired());
                 $field->setDescription($this->_output[$field_name]->getDescription());
             } else {
                 $field->setRequired('Ripetibile');
                 $field->setDescription("il tag {$field_name} si può ripetere");
             }
             $outFieldsCollection->add($field);
         }
         $this->setOutFields($outFieldsCollection);
     }
 }