/** * 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()); } }
public function getUsedFieldsWithDefaultValue(Tracker $tracker, array $fields_data, PFUser $user) { $fields_data = $this->formelement_factory->getUsedFieldsWithDefaultValue($tracker, $fields_data, $user); return $fields_data; }