Ejemplo n.º 1
0
 /**
  * addArtifact - add an artifact in tracker $tracker_id of the project $group_id with given values
  *
  * @param string $session_key the session hash associated with the session opened by the person who calls the service
  * @param int    $group_id   the ID of the group we want to add the artifact
  * @param int    $tracker_id the ID of the tracker we want to add the artifact
  * @param array  $value      The fields values of the artifact (array of {SOAPArtifactFieldValue})
  *
  * @return int the ID of the new created artifact,
  *              or a soap fault if :
  *              - group_id does not match with a valid project,
  *              - tracker_name does not match with a valid tracker,
  *              - the user does not have the permissions to submit an artifact
  *              - the given values are breaking a field dependency rule
  *              - the artifact creation failed.
  */
 public function addArtifact($session_key, $group_id, $tracker_id, $value)
 {
     try {
         $user = $this->soap_request_validator->continueSession($session_key);
         $tracker = $this->getTrackerById($group_id, $tracker_id, 'addArtifact');
         $this->checkUserCanCreateArtifact($tracker, $user);
         $fields_data = $this->getArtifactDataFromSoapRequest($tracker, $value);
         $fields_data = $this->formelement_factory->getUsedFieldsWithDefaultValue($tracker, $fields_data, $user);
         if ($artifact = $this->artifact_factory->createArtifact($tracker, $fields_data, $user, null)) {
             return $artifact->getId();
         } else {
             if ($GLOBALS['Response']->feedbackHasErrors()) {
                 return new SoapFault(update_artifact_fault, $GLOBALS['Response']->getRawFeedback(), 'addArtifact');
             } else {
                 return new SoapFault(update_artifact_fault, 'Unknown error', 'addArtifact');
             }
         }
     } catch (Exception $e) {
         return new SoapFault((string) $e->getCode(), $e->getMessage());
     }
 }
Ejemplo n.º 2
0
 public function getUsedFieldsWithDefaultValue(Tracker $tracker, array $fields_data, PFUser $user)
 {
     $fields_data = $this->formelement_factory->getUsedFieldsWithDefaultValue($tracker, $fields_data, $user);
     return $fields_data;
 }