Пример #1
0
 /**
  * Update Trigger
  *
  * @param string $libraryName Library name
  * @param string $methodName  Method name
  * @param string $triggerUid  Unique id of Trigger
  * @param array  $arrayData   Data
  *
  * return array Return data of the Trigger updated
  */
 public function update($libraryName, $methodName, $triggerUid, $arrayData)
 {
     try {
         $arrayData = array_change_key_case($arrayData, CASE_UPPER);
         //Verify data
         $this->throwExceptionIfLibraryAndMethodIsInvalidForTrigger($libraryName, $methodName, $triggerUid, $this->arrayFieldNameForException["libraryName"], $this->arrayFieldNameForException["methodName"], $this->arrayFieldNameForException["triggerUid"]);
         //Load Trigger
         $trigger = new \Triggers();
         $arrayTriggerData = $trigger->load($triggerUid);
         $processUid = $arrayTriggerData["PRO_UID"];
         //Verify data
         $process = new \ProcessMaker\BusinessModel\Process();
         $trigger = new \ProcessMaker\BusinessModel\Trigger();
         $process->throwExceptionIfDataNotMetFieldDefinition($arrayData, $this->arrayFieldDefinition, $this->arrayFieldNameForException, false);
         if (isset($arrayData["TRI_PARAMS"])) {
             $arrayParamData = $this->throwExceptionIfDataNotMetTriggerParamsDefinition($libraryName, $methodName, $arrayData, $this->arrayFieldNameForException["libraryName"], $this->arrayFieldNameForException["methodName"], $this->arrayFieldNameForException["triggerParams"]);
         }
         if (isset($arrayData["TRI_TITLE"])) {
             $trigger->throwExceptionIfExistsTitle($processUid, $arrayData["TRI_TITLE"], $this->arrayFieldNameForException["triggerTitle"], $triggerUid);
         }
         //TRI_PARAMS
         if (isset($arrayData["TRI_PARAMS"])) {
             $arrayData["TRI_PARAMS"] = array_change_key_case($arrayData["TRI_PARAMS"], CASE_UPPER);
         }
         //Update
         $trigger = new \Triggers();
         $arrayData["TRI_UID"] = $triggerUid;
         $result = $trigger->update($arrayData);
         if (isset($arrayData["TRI_PARAMS"])) {
             $this->setData($libraryName, $methodName, $triggerUid, $arrayParamData);
         }
         //Return
         unset($arrayData["TRI_UID"]);
         if (!$this->formatFieldNameInUppercase) {
             if (isset($arrayData["TRI_PARAMS"])) {
                 $arrayData["TRI_PARAMS"] = array_change_key_case($arrayData["TRI_PARAMS"], CASE_LOWER);
             }
             $arrayData = array_change_key_case($arrayData, CASE_LOWER);
         }
         return $arrayData;
     } catch (\Exception $e) {
         throw $e;
     }
 }