/** * Implementation for 'GET' method for Rest API * * @param mixed $dbsUid, $proUid Primary key * * @return array $result Returns array within multiple records or a single record depending if * a single selection was requested passing id(s) as param */ protected function get($dbsUid = null, $proUid = null) { $result = array(); try { $noArguments = true; $argumentList = func_get_args(); foreach ($argumentList as $arg) { if (!is_null($arg)) { $noArguments = false; } } if ($noArguments) { $criteria = new Criteria('workflow'); $criteria->addSelectColumn(DbSourcePeer::DBS_UID); $criteria->addSelectColumn(DbSourcePeer::PRO_UID); $criteria->addSelectColumn(DbSourcePeer::DBS_TYPE); $criteria->addSelectColumn(DbSourcePeer::DBS_SERVER); $criteria->addSelectColumn(DbSourcePeer::DBS_DATABASE_NAME); $criteria->addSelectColumn(DbSourcePeer::DBS_USERNAME); $criteria->addSelectColumn(DbSourcePeer::DBS_PASSWORD); $criteria->addSelectColumn(DbSourcePeer::DBS_PORT); $criteria->addSelectColumn(DbSourcePeer::DBS_ENCODE); $dataset = AppEventPeer::doSelectRS($criteria); $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); while ($dataset->next()) { $result[] = $dataset->getRow(); } } else { $record = DbSourcePeer::retrieveByPK($dbsUid, $proUid); if ($record) { $result = $record->toArray(BasePeer::TYPE_FIELDNAME); } else { $paramValues = ""; foreach ($argumentList as $arg) { $paramValues .= strlen($paramValues) ? ', ' : ''; if (!is_null($arg)) { $paramValues .= "{$arg}"; } else { $paramValues .= "NULL"; } } throw new RestException(417, "table DbSource ({$paramValues})"); } } } catch (RestException $e) { throw new RestException($e->getCode(), $e->getMessage()); } catch (Exception $e) { throw new RestException(412, $e->getMessage()); } return $result; }
public function load($Uid, $ProUID = '') { try { $oRow = DbSourcePeer::retrieveByPK($Uid, $ProUID); if (!is_null($oRow)) { $aFields = $oRow->toArray(BasePeer::TYPE_FIELDNAME); $this->fromArray($aFields, BasePeer::TYPE_FIELDNAME); $aFields['DBS_DESCRIPTION'] = $this->getDBSourceDescription(); $this->setNew(false); return $aFields; } else { throw new Exception("The row '{$Uid}'/'{$ProUID}' in table DbSource doesn't exist!"); } } catch (exception $oError) { throw $oError; } }
/** * Update Variable * * @param string $processUid Unique id of Process * @param string $variableUid Unique id of Variable * @param array $arrayData Data * * return array Return data of the Variable updated */ public function update($processUid, $variableUid, $arrayData) { try { //Verify data Validator::proUid($processUid, '$prj_uid'); $arrayData = array_change_key_case($arrayData, CASE_UPPER); $this->throwExceptionFieldDefinition($arrayData); //Update $cnn = \Propel::getConnection("workflow"); try { $variable = \ProcessVariablesPeer::retrieveByPK($variableUid); $dbConnection = \DbSourcePeer::retrieveByPK($variable->getVarDbconnection(), $variable->getPrjUid()); $oldVariable = array("VAR_UID" => $variable->getVarUid(), "VAR_NAME" => $variable->getVarName(), "VAR_FIELD_TYPE" => $variable->getVarFieldType(), "VAR_DBCONNECTION" => $variable->getVarDbconnection(), "VAR_DBCONNECTION_LABEL" => $dbConnection !== null ? '[' . $dbConnection->getDbsServer() . ':' . $dbConnection->getDbsPort() . '] ' . $dbConnection->getDbsType() . ': ' . $dbConnection->getDbsDatabaseName() : 'PM Database', "VAR_SQL" => $variable->getVarSql(), "VAR_ACCEPTED_VALUES" => $variable->getVarAcceptedValues()); if ($variable->validate()) { $cnn->begin(); if (isset($arrayData["VAR_NAME"])) { $this->existsName($processUid, $arrayData["VAR_NAME"], $variableUid); $variable->setVarName($arrayData["VAR_NAME"]); } if (isset($arrayData["VAR_FIELD_TYPE"])) { $variable->setVarFieldType($arrayData["VAR_FIELD_TYPE"]); } if (isset($arrayData["VAR_FIELD_SIZE"])) { $variable->setVarFieldSize($arrayData["VAR_FIELD_SIZE"]); } if (isset($arrayData["VAR_LABEL"])) { $variable->setVarLabel($arrayData["VAR_LABEL"]); } if (isset($arrayData["VAR_DBCONNECTION"])) { $variable->setVarDbconnection($arrayData["VAR_DBCONNECTION"]); } if (isset($arrayData["VAR_SQL"])) { $variable->setVarSql($arrayData["VAR_SQL"]); } if (isset($arrayData["VAR_NULL"])) { $variable->setVarNull($arrayData["VAR_NULL"]); } if (isset($arrayData["VAR_DEFAULT"])) { $variable->setVarDefault($arrayData["VAR_DEFAULT"]); } if (isset($arrayData["VAR_ACCEPTED_VALUES"])) { $encodeAcceptedValues = \G::json_encode($arrayData["VAR_ACCEPTED_VALUES"]); $variable->setVarAcceptedValues($encodeAcceptedValues); } if (isset($arrayData["INP_DOC_UID"])) { $variable->setInpDocUid($arrayData["INP_DOC_UID"]); } $variable->save(); $cnn->commit(); //update dynaforms $dbConnection = \DbSourcePeer::retrieveByPK($variable->getVarDbconnection(), $variable->getPrjUid()); $newVariable = array("VAR_UID" => $variable->getVarUid(), "VAR_NAME" => $variable->getVarName(), "VAR_FIELD_TYPE" => $variable->getVarFieldType(), "VAR_DBCONNECTION" => $variable->getVarDbconnection(), "VAR_DBCONNECTION_LABEL" => $dbConnection !== null ? '[' . $dbConnection->getDbsServer() . ':' . $dbConnection->getDbsPort() . '] ' . $dbConnection->getDbsType() . ': ' . $dbConnection->getDbsDatabaseName() : 'PM Database', "VAR_SQL" => $variable->getVarSql(), "VAR_ACCEPTED_VALUES" => $variable->getVarAcceptedValues()); \G::LoadClass('pmDynaform'); $pmDynaform = new \pmDynaform(); $pmDynaform->synchronizeVariable($processUid, $newVariable, $oldVariable); } else { $msg = ""; foreach ($variable->getValidationFailures() as $validationFailure) { $msg = $msg . ($msg != "" ? "\n" : "") . $validationFailure->getMessage(); } throw new \Exception(\G::LoadTranslation("ID_RECORD_CANNOT_BE_CREATED") . "\n" . $msg); } } catch (\Exception $e) { $cnn->rollback(); throw $e; } } catch (\Exception $e) { throw $e; } }