From 260bcb7e89f504fe43472dfdc211bce0daf9b64f Mon Sep 17 00:00:00 2001 From: Erik Amaru Ortiz Date: Mon, 2 Dec 2013 16:53:08 -0400 Subject: [PATCH] FIX for api.ini parsig file, alias section was updated --- gulliver/system/class.bootstrap.php | 36 ++- workflow/engine/config/schema.xml | 201 +++++++++------- workflow/engine/data/mysql/schema.sql | 226 +++++++++--------- .../src/Services/Api/ProcessMaker/Test.php | 6 +- .../src/Services/Api/ProcessMaker/Test2.php | 4 +- .../src/Services/Api/ProcessMaker/Test3.php | 14 ++ workflow/engine/src/Services/api.ini | 16 +- 7 files changed, 285 insertions(+), 218 deletions(-) create mode 100644 workflow/engine/src/Services/Api/ProcessMaker/Test3.php diff --git a/gulliver/system/class.bootstrap.php b/gulliver/system/class.bootstrap.php index eff6f2397..8144b0009 100644 --- a/gulliver/system/class.bootstrap.php +++ b/gulliver/system/class.bootstrap.php @@ -1116,7 +1116,7 @@ class Bootstrap $apiIniConf = array(); if (file_exists($apiIniFile)) { - $apiIniConf = parse_ini_file($apiIniFile, true); + $apiIniConf = self::parseIniFile($apiIniFile); } // Setting current workspace to Api class @@ -1162,10 +1162,17 @@ class Bootstrap } // adding aliases for Restler + if (array_key_exists('alias', $apiIniConf)) { - foreach ($apiIniConf['alias'] as $alias => $namespace) { - $namespace = '\\' . ltrim($namespace, '\\'); - $rest->addAPIClass($namespace, $alias); + //print_r($apiIniConf['alias']); die; + foreach ($apiIniConf['alias'] as $alias => $aliasData) { + if (is_array($aliasData)) { + foreach ($aliasData as $label => $namespace) { + $namespace = '\\' . ltrim($namespace, '\\'); + //var_dump($namespace, $alias); + $rest->addAPIClass($namespace, $alias); + } + } } } @@ -3065,5 +3072,26 @@ class Bootstrap require_once PATH_TRUNK . 'vendor' . PATH_SEP . "autoload.php"; } + + public static function parseIniFile($filename) + { + $data = @parse_ini_file($filename, true); + $result = array(); + + if ($data === false) { + throw new Exception("Error parsing ini file: $filename"); + } + + foreach ($data as $key => $value) { + if (strpos($key, ':') !== false) { + list($key, $subSection) = explode(':', $key); + $result[trim($key)][trim($subSection)] = $value; + } else { + $result[$key] = $value; + } + } + + return $result; + } } diff --git a/workflow/engine/config/schema.xml b/workflow/engine/config/schema.xml index 1468483d8..aeae74df7 100755 --- a/workflow/engine/config/schema.xml +++ b/workflow/engine/config/schema.xml @@ -3063,6 +3063,44 @@ + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + +
+ @@ -3110,6 +3148,7 @@
+ @@ -3133,6 +3172,23 @@
+ + + + + + + + + + + + + + + +
+ @@ -3163,6 +3219,7 @@
+ @@ -3192,37 +3249,7 @@
- - - - - - - - - - - - - - -
- - - - - - - - - - - - - - - -
+ @@ -3263,22 +3290,7 @@
- - - - - - - - - - - - - - - -
+ @@ -3314,6 +3326,7 @@
+ @@ -3342,29 +3355,7 @@
- - - - - - - - - - - - - - - - - - - - - - -
+ @@ -3389,6 +3380,31 @@
+ + + + + + + + + + + + + + + + + + + + + + + +
+ @@ -3409,40 +3425,39 @@
- - + +
+ - - - - - - - + + + + - +
- - - - - - - - - - - - - + +
+ + + + + + + + + + +
+ diff --git a/workflow/engine/data/mysql/schema.sql b/workflow/engine/data/mysql/schema.sql index 1a26f9afa..0e6202553 100755 --- a/workflow/engine/data/mysql/schema.sql +++ b/workflow/engine/data/mysql/schema.sql @@ -1569,6 +1569,52 @@ CREATE TABLE `PMOAUTH_USER_ACCESS_TOKENS` PRIMARY KEY (`ACCESS_TOKEN`) )ENGINE=InnoDB ; #----------------------------------------------------------------------------- +#-- BPMN_PROJECT +#----------------------------------------------------------------------------- + +DROP TABLE IF EXISTS `BPMN_PROJECT`; + + +CREATE TABLE `BPMN_PROJECT` +( + `PRJ_UID` VARCHAR(32) default '' NOT NULL, + `PRJ_NAME` VARCHAR(255) default '' NOT NULL, + `PRJ_TARGET_NAMESPACE` MEDIUMTEXT NOT NULL, + `PRJ_EXPRESION_LANGUAGE` MEDIUMTEXT, + `PRJ_TYPE_LANGUAGE` MEDIUMTEXT, + `PRJ_EXPORTER` MEDIUMTEXT, + `PRJ_EXPORTER_VERSION` MEDIUMTEXT, + `PRJ_CREATE_DATE` DATETIME NOT NULL, + `PRJ_UPDATE_DATE` DATETIME, + `PRJ_AUTHOR` MEDIUMTEXT, + `PRJ_AUTHOR_VERSION` MEDIUMTEXT, + `PRJ_ORIGINAL_SOURCE` MEDIUMTEXT, + KEY `BPMN_PROJECT_I_1`(`PRJ_UID`) +)ENGINE=InnoDB ; +#----------------------------------------------------------------------------- +#-- BPMN_PROCESS +#----------------------------------------------------------------------------- + +DROP TABLE IF EXISTS `BPMN_PROCESS`; + + +CREATE TABLE `BPMN_PROCESS` +( + `PRO_UID` VARCHAR(32) default '' NOT NULL, + `PRJ_UID` VARCHAR(32) NOT NULL, + `DIA_UID` VARCHAR(32), + `PRO_NAME` VARCHAR(255) NOT NULL, + `PRO_TYPE` VARCHAR(10) default 'NONE' NOT NULL, + `PRO_IS_EXECUTABLE` TINYINT default 0 NOT NULL, + `PRO_IS_CLOSED` TINYINT default 0 NOT NULL, + `PRO_IS_SUBPROCESS` TINYINT default 0 NOT NULL, + KEY `BPMN_PROCESS_I_1`(`PRO_UID`), + KEY `BPMN_PROCESS_I_2`(`PRJ_UID`), + CONSTRAINT `fk_bpmn_process_project` + FOREIGN KEY (`PRJ_UID`) + REFERENCES `BPMN_PROJECT` (`PRJ_UID`) +)ENGINE=InnoDB ; +#----------------------------------------------------------------------------- #-- BPMN_ACTIVITY #----------------------------------------------------------------------------- @@ -1643,6 +1689,25 @@ CREATE TABLE `BPMN_ARTIFACT` REFERENCES `BPMN_PROCESS` (`PRO_UID`) )ENGINE=InnoDB ; #----------------------------------------------------------------------------- +#-- BPMN_DIAGRAM +#----------------------------------------------------------------------------- + +DROP TABLE IF EXISTS `BPMN_DIAGRAM`; + + +CREATE TABLE `BPMN_DIAGRAM` +( + `DIA_UID` VARCHAR(32) default '' NOT NULL, + `PRJ_UID` VARCHAR(32) NOT NULL, + `DIA_NAME` VARCHAR(255), + `DIA_IS_CLOSABLE` TINYINT default 0, + KEY `BPMN_DIAGRAM_I_1`(`DIA_UID`), + KEY `BPMN_DIAGRAM_I_2`(`PRJ_UID`), + CONSTRAINT `fk_bpmn_diagram_project` + FOREIGN KEY (`PRJ_UID`) + REFERENCES `BPMN_PROJECT` (`PRJ_UID`) +)ENGINE=InnoDB ; +#----------------------------------------------------------------------------- #-- BPMN_BOUND #----------------------------------------------------------------------------- @@ -1706,45 +1771,6 @@ CREATE TABLE `BPMN_DATA` REFERENCES `BPMN_PROJECT` (`PRJ_UID`) )ENGINE=InnoDB ; #----------------------------------------------------------------------------- -#-- BPMN_DIAGRAM -#----------------------------------------------------------------------------- - -DROP TABLE IF EXISTS `BPMN_DIAGRAM`; - - -CREATE TABLE `BPMN_DIAGRAM` -( - `DIA_UID` VARCHAR(32) default '' NOT NULL, - `PRJ_UID` VARCHAR(32) NOT NULL, - `DIA_NAME` VARCHAR(255), - `DIA_IS_CLOSABLE` TINYINT default 0, - KEY `BPMN_DIAGRAM_I_1`(`DIA_UID`), - KEY `BPMN_DIAGRAM_I_2`(`PRJ_UID`), - CONSTRAINT `fk_bpmn_diagram_project` - FOREIGN KEY (`PRJ_UID`) - REFERENCES `BPMN_PROJECT` (`PRJ_UID`) -)ENGINE=InnoDB ; -#----------------------------------------------------------------------------- -#-- BPMN_DOCUMENTATION -#----------------------------------------------------------------------------- - -DROP TABLE IF EXISTS `BPMN_DOCUMENTATION`; - - -CREATE TABLE `BPMN_DOCUMENTATION` -( - `DOC_UID` VARCHAR(32) NOT NULL, - `PRJ_UID` VARCHAR(32) NOT NULL, - `DOC_ELEMENT` VARCHAR(32) NOT NULL, - `DOC_ELEMENT_TYPE` VARCHAR(45) NOT NULL, - `DOC_DOCUMENTATION` MEDIUMTEXT, - KEY `BPMN_DOCUMENTATION_I_1`(`DOC_UID`), - KEY `BPMN_DOCUMENTATION_I_2`(`PRJ_UID`), - CONSTRAINT `fk_bpmn_documentation_project` - FOREIGN KEY (`PRJ_UID`) - REFERENCES `BPMN_PROJECT` (`PRJ_UID`) -)ENGINE=InnoDB ; -#----------------------------------------------------------------------------- #-- BPMN_EVENT #----------------------------------------------------------------------------- @@ -1787,26 +1813,6 @@ CREATE TABLE `BPMN_EVENT` REFERENCES `BPMN_PROCESS` (`PRO_UID`) )ENGINE=InnoDB ; #----------------------------------------------------------------------------- -#-- BPMN_EXTENSION -#----------------------------------------------------------------------------- - -DROP TABLE IF EXISTS `BPMN_EXTENSION`; - - -CREATE TABLE `BPMN_EXTENSION` -( - `EXT_UID` VARCHAR(32) NOT NULL, - `PRJ_UID` VARCHAR(32) NOT NULL, - `EXT_ELEMENT` VARCHAR(32) NOT NULL, - `EXT_ELEMENT_TYPE` VARCHAR(45) NOT NULL, - `EXT_EXTENSION` MEDIUMTEXT, - KEY `BPMN_EXTENSION_I_1`(`EXT_UID`), - KEY `BPMN_EXTENSION_I_2`(`PRJ_UID`), - CONSTRAINT `fk_bpmn_extension_project` - FOREIGN KEY (`PRJ_UID`) - REFERENCES `BPMN_PROJECT` (`PRJ_UID`) -)ENGINE=InnoDB ; -#----------------------------------------------------------------------------- #-- BPMN_FLOW #----------------------------------------------------------------------------- @@ -1874,31 +1880,6 @@ CREATE TABLE `BPMN_GATEWAY` REFERENCES `BPMN_PROCESS` (`PRO_UID`) )ENGINE=InnoDB ; #----------------------------------------------------------------------------- -#-- BPMN_LANE -#----------------------------------------------------------------------------- - -DROP TABLE IF EXISTS `BPMN_LANE`; - - -CREATE TABLE `BPMN_LANE` -( - `LAN_UID` VARCHAR(32) default '' NOT NULL, - `PRJ_UID` VARCHAR(32) NOT NULL, - `LNS_UID` VARCHAR(32) NOT NULL, - `LAN_NAME` VARCHAR(255), - `LAN_CHILD_LANESET` VARCHAR(32), - `LAN_IS_HORIZONTAL` TINYINT default 1, - KEY `BPMN_LANE_I_1`(`LAN_UID`), - KEY `BPMN_LANE_I_2`(`PRJ_UID`), - KEY `BPMN_LANE_I_3`(`LNS_UID`), - CONSTRAINT `fk_bpmn_lane_project` - FOREIGN KEY (`PRJ_UID`) - REFERENCES `BPMN_PROJECT` (`PRJ_UID`), - CONSTRAINT `fk_bpmn_lane_laneset` - FOREIGN KEY (`LNS_UID`) - REFERENCES `BPMN_LANESET` (`LNS_UID`) -)ENGINE=InnoDB ; -#----------------------------------------------------------------------------- #-- BPMN_LANESET #----------------------------------------------------------------------------- @@ -1925,6 +1906,31 @@ CREATE TABLE `BPMN_LANESET` REFERENCES `BPMN_PROCESS` (`PRO_UID`) )ENGINE=InnoDB ; #----------------------------------------------------------------------------- +#-- BPMN_LANE +#----------------------------------------------------------------------------- + +DROP TABLE IF EXISTS `BPMN_LANE`; + + +CREATE TABLE `BPMN_LANE` +( + `LAN_UID` VARCHAR(32) default '' NOT NULL, + `PRJ_UID` VARCHAR(32) NOT NULL, + `LNS_UID` VARCHAR(32) NOT NULL, + `LAN_NAME` VARCHAR(255), + `LAN_CHILD_LANESET` VARCHAR(32), + `LAN_IS_HORIZONTAL` TINYINT default 1, + KEY `BPMN_LANE_I_1`(`LAN_UID`), + KEY `BPMN_LANE_I_2`(`PRJ_UID`), + KEY `BPMN_LANE_I_3`(`LNS_UID`), + CONSTRAINT `fk_bpmn_lane_project` + FOREIGN KEY (`PRJ_UID`) + REFERENCES `BPMN_PROJECT` (`PRJ_UID`), + CONSTRAINT `fk_bpmn_lane_laneset` + FOREIGN KEY (`LNS_UID`) + REFERENCES `BPMN_LANESET` (`LNS_UID`) +)ENGINE=InnoDB ; +#----------------------------------------------------------------------------- #-- BPMN_PARTICIPANT #----------------------------------------------------------------------------- @@ -1949,50 +1955,44 @@ CREATE TABLE `BPMN_PARTICIPANT` REFERENCES `BPMN_PROJECT` (`PRJ_UID`) )ENGINE=InnoDB ; #----------------------------------------------------------------------------- -#-- BPMN_PROCESS +#-- BPMN_EXTENSION #----------------------------------------------------------------------------- -DROP TABLE IF EXISTS `BPMN_PROCESS`; +DROP TABLE IF EXISTS `BPMN_EXTENSION`; -CREATE TABLE `BPMN_PROCESS` +CREATE TABLE `BPMN_EXTENSION` ( - `PRO_UID` VARCHAR(32) default '' NOT NULL, + `EXT_UID` VARCHAR(32) NOT NULL, `PRJ_UID` VARCHAR(32) NOT NULL, - `DIA_UID` VARCHAR(32), - `PRO_NAME` VARCHAR(255) NOT NULL, - `PRO_TYPE` VARCHAR(10) default 'NONE' NOT NULL, - `PRO_IS_EXECUTABLE` TINYINT default 0 NOT NULL, - `PRO_IS_CLOSED` TINYINT default 0 NOT NULL, - `PRO_IS_SUBPROCESS` TINYINT default 0 NOT NULL, - KEY `BPMN_PROCESS_I_1`(`PRO_UID`), - KEY `BPMN_PROCESS_I_2`(`PRJ_UID`), - CONSTRAINT `fk_bpmn_process_project` + `EXT_ELEMENT` VARCHAR(32) NOT NULL, + `EXT_ELEMENT_TYPE` VARCHAR(45) NOT NULL, + `EXT_EXTENSION` MEDIUMTEXT, + KEY `BPMN_EXTENSION_I_1`(`EXT_UID`), + KEY `BPMN_EXTENSION_I_2`(`PRJ_UID`), + CONSTRAINT `fk_bpmn_extension_project` FOREIGN KEY (`PRJ_UID`) REFERENCES `BPMN_PROJECT` (`PRJ_UID`) )ENGINE=InnoDB ; #----------------------------------------------------------------------------- -#-- BPMN_PROJECT +#-- BPMN_DOCUMENTATION #----------------------------------------------------------------------------- -DROP TABLE IF EXISTS `BPMN_PROJECT`; +DROP TABLE IF EXISTS `BPMN_DOCUMENTATION`; -CREATE TABLE `BPMN_PROJECT` +CREATE TABLE `BPMN_DOCUMENTATION` ( - `PRJ_UID` VARCHAR(32) default '' NOT NULL, - `PRJ_NAME` VARCHAR(255) default '' NOT NULL, - `PRJ_TARGET_NAMESPACE` MEDIUMTEXT NOT NULL, - `PRJ_EXPRESION_LANGUAGE` MEDIUMTEXT, - `PRJ_TYPE_LANGUAGE` MEDIUMTEXT, - `PRJ_EXPORTER` MEDIUMTEXT, - `PRJ_EXPORTER_VERSION` MEDIUMTEXT, - `PRJ_CREATE_DATE` DATETIME NOT NULL, - `PRJ_UPDATE_DATE` DATETIME, - `PRJ_AUTHOR` MEDIUMTEXT, - `PRJ_AUTHOR_VERSION` MEDIUMTEXT, - `PRJ_ORIGINAL_SOURCE` MEDIUMTEXT, - KEY `BPMN_PROJECT_I_1`(`PRJ_UID`) + `DOC_UID` VARCHAR(32) NOT NULL, + `PRJ_UID` VARCHAR(32) NOT NULL, + `DOC_ELEMENT` VARCHAR(32) NOT NULL, + `DOC_ELEMENT_TYPE` VARCHAR(45) NOT NULL, + `DOC_DOCUMENTATION` MEDIUMTEXT, + KEY `BPMN_DOCUMENTATION_I_1`(`DOC_UID`), + KEY `BPMN_DOCUMENTATION_I_2`(`PRJ_UID`), + CONSTRAINT `fk_bpmn_documentation_project` + FOREIGN KEY (`PRJ_UID`) + REFERENCES `BPMN_PROJECT` (`PRJ_UID`) )ENGINE=InnoDB ; # This restores the fkey checks, after having unset them earlier SET FOREIGN_KEY_CHECKS = 1; diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Test.php b/workflow/engine/src/Services/Api/ProcessMaker/Test.php index 7dd142550..8cb87be70 100644 --- a/workflow/engine/src/Services/Api/ProcessMaker/Test.php +++ b/workflow/engine/src/Services/Api/ProcessMaker/Test.php @@ -34,7 +34,7 @@ class Test extends Api return $this->data[$id]; } - throw new RestException(400, "Record not found. Record with id: $id does not exist!"); + throw new RestException(400, "GET: Record not found. Record with id: $id does not exist!"); } function post($request_data = NULL) @@ -78,7 +78,7 @@ class Test extends Api return $this->data[$id]; } else { - throw new RestException(400, "Record not found. Record with id: $id does not exist!"); + throw new RestException(400, "PUT: Record not found. Record with id: $id does not exist!"); } } @@ -91,7 +91,7 @@ class Test extends Api return $row; } else { - throw new RestException(400, "Record not found. Record with id: $id does not exist!"); + throw new RestException(400, "DELETE: Record not found. Record with id: $id does not exist!"); } } diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Test2.php b/workflow/engine/src/Services/Api/ProcessMaker/Test2.php index 978a5474e..81b2402e7 100644 --- a/workflow/engine/src/Services/Api/ProcessMaker/Test2.php +++ b/workflow/engine/src/Services/Api/ProcessMaker/Test2.php @@ -7,9 +7,9 @@ use \Luracast\Restler\RestException; class Test2 extends Api { - function hello() + function hello2() { - return 'GEEET ALL'; + return 'Hello #2'; } /** diff --git a/workflow/engine/src/Services/Api/ProcessMaker/Test3.php b/workflow/engine/src/Services/Api/ProcessMaker/Test3.php new file mode 100644 index 000000000..a8e613003 --- /dev/null +++ b/workflow/engine/src/Services/Api/ProcessMaker/Test3.php @@ -0,0 +1,14 @@ +