/workflow/engine/services/rest/crud/Process.php

https://bitbucket.org/ferOnti/processmaker · PHP · 210 lines · 160 code · 18 blank · 32 comment · 9 complexity · 1755416c3e54816397d09a94075dc482 MD5 · raw file

  1. <?php
  2. class Services_Rest_Process
  3. {
  4. /**
  5. * Implementation for 'GET' method for Rest API
  6. *
  7. * @param mixed $proUid Primary key
  8. *
  9. * @return array $result Returns array within multiple records or a single record depending if
  10. * a single selection was requested passing id(s) as param
  11. */
  12. protected function get($proUid=null)
  13. {
  14. $result = array();
  15. try {
  16. $noArguments = true;
  17. $argumentList = func_get_args();
  18. foreach ($argumentList as $arg) {
  19. if (!is_null($arg)) {
  20. $noArguments = false;
  21. }
  22. }
  23. if ($noArguments) {
  24. $criteria = new Criteria('workflow');
  25. $criteria->addSelectColumn(ProcessPeer::PRO_UID);
  26. $criteria->addSelectColumn(ProcessPeer::PRO_PARENT);
  27. $criteria->addSelectColumn(ProcessPeer::PRO_TIME);
  28. $criteria->addSelectColumn(ProcessPeer::PRO_TIMEUNIT);
  29. $criteria->addSelectColumn(ProcessPeer::PRO_STATUS);
  30. $criteria->addSelectColumn(ProcessPeer::PRO_TYPE_DAY);
  31. $criteria->addSelectColumn(ProcessPeer::PRO_TYPE);
  32. $criteria->addSelectColumn(ProcessPeer::PRO_ASSIGNMENT);
  33. $criteria->addSelectColumn(ProcessPeer::PRO_SHOW_MAP);
  34. $criteria->addSelectColumn(ProcessPeer::PRO_SHOW_MESSAGE);
  35. $criteria->addSelectColumn(ProcessPeer::PRO_SUBPROCESS);
  36. $criteria->addSelectColumn(ProcessPeer::PRO_TRI_DELETED);
  37. $criteria->addSelectColumn(ProcessPeer::PRO_TRI_CANCELED);
  38. $criteria->addSelectColumn(ProcessPeer::PRO_TRI_PAUSED);
  39. $criteria->addSelectColumn(ProcessPeer::PRO_TRI_REASSIGNED);
  40. $criteria->addSelectColumn(ProcessPeer::PRO_SHOW_DELEGATE);
  41. $criteria->addSelectColumn(ProcessPeer::PRO_SHOW_DYNAFORM);
  42. $criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
  43. $criteria->addSelectColumn(ProcessPeer::PRO_SUB_CATEGORY);
  44. $criteria->addSelectColumn(ProcessPeer::PRO_INDUSTRY);
  45. $criteria->addSelectColumn(ProcessPeer::PRO_UPDATE_DATE);
  46. $criteria->addSelectColumn(ProcessPeer::PRO_CREATE_DATE);
  47. $criteria->addSelectColumn(ProcessPeer::PRO_CREATE_USER);
  48. $criteria->addSelectColumn(ProcessPeer::PRO_HEIGHT);
  49. $criteria->addSelectColumn(ProcessPeer::PRO_WIDTH);
  50. $criteria->addSelectColumn(ProcessPeer::PRO_TITLE_X);
  51. $criteria->addSelectColumn(ProcessPeer::PRO_TITLE_Y);
  52. $criteria->addSelectColumn(ProcessPeer::PRO_DEBUG);
  53. $criteria->addSelectColumn(ProcessPeer::PRO_DYNAFORMS);
  54. $criteria->addSelectColumn(ProcessPeer::PRO_DERIVATION_SCREEN_TPL);
  55. $dataset = AppEventPeer::doSelectRS($criteria);
  56. $dataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
  57. while ($dataset->next()) {
  58. $result[] = $dataset->getRow();
  59. }
  60. } else {
  61. $record = ProcessPeer::retrieveByPK($proUid);
  62. if ($record) {
  63. $result = $record->toArray(BasePeer::TYPE_FIELDNAME);
  64. } else {
  65. $paramValues = "";
  66. foreach ($argumentList as $arg) {
  67. $paramValues .= (strlen($paramValues) ) ? ', ' : '';
  68. if (!is_null($arg)) {
  69. $paramValues .= "$arg";
  70. } else {
  71. $paramValues .= "NULL";
  72. }
  73. }
  74. throw new RestException(417, "table Process ($paramValues)" );
  75. }
  76. }
  77. } catch (RestException $e) {
  78. throw new RestException($e->getCode(), $e->getMessage());
  79. } catch (Exception $e) {
  80. throw new RestException(412, $e->getMessage());
  81. }
  82. return $result;
  83. }
  84. /**
  85. * Implementation for 'POST' method for Rest API
  86. *
  87. * @param mixed $proUid Primary key
  88. *
  89. * @return array $result Returns array within multiple records or a single record depending if
  90. * a single selection was requested passing id(s) as param
  91. */
  92. protected function post($proUid, $proParent, $proTime, $proTimeunit, $proStatus, $proTypeDay, $proType, $proAssignment, $proShowMap, $proShowMessage, $proShowDelegate, $proShowDynaform, $proCategory, $proSubCategory, $proIndustry, $proUpdateDate, $proCreateDate, $proCreateUser, $proHeight, $proWidth, $proTitleX, $proTitleY, $proDebug, $proDynaforms, $proDerivationScreenTpl)
  93. {
  94. try {
  95. $result = array();
  96. $obj = new Process();
  97. $obj->setProUid($proUid);
  98. $obj->setProParent($proParent);
  99. $obj->setProTime($proTime);
  100. $obj->setProTimeunit($proTimeunit);
  101. $obj->setProStatus($proStatus);
  102. $obj->setProTypeDay($proTypeDay);
  103. $obj->setProType($proType);
  104. $obj->setProAssignment($proAssignment);
  105. $obj->setProShowMap($proShowMap);
  106. $obj->setProShowMessage($proShowMessage);
  107. $obj->setProShowDelegate($proShowDelegate);
  108. $obj->setProShowDynaform($proShowDynaform);
  109. $obj->setProCategory($proCategory);
  110. $obj->setProSubCategory($proSubCategory);
  111. $obj->setProIndustry($proIndustry);
  112. $obj->setProUpdateDate($proUpdateDate);
  113. $obj->setProCreateDate($proCreateDate);
  114. $obj->setProCreateUser($proCreateUser);
  115. $obj->setProHeight($proHeight);
  116. $obj->setProWidth($proWidth);
  117. $obj->setProTitleX($proTitleX);
  118. $obj->setProTitleY($proTitleY);
  119. $obj->setProDebug($proDebug);
  120. $obj->setProDynaforms($proDynaforms);
  121. $obj->setProDerivationScreenTpl($proDerivationScreenTpl);
  122. $obj->save();
  123. } catch (Exception $e) {
  124. throw new RestException(412, $e->getMessage());
  125. }
  126. }
  127. /**
  128. * Implementation for 'PUT' method for Rest API
  129. *
  130. * @param mixed $proUid Primary key
  131. *
  132. * @return array $result Returns array within multiple records or a single record depending if
  133. * a single selection was requested passing id(s) as param
  134. */
  135. protected function put($proUid, $proParent, $proTime, $proTimeunit, $proStatus, $proTypeDay, $proType, $proAssignment, $proShowMap, $proShowMessage, $proShowDelegate, $proShowDynaform, $proCategory, $proSubCategory, $proIndustry, $proUpdateDate, $proCreateDate, $proCreateUser, $proHeight, $proWidth, $proTitleX, $proTitleY, $proDebug, $proDynaforms, $proDerivationScreenTpl)
  136. {
  137. try {
  138. $obj = ProcessPeer::retrieveByPK($proUid);
  139. $obj->setProParent($proParent);
  140. $obj->setProTime($proTime);
  141. $obj->setProTimeunit($proTimeunit);
  142. $obj->setProStatus($proStatus);
  143. $obj->setProTypeDay($proTypeDay);
  144. $obj->setProType($proType);
  145. $obj->setProAssignment($proAssignment);
  146. $obj->setProShowMap($proShowMap);
  147. $obj->setProShowMessage($proShowMessage);
  148. $obj->setProShowDelegate($proShowDelegate);
  149. $obj->setProShowDynaform($proShowDynaform);
  150. $obj->setProCategory($proCategory);
  151. $obj->setProSubCategory($proSubCategory);
  152. $obj->setProIndustry($proIndustry);
  153. $obj->setProUpdateDate($proUpdateDate);
  154. $obj->setProCreateDate($proCreateDate);
  155. $obj->setProCreateUser($proCreateUser);
  156. $obj->setProHeight($proHeight);
  157. $obj->setProWidth($proWidth);
  158. $obj->setProTitleX($proTitleX);
  159. $obj->setProTitleY($proTitleY);
  160. $obj->setProDebug($proDebug);
  161. $obj->setProDynaforms($proDynaforms);
  162. $obj->setProDerivationScreenTpl($proDerivationScreenTpl);
  163. $obj->save();
  164. } catch (Exception $e) {
  165. throw new RestException(412, $e->getMessage());
  166. }
  167. }
  168. /**
  169. * Implementation for 'DELETE' method for Rest API
  170. *
  171. * @param mixed $proUid Primary key
  172. *
  173. * @return array $result Returns array within multiple records or a single record depending if
  174. * a single selection was requested passing id(s) as param
  175. */
  176. protected function delete($proUid)
  177. {
  178. $conn = Propel::getConnection(ProcessPeer::DATABASE_NAME);
  179. try {
  180. $conn->begin();
  181. $obj = ProcessPeer::retrieveByPK($proUid);
  182. if (! is_object($obj)) {
  183. throw new RestException(412, 'Record does not exist.');
  184. }
  185. $obj->delete();
  186. $conn->commit();
  187. } catch (Exception $e) {
  188. $conn->rollback();
  189. throw new RestException(412, $e->getMessage());
  190. }
  191. }
  192. }