Merged develop into feature/PMCORE-639
This commit is contained in:
@@ -15,7 +15,7 @@ jobs:
|
||||
name: Run Test Units
|
||||
command: |
|
||||
mkdir coverage
|
||||
vendor/phpunit/phpunit/phpunit --stop-on-failure --testdox-html coverage/result.html --coverage-html coverage --verbose tests/unit/
|
||||
vendor/phpunit/phpunit/phpunit --testdox-html coverage/result.html --coverage-html coverage --verbose tests/unit/
|
||||
- store_artifacts:
|
||||
path: coverage
|
||||
destination: coverage
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
"require": {
|
||||
"php": ">=7.1",
|
||||
"laravel/framework": "5.7.*",
|
||||
"luracast/restler": "^3.0",
|
||||
"luracast/restler": "3.0",
|
||||
"bshaffer/oauth2-server-php": "v1.0",
|
||||
"colosa/pmui": "release/3.5.0-dev",
|
||||
"colosa/michelangelofe": "release/3.5.0-dev",
|
||||
|
||||
408
composer.lock
generated
408
composer.lock
generated
@@ -4,20 +4,20 @@
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "dfa09f203f7f454deac5cd0bcb07c8dc",
|
||||
"content-hash": "5fee2ceaf7f4d761c96852141e566de9",
|
||||
"packages": [
|
||||
{
|
||||
"name": "aws/aws-sdk-php",
|
||||
"version": "3.154.5",
|
||||
"version": "3.158.6",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/aws/aws-sdk-php.git",
|
||||
"reference": "50b1ef32d51d80f35a691e13c34f67b920765c18"
|
||||
"reference": "4e912c1ae4d4b3538ada36ac1478f980f9bdf329"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/50b1ef32d51d80f35a691e13c34f67b920765c18",
|
||||
"reference": "50b1ef32d51d80f35a691e13c34f67b920765c18",
|
||||
"url": "https://api.github.com/repos/aws/aws-sdk-php/zipball/4e912c1ae4d4b3538ada36ac1478f980f9bdf329",
|
||||
"reference": "4e912c1ae4d4b3538ada36ac1478f980f9bdf329",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -89,7 +89,7 @@
|
||||
"s3",
|
||||
"sdk"
|
||||
],
|
||||
"time": "2020-09-17T18:22:25+00:00"
|
||||
"time": "2020-10-09T18:11:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "bshaffer/oauth2-server-php",
|
||||
@@ -474,20 +474,20 @@
|
||||
},
|
||||
{
|
||||
"name": "dragonmantank/cron-expression",
|
||||
"version": "v2.3.0",
|
||||
"version": "v2.3.1",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/dragonmantank/cron-expression.git",
|
||||
"reference": "72b6fbf76adb3cf5bc0db68559b33d41219aba27"
|
||||
"reference": "69ab0de70a3fdc7b99fe8fa9b1ef073e3b2b5e00"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/72b6fbf76adb3cf5bc0db68559b33d41219aba27",
|
||||
"reference": "72b6fbf76adb3cf5bc0db68559b33d41219aba27",
|
||||
"url": "https://api.github.com/repos/dragonmantank/cron-expression/zipball/69ab0de70a3fdc7b99fe8fa9b1ef073e3b2b5e00",
|
||||
"reference": "69ab0de70a3fdc7b99fe8fa9b1ef073e3b2b5e00",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.0"
|
||||
"php": "^7.1|^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^6.4|^7.0"
|
||||
@@ -524,20 +524,26 @@
|
||||
"cron",
|
||||
"schedule"
|
||||
],
|
||||
"time": "2019-03-31T00:38:28+00:00"
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://github.com/dragonmantank",
|
||||
"type": "github"
|
||||
}
|
||||
],
|
||||
"time": "2020-10-12T18:35:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "egulias/email-validator",
|
||||
"version": "2.1.20",
|
||||
"version": "2.1.22",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/egulias/EmailValidator.git",
|
||||
"reference": "f46887bc48db66c7f38f668eb7d6ae54583617ff"
|
||||
"reference": "68e418ec08fbfc6f58f6fd2eea70ca8efc8cc7d5"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/egulias/EmailValidator/zipball/f46887bc48db66c7f38f668eb7d6ae54583617ff",
|
||||
"reference": "f46887bc48db66c7f38f668eb7d6ae54583617ff",
|
||||
"url": "https://api.github.com/repos/egulias/EmailValidator/zipball/68e418ec08fbfc6f58f6fd2eea70ca8efc8cc7d5",
|
||||
"reference": "68e418ec08fbfc6f58f6fd2eea70ca8efc8cc7d5",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -582,7 +588,7 @@
|
||||
"validation",
|
||||
"validator"
|
||||
],
|
||||
"time": "2020-09-06T13:44:32+00:00"
|
||||
"time": "2020-09-26T15:48:38+00:00"
|
||||
},
|
||||
{
|
||||
"name": "erusev/parsedown",
|
||||
@@ -752,7 +758,7 @@
|
||||
"src/"
|
||||
]
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"notification-url": "http://packagist.org/downloads/",
|
||||
"license": [
|
||||
"Apache-2.0"
|
||||
],
|
||||
@@ -832,23 +838,23 @@
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/promises",
|
||||
"version": "v1.3.1",
|
||||
"version": "1.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/promises.git",
|
||||
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646"
|
||||
"reference": "60d379c243457e073cff02bc323a2a86cb355631"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/a59da6cf61d80060647ff4d3eb2c03a2bc694646",
|
||||
"reference": "a59da6cf61d80060647ff4d3eb2c03a2bc694646",
|
||||
"url": "https://api.github.com/repos/guzzle/promises/zipball/60d379c243457e073cff02bc323a2a86cb355631",
|
||||
"reference": "60d379c243457e073cff02bc323a2a86cb355631",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.5.0"
|
||||
"php": ">=5.5"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.0"
|
||||
"symfony/phpunit-bridge": "^4.4 || ^5.1"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -879,20 +885,20 @@
|
||||
"keywords": [
|
||||
"promise"
|
||||
],
|
||||
"time": "2016-12-20T10:07:11+00:00"
|
||||
"time": "2020-09-30T07:37:28+00:00"
|
||||
},
|
||||
{
|
||||
"name": "guzzlehttp/psr7",
|
||||
"version": "1.6.1",
|
||||
"version": "1.7.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/guzzle/psr7.git",
|
||||
"reference": "239400de7a173fe9901b9ac7c06497751f00727a"
|
||||
"reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/239400de7a173fe9901b9ac7c06497751f00727a",
|
||||
"reference": "239400de7a173fe9901b9ac7c06497751f00727a",
|
||||
"url": "https://api.github.com/repos/guzzle/psr7/zipball/53330f47520498c0ae1f61f7e2c90f55690c06a3",
|
||||
"reference": "53330f47520498c0ae1f61f7e2c90f55690c06a3",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -905,15 +911,15 @@
|
||||
},
|
||||
"require-dev": {
|
||||
"ext-zlib": "*",
|
||||
"phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.8"
|
||||
"phpunit/phpunit": "~4.8.36 || ^5.7.27 || ^6.5.14 || ^7.5.20 || ^8.5.8 || ^9.3.10"
|
||||
},
|
||||
"suggest": {
|
||||
"zendframework/zend-httphandlerrunner": "Emit PSR-7 responses"
|
||||
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.6-dev"
|
||||
"dev-master": "1.7-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -950,7 +956,7 @@
|
||||
"uri",
|
||||
"url"
|
||||
],
|
||||
"time": "2019-07-01T23:21:34+00:00"
|
||||
"time": "2020-09-30T07:37:11+00:00"
|
||||
},
|
||||
{
|
||||
"name": "jakub-onderka/php-console-color",
|
||||
@@ -1709,7 +1715,7 @@
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jean-Marc Trémeaux",
|
||||
"name": "Jean-Marc Tr??meaux",
|
||||
"homepage": "http://naku.dohcrew.com/",
|
||||
"role": "Developer"
|
||||
},
|
||||
@@ -1731,45 +1737,47 @@
|
||||
},
|
||||
{
|
||||
"name": "luracast/restler",
|
||||
"version": "3.1.0",
|
||||
"version": "3.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/Luracast/Restler.git",
|
||||
"reference": "fd6eefabf4f12b9649657d3ab07378649e22044b"
|
||||
"reference": "e82d5622f5a1798c3c208867184a469fb4fd445c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/Luracast/Restler/zipball/fd6eefabf4f12b9649657d3ab07378649e22044b",
|
||||
"reference": "fd6eefabf4f12b9649657d3ab07378649e22044b",
|
||||
"url": "https://api.github.com/repos/Luracast/Restler/zipball/e82d5622f5a1798c3c208867184a469fb4fd445c",
|
||||
"reference": "e82d5622f5a1798c3c208867184a469fb4fd445c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-json": "*",
|
||||
"php": ">=5.4"
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"conflict": {
|
||||
"restler/framework": "3.*"
|
||||
},
|
||||
"require-dev": {
|
||||
"behat/behat": "^3.8@dev",
|
||||
"bshaffer/oauth2-server-php": "dev-master",
|
||||
"ext-libxml": "*",
|
||||
"guzzlehttp/guzzle": "^7.0@dev",
|
||||
"illuminate/view": "^8",
|
||||
"behat/behat": "2.5.*@stable",
|
||||
"bshaffer/oauth2-server-php": "v1.0",
|
||||
"guzzle/guzzle": "~3.1.1",
|
||||
"illuminate/view": "4.2.*",
|
||||
"luracast/explorer": "*",
|
||||
"mustache/mustache": "dev-master",
|
||||
"rize/uri-template": "dev-master",
|
||||
"twig/twig": "^3"
|
||||
"rodneyrehm/plist": "dev-master",
|
||||
"symfony/yaml": "*",
|
||||
"twig/twig": "v1.13.0",
|
||||
"zendframework/zendamf": "dev-master"
|
||||
},
|
||||
"suggest": {
|
||||
"behat/behat": "Behaviour driven development testing framework (see require-dev for details)",
|
||||
"bshaffer/oauth2-server-php": "If you want to use OAuth2 for authentication",
|
||||
"bshaffer/oauth2-server-php": "Restler can provide OAuth2 authentication using this library (see require-dev for details)",
|
||||
"guzzle/guzzle": "RESTful api HTTP client framework (see require-dev for details)",
|
||||
"illuminate/view": "If you want to use laravel blade templates with Html format",
|
||||
"mustache/mustache": "If you want to use mustache/handlebar templates with Html format",
|
||||
"rodneyrehm/plist": "If you need Apple plist binary/xml format",
|
||||
"symfony/yaml": "If you need YAML format",
|
||||
"twig/twig": "If you want to use twig templates with Html format",
|
||||
"zendframework/zendamf": "If you need AMF format"
|
||||
"illuminate/view": "Restler can render HtmlView using laravel blade templates (see require-dev for details)",
|
||||
"luracast/explorer": "Restler's very own api explorer (see require-dev for details)",
|
||||
"mustache/mustache": "Restler can render HtmlView using mustache/handlebar templates (see require-dev for details)",
|
||||
"rodneyrehm/plist": "Restler supports tho Apple plist xml format (see require-dev for details)",
|
||||
"symfony/yaml": "Restler can produce content in yaml format as well (see require-dev for details)",
|
||||
"twig/twig": "Restler can render HtmlView using twig templates (see require-dev for details)",
|
||||
"zendframework/zendamf": "Support for the amf document format (see require-dev for details)"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
@@ -1778,8 +1786,8 @@
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Luracast\\Restler\\": "vendor/Luracast/Restler"
|
||||
"psr-0": {
|
||||
"Luracast\\Restler": "vendor/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
@@ -1790,6 +1798,10 @@
|
||||
{
|
||||
"name": "Luracast",
|
||||
"email": "arul@luracast.com"
|
||||
},
|
||||
{
|
||||
"name": "Nick nickl- Lombard",
|
||||
"email": "github@jigsoft.co.za"
|
||||
}
|
||||
],
|
||||
"description": "Restler is a simple and effective multi-format Web API Server framework written in PHP. Just deal with your business logic in php, Restler will take care of the REST!",
|
||||
@@ -1800,7 +1812,7 @@
|
||||
"rest",
|
||||
"server"
|
||||
],
|
||||
"time": "2020-07-07T13:28:35+00:00"
|
||||
"time": "2020-02-13T18:25:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "monolog/monolog",
|
||||
@@ -2144,29 +2156,29 @@
|
||||
},
|
||||
{
|
||||
"name": "opis/closure",
|
||||
"version": "3.5.7",
|
||||
"version": "3.6.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/opis/closure.git",
|
||||
"reference": "4531e53afe2fc660403e76fb7644e95998bff7bf"
|
||||
"reference": "c547f8262a5fa9ff507bd06cc394067b83a75085"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/opis/closure/zipball/4531e53afe2fc660403e76fb7644e95998bff7bf",
|
||||
"reference": "4531e53afe2fc660403e76fb7644e95998bff7bf",
|
||||
"url": "https://api.github.com/repos/opis/closure/zipball/c547f8262a5fa9ff507bd06cc394067b83a75085",
|
||||
"reference": "c547f8262a5fa9ff507bd06cc394067b83a75085",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^5.4 || ^7.0"
|
||||
"php": "^5.4 || ^7.0 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"jeremeamia/superclosure": "^2.0",
|
||||
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0"
|
||||
"phpunit/phpunit": "^4.0 || ^5.0 || ^6.0 || ^7.0 || ^8.0 || ^9.0"
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.5.x-dev"
|
||||
"dev-master": "3.6.x-dev"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
@@ -2201,7 +2213,7 @@
|
||||
"serialization",
|
||||
"serialize"
|
||||
],
|
||||
"time": "2020-09-06T17:02:15+00:00"
|
||||
"time": "2020-10-11T21:42:15+00:00"
|
||||
},
|
||||
{
|
||||
"name": "paragonie/random_compat",
|
||||
@@ -2293,6 +2305,12 @@
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"description": "Official version of pdepend to be handled with Composer",
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/pdepend/pdepend",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-06-20T10:53:13+00:00"
|
||||
},
|
||||
{
|
||||
@@ -2814,16 +2832,16 @@
|
||||
},
|
||||
{
|
||||
"name": "phpmyadmin/sql-parser",
|
||||
"version": "5.3.1",
|
||||
"version": "5.4.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/phpmyadmin/sql-parser.git",
|
||||
"reference": "11457e9bbedc182b48c04db3a2621d17b58b0808"
|
||||
"reference": "6c597821433d9dfbc796f105149614f802a25a4e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/11457e9bbedc182b48c04db3a2621d17b58b0808",
|
||||
"reference": "11457e9bbedc182b48c04db3a2621d17b58b0808",
|
||||
"url": "https://api.github.com/repos/phpmyadmin/sql-parser/zipball/6c597821433d9dfbc796f105149614f802a25a4e",
|
||||
"reference": "6c597821433d9dfbc796f105149614f802a25a4e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -2834,11 +2852,11 @@
|
||||
"phpmyadmin/motranslator": "<3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpmyadmin/coding-standard": "^1.0",
|
||||
"phpmyadmin/coding-standard": "^2.0",
|
||||
"phpmyadmin/motranslator": "^4.0 || ^5.0",
|
||||
"phpstan/extension-installer": "^1.0",
|
||||
"phpstan/phpstan": "^0.12.3",
|
||||
"phpstan/phpstan-phpunit": "^0.12.1",
|
||||
"phpstan/phpstan": "^0.12.40",
|
||||
"phpstan/phpstan-phpunit": "^0.12.16",
|
||||
"phpunit/php-code-coverage": "*",
|
||||
"phpunit/phpunit": "^7.4 || ^8 || ^9"
|
||||
},
|
||||
@@ -2876,7 +2894,7 @@
|
||||
"parser",
|
||||
"sql"
|
||||
],
|
||||
"time": "2020-03-21T00:25:34+00:00"
|
||||
"time": "2020-10-08T19:21:19+00:00"
|
||||
},
|
||||
{
|
||||
"name": "predis/predis",
|
||||
@@ -3481,16 +3499,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/config",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/config.git",
|
||||
"reference": "043bf8652c307ebc23ce44047d215eec889d8850"
|
||||
"reference": "7c5a1002178a612787c291a4f515f87b19176b61"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/config/zipball/043bf8652c307ebc23ce44047d215eec889d8850",
|
||||
"reference": "043bf8652c307ebc23ce44047d215eec889d8850",
|
||||
"url": "https://api.github.com/repos/symfony/config/zipball/7c5a1002178a612787c291a4f515f87b19176b61",
|
||||
"reference": "7c5a1002178a612787c291a4f515f87b19176b61",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3555,20 +3573,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-10T07:27:51+00:00"
|
||||
"time": "2020-10-02T07:34:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/console",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/console.git",
|
||||
"reference": "b39fd99b9297b67fb7633b7d8083957a97e1e727"
|
||||
"reference": "90933b39c7b312fc3ceaa1ddeac7eb48cb953124"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/b39fd99b9297b67fb7633b7d8083957a97e1e727",
|
||||
"reference": "b39fd99b9297b67fb7633b7d8083957a97e1e727",
|
||||
"url": "https://api.github.com/repos/symfony/console/zipball/90933b39c7b312fc3ceaa1ddeac7eb48cb953124",
|
||||
"reference": "90933b39c7b312fc3ceaa1ddeac7eb48cb953124",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3646,11 +3664,11 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-09-02T07:07:21+00:00"
|
||||
"time": "2020-09-15T07:58:55+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/css-selector",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/css-selector.git",
|
||||
@@ -3717,16 +3735,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/debug",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/debug.git",
|
||||
"reference": "aeb73aca16a8f1fe958230fe44e6cf4c84cbb85e"
|
||||
"reference": "726b85e69342e767d60e3853b98559a68ff74183"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/debug/zipball/aeb73aca16a8f1fe958230fe44e6cf4c84cbb85e",
|
||||
"reference": "aeb73aca16a8f1fe958230fe44e6cf4c84cbb85e",
|
||||
"url": "https://api.github.com/repos/symfony/debug/zipball/726b85e69342e767d60e3853b98559a68ff74183",
|
||||
"reference": "726b85e69342e767d60e3853b98559a68ff74183",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3784,20 +3802,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-10T07:47:39+00:00"
|
||||
"time": "2020-09-09T05:20:36+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/dependency-injection",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/dependency-injection.git",
|
||||
"reference": "384c2601e5a6228d60b041911d63f010e0885ffb"
|
||||
"reference": "89274c8847dff2ed703e481843eb9159ca25cc6e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/384c2601e5a6228d60b041911d63f010e0885ffb",
|
||||
"reference": "384c2601e5a6228d60b041911d63f010e0885ffb",
|
||||
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/89274c8847dff2ed703e481843eb9159ca25cc6e",
|
||||
"reference": "89274c8847dff2ed703e481843eb9159ca25cc6e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3871,20 +3889,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-09-01T17:42:15+00:00"
|
||||
"time": "2020-09-10T10:08:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/error-handler",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/error-handler.git",
|
||||
"reference": "2434fb32851f252e4f27691eee0b77c16198db62"
|
||||
"reference": "c8be4a5c70af70fec82e762dd93e3bbcf95c035f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/2434fb32851f252e4f27691eee0b77c16198db62",
|
||||
"reference": "2434fb32851f252e4f27691eee0b77c16198db62",
|
||||
"url": "https://api.github.com/repos/symfony/error-handler/zipball/c8be4a5c70af70fec82e762dd93e3bbcf95c035f",
|
||||
"reference": "c8be4a5c70af70fec82e762dd93e3bbcf95c035f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3942,20 +3960,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-17T09:56:45+00:00"
|
||||
"time": "2020-10-01T16:21:20+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/event-dispatcher.git",
|
||||
"reference": "3e8ea5ccddd00556b86d69d42f99f1061a704030"
|
||||
"reference": "e17bb5e0663dc725f7cdcafc932132735b4725cd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/3e8ea5ccddd00556b86d69d42f99f1061a704030",
|
||||
"reference": "3e8ea5ccddd00556b86d69d42f99f1061a704030",
|
||||
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/e17bb5e0663dc725f7cdcafc932132735b4725cd",
|
||||
"reference": "e17bb5e0663dc725f7cdcafc932132735b4725cd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -3973,6 +3991,7 @@
|
||||
"psr/log": "~1.0",
|
||||
"symfony/config": "^3.4|^4.0|^5.0",
|
||||
"symfony/dependency-injection": "^3.4|^4.0|^5.0",
|
||||
"symfony/error-handler": "~3.4|~4.4",
|
||||
"symfony/expression-language": "^3.4|^4.0|^5.0",
|
||||
"symfony/http-foundation": "^3.4|^4.0|^5.0",
|
||||
"symfony/service-contracts": "^1.1|^2",
|
||||
@@ -4026,7 +4045,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-13T14:18:44+00:00"
|
||||
"time": "2020-09-18T14:07:46+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/event-dispatcher-contracts",
|
||||
@@ -4106,16 +4125,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/filesystem",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/filesystem.git",
|
||||
"reference": "27575bcbc68db1f6d06218891296572c9b845704"
|
||||
"reference": "ebc51494739d3b081ea543ed7c462fa73a4f74db"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/27575bcbc68db1f6d06218891296572c9b845704",
|
||||
"reference": "27575bcbc68db1f6d06218891296572c9b845704",
|
||||
"url": "https://api.github.com/repos/symfony/filesystem/zipball/ebc51494739d3b081ea543ed7c462fa73a4f74db",
|
||||
"reference": "ebc51494739d3b081ea543ed7c462fa73a4f74db",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4166,20 +4185,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-21T17:19:37+00:00"
|
||||
"time": "2020-09-27T13:54:16+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/finder",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/finder.git",
|
||||
"reference": "2a78590b2c7e3de5c429628457c47541c58db9c7"
|
||||
"reference": "60d08560f9aa72997c44077c40d47aa28a963230"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/2a78590b2c7e3de5c429628457c47541c58db9c7",
|
||||
"reference": "2a78590b2c7e3de5c429628457c47541c58db9c7",
|
||||
"url": "https://api.github.com/repos/symfony/finder/zipball/60d08560f9aa72997c44077c40d47aa28a963230",
|
||||
"reference": "60d08560f9aa72997c44077c40d47aa28a963230",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4229,20 +4248,95 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-17T09:56:45+00:00"
|
||||
"time": "2020-10-02T07:34:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-foundation",
|
||||
"version": "v4.4.13",
|
||||
"name": "symfony/http-client-contracts",
|
||||
"version": "v1.1.10",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-foundation.git",
|
||||
"reference": "e3e5a62a6631a461954d471e7206e3750dbe8ee1"
|
||||
"url": "https://github.com/symfony/http-client-contracts.git",
|
||||
"reference": "7e86f903f9720d0caa7688f5c29a2de2d77cbb89"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/e3e5a62a6631a461954d471e7206e3750dbe8ee1",
|
||||
"reference": "e3e5a62a6631a461954d471e7206e3750dbe8ee1",
|
||||
"url": "https://api.github.com/repos/symfony/http-client-contracts/zipball/7e86f903f9720d0caa7688f5c29a2de2d77cbb89",
|
||||
"reference": "7e86f903f9720d0caa7688f5c29a2de2d77cbb89",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=7.1.3"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/http-client-implementation": ""
|
||||
},
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.1-dev"
|
||||
},
|
||||
"thanks": {
|
||||
"name": "symfony/contracts",
|
||||
"url": "https://github.com/symfony/contracts"
|
||||
}
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Symfony\\Contracts\\HttpClient\\": ""
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Nicolas Grekas",
|
||||
"email": "p@tchwork.com"
|
||||
},
|
||||
{
|
||||
"name": "Symfony Community",
|
||||
"homepage": "https://symfony.com/contributors"
|
||||
}
|
||||
],
|
||||
"description": "Generic abstractions related to HTTP clients",
|
||||
"homepage": "https://symfony.com",
|
||||
"keywords": [
|
||||
"abstractions",
|
||||
"contracts",
|
||||
"decoupling",
|
||||
"interfaces",
|
||||
"interoperability",
|
||||
"standards"
|
||||
],
|
||||
"funding": [
|
||||
{
|
||||
"url": "https://symfony.com/sponsor",
|
||||
"type": "custom"
|
||||
},
|
||||
{
|
||||
"url": "https://github.com/fabpot",
|
||||
"type": "github"
|
||||
},
|
||||
{
|
||||
"url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-17T09:35:39+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-foundation",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-foundation.git",
|
||||
"reference": "10683b407c3b6087c64619ebc97a87e36ea62c92"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-foundation/zipball/10683b407c3b6087c64619ebc97a87e36ea62c92",
|
||||
"reference": "10683b407c3b6087c64619ebc97a87e36ea62c92",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4298,20 +4392,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-17T07:39:58+00:00"
|
||||
"time": "2020-09-27T14:14:06+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/http-kernel",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/http-kernel.git",
|
||||
"reference": "2bb7b90ecdc79813c0bf237b7ff20e79062b5188"
|
||||
"reference": "6544745997b06c7dcecf0d4a70f09e5de1db7ca8"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/2bb7b90ecdc79813c0bf237b7ff20e79062b5188",
|
||||
"reference": "2bb7b90ecdc79813c0bf237b7ff20e79062b5188",
|
||||
"url": "https://api.github.com/repos/symfony/http-kernel/zipball/6544745997b06c7dcecf0d4a70f09e5de1db7ca8",
|
||||
"reference": "6544745997b06c7dcecf0d4a70f09e5de1db7ca8",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4319,6 +4413,7 @@
|
||||
"psr/log": "~1.0",
|
||||
"symfony/error-handler": "^4.4",
|
||||
"symfony/event-dispatcher": "^4.4",
|
||||
"symfony/http-client-contracts": "^1.1|^2",
|
||||
"symfony/http-foundation": "^4.4|^5.0",
|
||||
"symfony/polyfill-ctype": "^1.8",
|
||||
"symfony/polyfill-php73": "^1.9",
|
||||
@@ -4403,20 +4498,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-09-02T08:09:29+00:00"
|
||||
"time": "2020-10-04T07:48:13+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/mime",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/mime.git",
|
||||
"reference": "50ad671306d3d3ffb888d95b4fb1859496831e3a"
|
||||
"reference": "42df2507eb8e6cd9795f51c99dd52bab543a918f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/50ad671306d3d3ffb888d95b4fb1859496831e3a",
|
||||
"reference": "50ad671306d3d3ffb888d95b4fb1859496831e3a",
|
||||
"url": "https://api.github.com/repos/symfony/mime/zipball/42df2507eb8e6cd9795f51c99dd52bab543a918f",
|
||||
"reference": "42df2507eb8e6cd9795f51c99dd52bab543a918f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -4479,7 +4574,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-17T09:56:45+00:00"
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/polyfill-ctype",
|
||||
@@ -5185,16 +5280,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/process",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/process.git",
|
||||
"reference": "65e70bab62f3da7089a8d4591fb23fbacacb3479"
|
||||
"reference": "9b887acc522935f77555ae8813495958c7771ba7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/65e70bab62f3da7089a8d4591fb23fbacacb3479",
|
||||
"reference": "65e70bab62f3da7089a8d4591fb23fbacacb3479",
|
||||
"url": "https://api.github.com/repos/symfony/process/zipball/9b887acc522935f77555ae8813495958c7771ba7",
|
||||
"reference": "9b887acc522935f77555ae8813495958c7771ba7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5244,20 +5339,20 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-07-23T08:31:43+00:00"
|
||||
"time": "2020-09-02T16:08:58+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/routing",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/routing.git",
|
||||
"reference": "e3387963565da9bae51d1d3ab8041646cc93bd04"
|
||||
"reference": "006b2d06672b8650998f328fc603eb6f3feb979f"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/e3387963565da9bae51d1d3ab8041646cc93bd04",
|
||||
"reference": "e3387963565da9bae51d1d3ab8041646cc93bd04",
|
||||
"url": "https://api.github.com/repos/symfony/routing/zipball/006b2d06672b8650998f328fc603eb6f3feb979f",
|
||||
"reference": "006b2d06672b8650998f328fc603eb6f3feb979f",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5334,7 +5429,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-10T07:27:51+00:00"
|
||||
"time": "2020-10-01T16:25:17+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/service-contracts",
|
||||
@@ -5414,16 +5509,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/translation.git",
|
||||
"reference": "700e6e50174b0cdcf0fa232773bec5c314680575"
|
||||
"reference": "8494fa1bbf9d77fe1e7d50ac8ccfb80a858a98bd"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/700e6e50174b0cdcf0fa232773bec5c314680575",
|
||||
"reference": "700e6e50174b0cdcf0fa232773bec5c314680575",
|
||||
"url": "https://api.github.com/repos/symfony/translation/zipball/8494fa1bbf9d77fe1e7d50ac8ccfb80a858a98bd",
|
||||
"reference": "8494fa1bbf9d77fe1e7d50ac8ccfb80a858a98bd",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5500,7 +5595,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-17T09:56:45+00:00"
|
||||
"time": "2020-10-02T07:34:48+00:00"
|
||||
},
|
||||
{
|
||||
"name": "symfony/translation-contracts",
|
||||
@@ -5579,16 +5674,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/var-dumper",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/var-dumper.git",
|
||||
"reference": "1bef32329f3166486ab7cb88599cae4875632b99"
|
||||
"reference": "0dc22bdf9d1197467bb04d505355180b6f20bcca"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/1bef32329f3166486ab7cb88599cae4875632b99",
|
||||
"reference": "1bef32329f3166486ab7cb88599cae4875632b99",
|
||||
"url": "https://api.github.com/repos/symfony/var-dumper/zipball/0dc22bdf9d1197467bb04d505355180b6f20bcca",
|
||||
"reference": "0dc22bdf9d1197467bb04d505355180b6f20bcca",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -5666,7 +5761,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-17T07:31:35+00:00"
|
||||
"time": "2020-09-18T08:35:10+00:00"
|
||||
},
|
||||
{
|
||||
"name": "tecnickcom/tcpdf",
|
||||
@@ -6972,6 +7067,7 @@
|
||||
"keywords": [
|
||||
"tokenizer"
|
||||
],
|
||||
"abandoned": true,
|
||||
"time": "2017-11-27T05:48:46+00:00"
|
||||
},
|
||||
{
|
||||
@@ -7682,16 +7778,16 @@
|
||||
},
|
||||
{
|
||||
"name": "symfony/yaml",
|
||||
"version": "v4.4.13",
|
||||
"version": "v4.4.15",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/symfony/yaml.git",
|
||||
"reference": "e2a69525b11a33be51cb00b8d6d13a9258a296b1"
|
||||
"reference": "c7885964b1eceb70b0981556d0a9b01d2d97c8d1"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/e2a69525b11a33be51cb00b8d6d13a9258a296b1",
|
||||
"reference": "e2a69525b11a33be51cb00b8d6d13a9258a296b1",
|
||||
"url": "https://api.github.com/repos/symfony/yaml/zipball/c7885964b1eceb70b0981556d0a9b01d2d97c8d1",
|
||||
"reference": "c7885964b1eceb70b0981556d0a9b01d2d97c8d1",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
@@ -7751,7 +7847,7 @@
|
||||
"type": "tidelift"
|
||||
}
|
||||
],
|
||||
"time": "2020-08-26T08:30:46+00:00"
|
||||
"time": "2020-09-27T03:36:23+00:00"
|
||||
},
|
||||
{
|
||||
"name": "webmozart/assert",
|
||||
|
||||
@@ -2731,4 +2731,67 @@ class Bootstrap
|
||||
}
|
||||
set_include_path(get_include_path() . PATH_SEPARATOR . PATH_DATA_SITE);
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated since version 3.5.3
|
||||
*/
|
||||
public static function registerMonolog(
|
||||
$channel,
|
||||
$level,
|
||||
$message,
|
||||
$context,
|
||||
$workspace = '',
|
||||
$file = 'processmaker.log',
|
||||
$readLoggingLevel = true
|
||||
)
|
||||
{
|
||||
$level = intval($level);
|
||||
$context = is_array($context) ? $context : [];
|
||||
switch ($level) {
|
||||
case 100:
|
||||
Log::channel(':' . $channel)->debug($message, Bootstrap::context($context));
|
||||
break;
|
||||
default://200
|
||||
Log::channel(':' . $channel)->info($message, Bootstrap::context($context));
|
||||
break;
|
||||
case 250:
|
||||
Log::channel(':' . $channel)->notice($message, Bootstrap::context($context));
|
||||
break;
|
||||
case 300:
|
||||
Log::channel(':' . $channel)->warning($message, Bootstrap::context($context));
|
||||
break;
|
||||
case 400:
|
||||
Log::channel(':' . $channel)->error($message, Bootstrap::context($context));
|
||||
break;
|
||||
case 500:
|
||||
Log::channel(':' . $channel)->critical($message, Bootstrap::context($context));
|
||||
break;
|
||||
case 550:
|
||||
Log::channel(':' . $channel)->alert($message, Bootstrap::context($context));
|
||||
break;
|
||||
case 600:
|
||||
Log::channel(':' . $channel)->emergency($message, Bootstrap::context($context));
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated since version 3.5.3
|
||||
*/
|
||||
public static function getDefaultContextLog()
|
||||
{
|
||||
return self::context();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated since version 3.5.3
|
||||
*/
|
||||
public static function registerMonologPhpUploadExecution($channel, $level, $message, $fileName)
|
||||
{
|
||||
$context = [
|
||||
'filename' => $fileName,
|
||||
'url' => $_SERVER["REQUEST_URI"] ?? ''
|
||||
];
|
||||
self::registerMonolog($channel, $level, $message, $context);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6219,4 +6219,17 @@ class G
|
||||
}, $string);
|
||||
return $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function is used to create a legal SQL string that you can use in an SQL statement.
|
||||
* The given string is encoded to an escaped SQL string, taking into account the current
|
||||
* character set of the connection.
|
||||
* @param string $string
|
||||
* @return string
|
||||
*/
|
||||
public static function realEscapeString(string $string): string
|
||||
{
|
||||
$resource = Propel::getConnection('workflow')->getResource();
|
||||
return mysqli_real_escape_string($resource, $string);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -4,6 +4,8 @@ namespace Tests\unit\gulliver\system;
|
||||
|
||||
use Bootstrap;
|
||||
use Faker\Factory;
|
||||
use Illuminate\Support\Facades\File;
|
||||
use ProcessMaker\Core\System;
|
||||
use Tests\TestCase;
|
||||
|
||||
class BootstrapTest extends TestCase
|
||||
@@ -62,4 +64,78 @@ class BootstrapTest extends TestCase
|
||||
//add more assertions
|
||||
$this->assertRegexp("/{$filename}/", $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* Return logging level code.
|
||||
*/
|
||||
public function levelCode()
|
||||
{
|
||||
//the level record depends on env.ini, by default the records are shown
|
||||
//starting from info (200) and the debug level (100) is excluded.
|
||||
return[
|
||||
[200],
|
||||
[250],
|
||||
[300],
|
||||
[400],
|
||||
[500],
|
||||
[550],
|
||||
[600]
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* This test the registerMonolog method.
|
||||
* @test
|
||||
* @covers Bootstrap::registerMonolog()
|
||||
* @dataProvider levelCode
|
||||
*/
|
||||
public function it_should_test_registerMonolog_method($level)
|
||||
{
|
||||
$channel = 'test';
|
||||
$message = 'test';
|
||||
$context = [];
|
||||
Bootstrap::registerMonolog($channel, $level, $message, $context);
|
||||
|
||||
$result = '';
|
||||
$files = File::allFiles(PATH_DATA_SITE . '/log');
|
||||
foreach ($files as $value) {
|
||||
$result = $result . File::get($value->getPathname());
|
||||
}
|
||||
$this->assertRegExp("/{$channel}/", $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* This test the getDefaultContextLog method.
|
||||
* @test
|
||||
* @covers Bootstrap::getDefaultContextLog()
|
||||
*/
|
||||
public function it_should_test_getDefaultContextLog_method()
|
||||
{
|
||||
$result = Bootstrap::getDefaultContextLog();
|
||||
$this->assertArrayHasKey('ip', $result);
|
||||
$this->assertArrayHasKey('workspace', $result);
|
||||
$this->assertArrayHasKey('timeZone', $result);
|
||||
$this->assertArrayHasKey('usrUid', $result);
|
||||
}
|
||||
|
||||
/**
|
||||
* This test the registerMonologPhpUploadExecution method.
|
||||
* @test
|
||||
* @covers Bootstrap::registerMonologPhpUploadExecution()
|
||||
* @dataProvider levelCode
|
||||
*/
|
||||
public function it_should_test_registerMonologPhpUploadExecution_method($level)
|
||||
{
|
||||
$channel = 'test';
|
||||
$message = 'test';
|
||||
$fileName = 'test';
|
||||
Bootstrap::registerMonologPhpUploadExecution($channel, $level, $message, $fileName);
|
||||
|
||||
$result = '';
|
||||
$files = File::allFiles(PATH_DATA_SITE . '/log');
|
||||
foreach ($files as $value) {
|
||||
$result = $result . File::get($value->getPathname());
|
||||
}
|
||||
$this->assertRegExp("/{$channel}/", $result);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
|
||||
namespace Tests\unit\gulliver\system;
|
||||
|
||||
use Faker\Factory;
|
||||
use G;
|
||||
use MonologProvider;
|
||||
use Tests\TestCase;
|
||||
|
||||
/**
|
||||
@@ -11,6 +11,16 @@ use Tests\TestCase;
|
||||
*/
|
||||
class gTest extends TestCase
|
||||
{
|
||||
|
||||
/**
|
||||
* Set up method.
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->faker = Factory::create();
|
||||
}
|
||||
|
||||
/**
|
||||
* It tests that the new words added to the array are present
|
||||
*
|
||||
@@ -373,4 +383,17 @@ class gTest extends TestCase
|
||||
G::logTriggerExecution($data, '', '', 100);
|
||||
$this->assertFalse($_SESSION['_DATA_TRIGGER_']['_TRI_LOG_']);
|
||||
}
|
||||
|
||||
/**
|
||||
* This test the realEscapeString method.
|
||||
* @test
|
||||
* @covers G::realEscapeString()
|
||||
*/
|
||||
public function it_should_test_realEscapeString_method()
|
||||
{
|
||||
$string = $this->faker->word;
|
||||
$result = G::realEscapeString($string);
|
||||
|
||||
$this->assertNotEmpty($result);
|
||||
}
|
||||
}
|
||||
@@ -3,6 +3,7 @@
|
||||
namespace Tests\unit\workflow\engine\classes;
|
||||
|
||||
use Cases;
|
||||
use Exception;
|
||||
use ProcessMaker\Model\Application;
|
||||
use ProcessMaker\Model\Delegation;
|
||||
use ProcessMaker\Model\Process;
|
||||
@@ -244,7 +245,7 @@ class CasesTest extends TestCase
|
||||
public function it_should_test_get_next_step_method_step_exception()
|
||||
{
|
||||
$cases = new Cases();
|
||||
$this->expectExceptionMessage("The Application row '' doesn't exist!");
|
||||
$this->expectException(Exception::class);
|
||||
$res = $cases->getNextStep();
|
||||
}
|
||||
|
||||
|
||||
@@ -1120,6 +1120,6 @@ class WsBaseTest extends TestCase
|
||||
$ws = new WsBase();
|
||||
$response = (object) $ws->cancelCase($fakeApp, $delegation->DEL_INDEX, $delegation->USR_UID);
|
||||
$this->assertEquals($response->status_code, 100);
|
||||
$this->assertEquals($response->message, "The Application row '$fakeApp' doesn't exist!");
|
||||
$this->assertContains($fakeApp, $response->message);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\unit\workflow\engine\classes\model;
|
||||
|
||||
use Criteria;
|
||||
use Faker\Factory;
|
||||
use ListCanceled;
|
||||
use ProcessMaker\Model\Delegation;
|
||||
use Tests\TestCase;
|
||||
|
||||
class ListCanceledTest extends TestCase
|
||||
{
|
||||
private $listCanceled;
|
||||
|
||||
/**
|
||||
* Set up method.
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->faker = Factory::create();
|
||||
$this->listCanceled = new ListCanceled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tear down method,
|
||||
*/
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @covers ListCanceled::loadFilters()
|
||||
*/
|
||||
public function it_should_test_loadFilters_method()
|
||||
{
|
||||
$delegation = factory(Delegation::class)->create([
|
||||
'DEL_THREAD_STATUS' => 'CLOSED',
|
||||
]);
|
||||
|
||||
$criteria = new Criteria('workflow');
|
||||
$filters = [
|
||||
'filter' => '',
|
||||
'search' => $delegation->application->APP_UID,
|
||||
'process' => $delegation->process->PRO_UID,
|
||||
'category' => $delegation->process->PRO_CATEGORY,
|
||||
'dateFrom' => '',
|
||||
'dateTo' => ''
|
||||
];
|
||||
$this->listCanceled->loadFilters($criteria, $filters);
|
||||
$joinsMC = $criteria->getJoinsMC();
|
||||
|
||||
$this->assertNotEmpty($joinsMC);
|
||||
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
|
||||
|
||||
$expected = [
|
||||
'PROCESS.PRO_CATEGORY',
|
||||
"'{$filters['category']}'"
|
||||
];
|
||||
$this->assertContains($expected, $joinsMC[0]->conditions);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,67 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\unit\workflow\engine\classes\model;
|
||||
|
||||
use Criteria;
|
||||
use Faker\Factory;
|
||||
use ListCompleted;
|
||||
use ProcessMaker\Model\Delegation;
|
||||
use Tests\TestCase;
|
||||
|
||||
class ListCompletedTest extends TestCase
|
||||
{
|
||||
private $listCompleted;
|
||||
|
||||
/**
|
||||
* Set up method.
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->faker = Factory::create();
|
||||
$this->listCompleted = new ListCompleted();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tear down method,
|
||||
*/
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @covers ListCompleted::loadFilters()
|
||||
*/
|
||||
public function it_should_test_loadFilters_method()
|
||||
{
|
||||
$delegation = factory(Delegation::class)->create([
|
||||
'DEL_THREAD_STATUS' => 'CLOSED',
|
||||
]);
|
||||
|
||||
$criteria = new Criteria('workflow');
|
||||
|
||||
//the ListCompleted contains fields that were removed (DEL_DELEGATE_DATE,DEL_INIT_DATE) but are still used,
|
||||
//these places are not reachable in code coverage.
|
||||
$filters = [
|
||||
'filter' => '', //read,unread
|
||||
'search' => $delegation->application->APP_UID,
|
||||
'process' => $delegation->process->PRO_UID,
|
||||
'category' => $delegation->process->PRO_CATEGORY,
|
||||
'dateFrom' => '',
|
||||
'dateTo' => ''
|
||||
];
|
||||
$this->listCompleted->loadFilters($criteria, $filters);
|
||||
$joinsMC = $criteria->getJoinsMC();
|
||||
|
||||
$this->assertNotEmpty($joinsMC);
|
||||
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
|
||||
|
||||
$expected = [
|
||||
'PROCESS.PRO_CATEGORY',
|
||||
"'{$filters['category']}'"
|
||||
];
|
||||
$this->assertContains($expected, $joinsMC[0]->conditions);
|
||||
}
|
||||
}
|
||||
71
tests/unit/workflow/engine/classes/model/ListInboxTest.php
Normal file
71
tests/unit/workflow/engine/classes/model/ListInboxTest.php
Normal file
@@ -0,0 +1,71 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\unit\workflow\engine\classes\model;
|
||||
|
||||
use Criteria;
|
||||
use Faker\Factory;
|
||||
use ListInbox;
|
||||
use ProcessMaker\Model\Delegation;
|
||||
use Tests\TestCase;
|
||||
|
||||
class ListInboxTest extends TestCase
|
||||
{
|
||||
private $listInbox;
|
||||
|
||||
/**
|
||||
* Set up method.
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->faker = Factory::create();
|
||||
$this->listInbox = new ListInbox();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tear down method,
|
||||
*/
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @covers ListInbox::loadFilters()
|
||||
*/
|
||||
public function it_should_test_loadFilters_method()
|
||||
{
|
||||
$delegation = factory(Delegation::class)->create([
|
||||
'DEL_THREAD_STATUS' => 'CLOSED',
|
||||
]);
|
||||
|
||||
$criteria = new Criteria('workflow');
|
||||
$filters = [
|
||||
'action' => 'draft', //draft,to_revise,to_reassign
|
||||
'usr_uid' => $delegation->user->USR_UID,
|
||||
'filter' => '',
|
||||
'search' => $delegation->application->APP_UID,
|
||||
'caseLink' => $delegation->application->APP_UID,
|
||||
'process' => $delegation->process->PRO_UID,
|
||||
'category' => $delegation->process->PRO_CATEGORY,
|
||||
'dateFrom' => '',
|
||||
'dateTo' => '',
|
||||
'filterStatus' => 'ON_TIME', //ON_TIME,AT_RISK,OVERDUE
|
||||
'newestthan' => $delegation->DEL_DELEGATE_DATE->format('Y-m-d H:i:s'),
|
||||
'oldestthan' => $delegation->DEL_DELEGATE_DATE->format('Y-m-d H:i:s'),
|
||||
'appUidCheck' => $delegation->application->APP_UID
|
||||
];
|
||||
$this->listInbox->loadFilters($criteria, $filters);
|
||||
$joinsMC = $criteria->getJoinsMC();
|
||||
|
||||
$this->assertNotEmpty($joinsMC);
|
||||
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
|
||||
|
||||
$expected = [
|
||||
'PROCESS.PRO_CATEGORY',
|
||||
"'{$filters['category']}'"
|
||||
];
|
||||
$this->assertContains($expected, $joinsMC[0]->conditions);
|
||||
}
|
||||
}
|
||||
64
tests/unit/workflow/engine/classes/model/ListMyInboxTest.php
Normal file
64
tests/unit/workflow/engine/classes/model/ListMyInboxTest.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\unit\workflow\engine\classes\model;
|
||||
|
||||
use Criteria;
|
||||
use Faker\Factory;
|
||||
use ListMyInbox;
|
||||
use ProcessMaker\Model\Delegation;
|
||||
use Tests\TestCase;
|
||||
|
||||
class ListMyInboxTest extends TestCase
|
||||
{
|
||||
private $listMyInbox;
|
||||
|
||||
/**
|
||||
* Set up method.
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->faker = Factory::create();
|
||||
$this->listMyInbox = new ListMyInbox();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tear down method,
|
||||
*/
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @covers ListMyInbox::loadFilters()
|
||||
*/
|
||||
public function it_should_test_loadFilters_method()
|
||||
{
|
||||
$delegation = factory(Delegation::class)->create([
|
||||
'DEL_THREAD_STATUS' => 'CLOSED',
|
||||
]);
|
||||
|
||||
$criteria = new Criteria('workflow');
|
||||
$filters = [
|
||||
'filter' => '',
|
||||
'search' => $delegation->application->APP_UID,
|
||||
'process' => $delegation->process->PRO_UID,
|
||||
'category' => $delegation->process->PRO_CATEGORY,
|
||||
'dateFrom' => '',
|
||||
'dateTo' => ''
|
||||
];
|
||||
$this->listMyInbox->loadFilters($criteria, $filters);
|
||||
$joinsMC = $criteria->getJoinsMC();
|
||||
|
||||
$this->assertNotEmpty($joinsMC);
|
||||
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
|
||||
|
||||
$expected = [
|
||||
'PROCESS.PRO_CATEGORY',
|
||||
"'{$filters['category']}'"
|
||||
];
|
||||
$this->assertContains($expected, $joinsMC[0]->conditions);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\unit\workflow\engine\classes\model;
|
||||
|
||||
use Criteria;
|
||||
use Faker\Factory;
|
||||
use ListParticipatedHistory;
|
||||
use ProcessMaker\Model\Delegation;
|
||||
use Tests\TestCase;
|
||||
|
||||
class ListParticipatedHistoryTest extends TestCase
|
||||
{
|
||||
private $listParticipatedHistory;
|
||||
|
||||
/**
|
||||
* Set up method.
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->faker = Factory::create();
|
||||
$this->listParticipatedHistory = new ListParticipatedHistory();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tear down method,
|
||||
*/
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @covers ListParticipatedHistory::loadFilters()
|
||||
*/
|
||||
public function it_should_test_loadFilters_method()
|
||||
{
|
||||
$delegation = factory(Delegation::class)->create([
|
||||
'DEL_THREAD_STATUS' => 'CLOSED',
|
||||
]);
|
||||
|
||||
$criteria = new Criteria('workflow');
|
||||
$filters = [
|
||||
'filter' => '',
|
||||
'search' => $delegation->application->APP_UID,
|
||||
'process' => $delegation->process->PRO_UID,
|
||||
'category' => $delegation->process->PRO_CATEGORY,
|
||||
'dateFrom' => '',
|
||||
'dateTo' => ''
|
||||
];
|
||||
$this->listParticipatedHistory->loadFilters($criteria, $filters);
|
||||
$joinsMC = $criteria->getJoinsMC();
|
||||
|
||||
$this->assertNotEmpty($joinsMC);
|
||||
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
|
||||
|
||||
$expected = [
|
||||
'PROCESS.PRO_CATEGORY',
|
||||
"'{$filters['category']}'"
|
||||
];
|
||||
$this->assertContains($expected, $joinsMC[0]->conditions);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\unit\workflow\engine\classes\model;
|
||||
|
||||
use Criteria;
|
||||
use Faker\Factory;
|
||||
use ListParticipatedLast;
|
||||
use ProcessMaker\Model\Delegation;
|
||||
use Tests\TestCase;
|
||||
|
||||
class ListParticipatedLastTest extends TestCase
|
||||
{
|
||||
private $listParticipatedLast;
|
||||
|
||||
/**
|
||||
* Set up method.
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->faker = Factory::create();
|
||||
$this->listParticipatedLast = new ListParticipatedLast();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tear down method,
|
||||
*/
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @covers ListParticipatedLast::loadFilters()
|
||||
*/
|
||||
public function it_should_test_loadFilters_method()
|
||||
{
|
||||
$delegation = factory(Delegation::class)->create([
|
||||
'DEL_THREAD_STATUS' => 'CLOSED',
|
||||
]);
|
||||
|
||||
$criteria = new Criteria('workflow');
|
||||
$filters = [
|
||||
'filter' => '',
|
||||
'search' => $delegation->application->APP_UID,
|
||||
'caseLink' => $delegation->application->APP_UID,
|
||||
'process' => $delegation->process->PRO_UID,
|
||||
'category' => $delegation->process->PRO_CATEGORY,
|
||||
'dateFrom' => '',
|
||||
'dateTo' => '',
|
||||
'filterStatus' => 'ON_TIME', //ON_TIME,AT_RISK,OVERDUE
|
||||
'newestthan' => $delegation->DEL_DELEGATE_DATE->format('Y-m-d H:i:s'),
|
||||
'oldestthan' => $delegation->DEL_DELEGATE_DATE->format('Y-m-d H:i:s')
|
||||
];
|
||||
$this->listParticipatedLast->loadFilters($criteria, $filters);
|
||||
$joinsMC = $criteria->getJoinsMC();
|
||||
|
||||
$this->assertNotEmpty($joinsMC);
|
||||
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
|
||||
|
||||
$expected = [
|
||||
'PROCESS.PRO_CATEGORY',
|
||||
"'{$filters['category']}'"
|
||||
];
|
||||
$this->assertContains($expected, $joinsMC[0]->conditions);
|
||||
}
|
||||
}
|
||||
64
tests/unit/workflow/engine/classes/model/ListPausedTest.php
Normal file
64
tests/unit/workflow/engine/classes/model/ListPausedTest.php
Normal file
@@ -0,0 +1,64 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\unit\workflow\engine\classes\model;
|
||||
|
||||
use Criteria;
|
||||
use Faker\Factory;
|
||||
use ListPaused;
|
||||
use ProcessMaker\Model\Delegation;
|
||||
use Tests\TestCase;
|
||||
|
||||
class ListPausedTest extends TestCase
|
||||
{
|
||||
private $listPaused;
|
||||
|
||||
/**
|
||||
* Set up method.
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->faker = Factory::create();
|
||||
$this->listPaused = new ListPaused();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tear down method,
|
||||
*/
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @covers ListPaused::loadFilters()
|
||||
*/
|
||||
public function it_should_test_loadFilters_method()
|
||||
{
|
||||
$delegation = factory(Delegation::class)->create([
|
||||
'DEL_THREAD_STATUS' => 'CLOSED',
|
||||
]);
|
||||
|
||||
$criteria = new Criteria('workflow');
|
||||
$filters = [
|
||||
'filter' => '',
|
||||
'search' => $delegation->application->APP_UID,
|
||||
'caseLink' => $delegation->application->APP_UID,
|
||||
'process' => $delegation->process->PRO_UID,
|
||||
'category' => $delegation->process->PRO_CATEGORY,
|
||||
'filterStatus' => 'ON_TIME' //ON_TIME,AT_RISK,OVERDUE
|
||||
];
|
||||
$this->listPaused->loadFilters($criteria, $filters);
|
||||
$joinsMC = $criteria->getJoinsMC();
|
||||
|
||||
$this->assertNotEmpty($joinsMC);
|
||||
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
|
||||
|
||||
$expected = [
|
||||
'PROCESS.PRO_CATEGORY',
|
||||
"'{$filters['category']}'"
|
||||
];
|
||||
$this->assertContains($expected, $joinsMC[0]->conditions);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
<?php
|
||||
|
||||
namespace Tests\unit\workflow\engine\classes\model;
|
||||
|
||||
use Criteria;
|
||||
use Faker\Factory;
|
||||
use ListUnassigned;
|
||||
use ProcessMaker\Model\Delegation;
|
||||
use Tests\TestCase;
|
||||
|
||||
class ListUnassignedTest extends TestCase
|
||||
{
|
||||
private $listUnassigned;
|
||||
|
||||
/**
|
||||
* Set up method.
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->faker = Factory::create();
|
||||
$this->listUnassigned = new ListUnassigned();
|
||||
}
|
||||
|
||||
/**
|
||||
* Tear down method,
|
||||
*/
|
||||
public function tearDown()
|
||||
{
|
||||
parent::tearDown();
|
||||
}
|
||||
|
||||
/**
|
||||
* @test
|
||||
* @covers ListUnassigned::loadFilters()
|
||||
*/
|
||||
public function it_should_test_loadFilters_method()
|
||||
{
|
||||
$delegation = factory(Delegation::class)->create([
|
||||
'DEL_THREAD_STATUS' => 'CLOSED',
|
||||
]);
|
||||
|
||||
$criteria = new Criteria('workflow');
|
||||
$filters = [
|
||||
'filter' => '',
|
||||
'search' => $delegation->application->APP_UID,
|
||||
'caseLink' => $delegation->application->APP_UID,
|
||||
'process' => $delegation->process->PRO_UID,
|
||||
'category' => $delegation->process->PRO_CATEGORY,
|
||||
'newestthan' => $delegation->DEL_DELEGATE_DATE->format('Y-m-d H:i:s'),
|
||||
'oldestthan' => $delegation->DEL_DELEGATE_DATE->format('Y-m-d H:i:s'),
|
||||
'appUidCheck' => $delegation->application->APP_UID
|
||||
];
|
||||
$this->listUnassigned->loadFilters($criteria, $filters);
|
||||
$joinsMC = $criteria->getJoinsMC();
|
||||
|
||||
$this->assertNotEmpty($joinsMC);
|
||||
$this->assertObjectHasAttribute('conditions', $joinsMC[0]);
|
||||
|
||||
$expected = [
|
||||
'PROCESS.PRO_CATEGORY',
|
||||
"'{$filters['category']}'"
|
||||
];
|
||||
$this->assertContains($expected, $joinsMC[0]->conditions);
|
||||
}
|
||||
}
|
||||
@@ -268,13 +268,13 @@ class GmailOAuthTest extends TestCase
|
||||
$result = $gmailOauth->sendTestMailWithPHPMailerOAuth();
|
||||
$this->assertTrue($result instanceof PHPMailerOAuth);
|
||||
|
||||
$this->expectException(Exception::class);
|
||||
$gmailOauth = new GmailOAuth();
|
||||
$gmailOauth->setFromAccount($faker->email);
|
||||
$gmailOauth->setSenderEmail("");
|
||||
$gmailOauth->setSenderEmail($faker->email);
|
||||
$gmailOauth->setMailTo($faker->email);
|
||||
$gmailOauth->setSendTestMail(1);
|
||||
$result = $gmailOauth->sendTestMailWithPHPMailerOAuth();
|
||||
$this->assertTrue($result instanceof PHPMailerOAuth);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -16,6 +16,15 @@ use Tests\TestCase;
|
||||
*/
|
||||
class ListUnassignedTest extends TestCase
|
||||
{
|
||||
/**
|
||||
* Method set up.
|
||||
*/
|
||||
public function setUp()
|
||||
{
|
||||
parent::setUp();
|
||||
$this->markTestIncomplete();
|
||||
}
|
||||
|
||||
/**
|
||||
* This checks to make sure pagination is working properly
|
||||
*
|
||||
|
||||
@@ -569,7 +569,7 @@ class Cases
|
||||
}
|
||||
}
|
||||
return $fields;
|
||||
} catch (exception $e) {
|
||||
} catch (Exception $e) {
|
||||
throw ($e);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -199,7 +199,7 @@ class Application extends BaseApplication
|
||||
|
||||
return $aFields;
|
||||
} else {
|
||||
throw (new Exception("The Application row '$AppUid' doesn't exist!"));
|
||||
throw (new Exception(htmlentities("The Application row '$AppUid' doesn't exist!", ENT_QUOTES, "UTF-8")));
|
||||
}
|
||||
} catch (Exception $oError) {
|
||||
throw ($oError);
|
||||
|
||||
@@ -254,7 +254,7 @@ class ListCanceled extends BaseListCanceled implements ListInterface
|
||||
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
|
||||
$aConditions = array();
|
||||
$aConditions[] = array(ListCanceledPeer::PRO_UID, ProcessPeer::PRO_UID);
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'");
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
|
||||
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
|
||||
}
|
||||
|
||||
|
||||
@@ -233,7 +233,7 @@ class ListCompleted extends BaseListCompleted implements ListInterface
|
||||
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
|
||||
$aConditions = array();
|
||||
$aConditions[] = array(ListCompletedPeer::PRO_UID, ProcessPeer::PRO_UID);
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'");
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
|
||||
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
|
||||
}
|
||||
|
||||
|
||||
@@ -513,7 +513,7 @@ class ListInbox extends BaseListInbox implements ListInterface
|
||||
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
|
||||
$aConditions = array();
|
||||
$aConditions[] = array(ListInboxPeer::PRO_UID, ProcessPeer::PRO_UID);
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'");
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
|
||||
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
|
||||
}
|
||||
//Those filters: $newestthan, $oldestthan is used from mobile GET /light/todo
|
||||
|
||||
@@ -210,7 +210,7 @@ class ListMyInbox extends BaseListMyInbox implements ListInterface
|
||||
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
|
||||
$aConditions = array();
|
||||
$aConditions[] = array(ListMyInboxPeer::PRO_UID, ProcessPeer::PRO_UID);
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'");
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
|
||||
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
|
||||
}
|
||||
|
||||
|
||||
@@ -165,7 +165,7 @@ class ListParticipatedHistory extends BaseListParticipatedHistory implements Lis
|
||||
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
|
||||
$aConditions = array();
|
||||
$aConditions[] = array(ListParticipatedHistoryPeer::PRO_UID, ProcessPeer::PRO_UID);
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'");
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
|
||||
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
|
||||
}
|
||||
|
||||
|
||||
@@ -351,7 +351,7 @@ class ListParticipatedLast extends BaseListParticipatedLast implements ListInter
|
||||
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
|
||||
$aConditions = array();
|
||||
$aConditions[] = array(ListParticipatedLastPeer::PRO_UID, ProcessPeer::PRO_UID);
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'".$category."'");
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
|
||||
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
|
||||
}
|
||||
|
||||
|
||||
@@ -270,7 +270,7 @@ class ListPaused extends BaseListPaused implements ListInterface
|
||||
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
|
||||
$aConditions = array();
|
||||
$aConditions[] = array(ListPausedPeer::PRO_UID, ProcessPeer::PRO_UID);
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'");
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
|
||||
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
|
||||
require_once 'classes/model/om/BaseListUnassigned.php';
|
||||
|
||||
use ProcessMaker\Model\Delegation;
|
||||
|
||||
|
||||
/**
|
||||
* Skeleton subclass for representing a row from the 'LIST_UNASSIGNED' table.
|
||||
@@ -207,7 +209,7 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
|
||||
$criteria->addSelectColumn(ProcessPeer::PRO_CATEGORY);
|
||||
$aConditions = array();
|
||||
$aConditions[] = array(ListUnassignedPeer::PRO_UID, ProcessPeer::PRO_UID);
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . $category . "'");
|
||||
$aConditions[] = array(ProcessPeer::PRO_CATEGORY, "'" . G::realEscapeString($category) . "'");
|
||||
$criteria->addJoinMC($aConditions, Criteria::INNER_JOIN);
|
||||
}
|
||||
|
||||
@@ -232,19 +234,86 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
|
||||
|
||||
/**
|
||||
* This function get the information in the corresponding cases list
|
||||
* @param string $usr_uid, must be show cases related to this user
|
||||
*
|
||||
* @param string $usrUid, must be show cases related to this user
|
||||
* @param array $filters for apply in the result
|
||||
* @param callable $callbackRecord
|
||||
* @return array $data
|
||||
* @throws PropelException
|
||||
*/
|
||||
public function loadList($usr_uid, $filters = array(), callable $callbackRecord = null)
|
||||
public function loadList($usrUid, $filters = [], callable $callbackRecord = null)
|
||||
{
|
||||
// Get criteria base and the additional columns
|
||||
$pmTable = new PmTable();
|
||||
$criteria = $pmTable->addPMFieldsToList('unassigned');
|
||||
$this->setAdditionalClassName($pmTable->tableClassName);
|
||||
$additionalColumns = $criteria->getSelectColumns();
|
||||
|
||||
// Check if exists the custom cases list configured for the unassigned list, if NOT exists we're using the new improved query
|
||||
if (empty($additionalColumns)) {
|
||||
// Initialize required parameters
|
||||
$selectedColumns = [
|
||||
// APP_DELEGATION table
|
||||
'APP_DELEGATION.APP_NUMBER',
|
||||
'APP_DELEGATION.DEL_INDEX',
|
||||
'APP_DELEGATION.APP_UID',
|
||||
'APP_DELEGATION.TAS_UID',
|
||||
'APP_DELEGATION.PRO_UID',
|
||||
'APP_DELEGATION.DEL_DELEGATE_DATE',
|
||||
'APP_DELEGATION.DEL_TASK_DUE_DATE',
|
||||
'APP_DELEGATION.DEL_PRIORITY',
|
||||
'APP_DELEGATION.DEL_PREVIOUS',
|
||||
// TASK table
|
||||
'TASK.TAS_TITLE',
|
||||
// APPLICATION table
|
||||
'APPLICATION.APP_TITLE',
|
||||
'APPLICATION.APP_UPDATE_DATE',
|
||||
// PROCESS table
|
||||
'PROCESS.PRO_TITLE'
|
||||
];
|
||||
$sortMap = [
|
||||
'APP_NUMBER' => 'APP_NUMBER',
|
||||
'DEL_DUE_DATE' => 'DEL_TASK_DUE_DATE',
|
||||
'DEL_DELEGATE_DATE' => 'DEL_DELEGATE_DATE',
|
||||
'APP_TITLE' => 'APP_TITLE',
|
||||
'APP_PRO_TITLE' => 'PRO_TITLE',
|
||||
'APP_TAS_TITLE' => 'TAS_TITLE',
|
||||
'DEL_PREVIOUS_USR_UID' => 'USR_ID'
|
||||
];
|
||||
$categoryUid = $filters['category'] ?? null;
|
||||
$processUid = $filters['process'] ?? null;
|
||||
$textToSearch = $filters['search'] ?? null;
|
||||
$sort = $sortMap[$filters['sort']] ?? null;
|
||||
$dir = $filters['dir'] ?? null;
|
||||
$offset = $filters['start'] ?? null;
|
||||
$limit = $filters['limit'] ?? null;
|
||||
|
||||
// Get data
|
||||
$data = Delegation::getSelfService($usrUid, $selectedColumns, $categoryUid, $processUid, $textToSearch, $sort, $dir, $offset, $limit);
|
||||
|
||||
// Transform and complete the data
|
||||
foreach ($data as &$row) {
|
||||
$row = is_null($callbackRecord) ? $row : $callbackRecord($row);
|
||||
}
|
||||
} else {
|
||||
// Use the old Propel query that is compatible with the custom cases list
|
||||
$data = $this->loadListWithAdditionalColumns($criteria, $usrUid, $filters, $additionalColumns, $callbackRecord);
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the data for unassigned list with the information of additional columns
|
||||
*
|
||||
* @param object $criteria
|
||||
* @param string $usr_uid
|
||||
* @param array $filters
|
||||
* @param array $additionalColumns
|
||||
* @param callable $callbackRecord
|
||||
* @return array
|
||||
*/
|
||||
private function loadListWithAdditionalColumns($criteria, $usr_uid, $filters, $additionalColumns, callable $callbackRecord)
|
||||
{
|
||||
$criteria->addSelectColumn(ListUnassignedPeer::APP_UID);
|
||||
$criteria->addSelectColumn(ListUnassignedPeer::DEL_INDEX);
|
||||
$criteria->addSelectColumn(ListUnassignedPeer::TAS_UID);
|
||||
@@ -460,17 +529,20 @@ class ListUnassigned extends BaseListUnassigned implements ListInterface
|
||||
/**
|
||||
* Returns the number of cases of a user
|
||||
*
|
||||
* @param string $userUid
|
||||
* @param string $usrUid
|
||||
* @param array $filters
|
||||
*
|
||||
* @return int $total
|
||||
*/
|
||||
public function getCountList($userUid, $filters = array())
|
||||
public function getCountList($usrUid, $filters = [])
|
||||
{
|
||||
$criteria = new Criteria('workflow');
|
||||
$this->getCriteriaWhereSelfService($criteria, $userUid);
|
||||
$total = ListUnassignedPeer::doCount($criteria);
|
||||
return (int)$total;
|
||||
// Initialize required parameters
|
||||
$categoryUid = $filters['category'] ?? null;
|
||||
$processUid = $filters['process'] ?? null;
|
||||
$textToSearch = $filters['search'] ?? null;
|
||||
|
||||
// Get counter
|
||||
return Delegation::countSelfService($usrUid, $categoryUid, $processUid, $textToSearch);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
use ProcessMaker\Model\User;
|
||||
|
||||
if (!isset($_SESSION['USER_LOGGED'])) {
|
||||
$responseObject = new stdclass();
|
||||
$responseObject->error = G::LoadTranslation('ID_LOGIN_AGAIN');
|
||||
@@ -156,6 +158,12 @@ try {
|
||||
$record["PREVIOUS_USR_USERNAME"] = $record["DEL_PREVIOUS_USR_USERNAME"];
|
||||
$record["PREVIOUS_USR_FIRSTNAME"] = $record["DEL_PREVIOUS_USR_FIRSTNAME"];
|
||||
$record["PREVIOUS_USR_LASTNAME"] = $record["DEL_PREVIOUS_USR_LASTNAME"];
|
||||
} elseif (!empty($record["USR_ID"])) {
|
||||
$user = User::where("USR_ID", $record["USR_ID"])->first();
|
||||
$record["PREVIOUS_USR_UID"] = $record["DEL_PREVIOUS_USR_UID"] = $user->USR_UID;
|
||||
$record["PREVIOUS_USR_USERNAME"] = $record["DEL_PREVIOUS_USR_USERNAME"] = $user->USR_USERNAME;
|
||||
$record["PREVIOUS_USR_FIRSTNAME"] = $record["DEL_PREVIOUS_USR_FIRSTNAME"] = $user->USR_FIRSTNAME;
|
||||
$record["PREVIOUS_USR_LASTNAME"] = $record["DEL_PREVIOUS_USR_LASTNAME"] = $user->USR_LASTNAME;
|
||||
}
|
||||
|
||||
if (isset($record["DEL_DUE_DATE"])) {
|
||||
@@ -175,12 +183,18 @@ try {
|
||||
|
||||
if (isset($record['DEL_CURRENT_TAS_TITLE']) && $record['DEL_CURRENT_TAS_TITLE'] != '') {
|
||||
$record['APP_TAS_TITLE'] = $record['DEL_CURRENT_TAS_TITLE'];
|
||||
} elseif (!empty($record["TAS_TITLE"]) && empty($record["APP_TAS_TITLE"])) {
|
||||
$record["APP_TAS_TITLE"] = $record["TAS_TITLE"];
|
||||
}
|
||||
|
||||
if (isset($record["APP_STATUS"])) {
|
||||
$record["APP_STATUS_LABEL"] = G::LoadTranslation("ID_" . $record["APP_STATUS"]);
|
||||
}
|
||||
|
||||
if (!empty($record["PRO_TITLE"]) && empty($record["APP_PRO_TITLE"])) {
|
||||
$record["APP_PRO_TITLE"] = $record["PRO_TITLE"];
|
||||
}
|
||||
|
||||
return $record;
|
||||
} catch (Exception $e) {
|
||||
throw $e;
|
||||
|
||||
@@ -133,6 +133,8 @@ switch ($req) {
|
||||
$row = $result->getRow();
|
||||
$row['APP_MSG_STATUS'] = ucfirst($row['APP_MSG_STATUS']);
|
||||
$row['APP_MSG_DATE'] = DateTime::convertUtcToTimeZone($row['APP_MSG_DATE']);
|
||||
$row['APP_MSG_TO'] = htmlentities($row['APP_MSG_TO'], ENT_HTML5, "UTF-8");
|
||||
$row['APP_MSG_ERROR'] = htmlentities($row['APP_MSG_ERROR'], ENT_HTML5, "UTF-8");
|
||||
|
||||
switch ($filterBy) {
|
||||
case 'CASES':
|
||||
|
||||
@@ -187,7 +187,7 @@ class Delegation extends Model
|
||||
*/
|
||||
public function scopeIsThreadOpen($query)
|
||||
{
|
||||
return $query->where('DEL_THREAD_STATUS', '=', 'OPEN');
|
||||
return $query->where('APP_DELEGATION.DEL_THREAD_STATUS', '=', 'OPEN');
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -198,7 +198,7 @@ class Delegation extends Model
|
||||
*/
|
||||
public function scopeNoUserInThread($query)
|
||||
{
|
||||
return $query->where('USR_ID', '=', 0);
|
||||
return $query->where('APP_DELEGATION.USR_ID', '=', 0);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -836,10 +836,17 @@ class Delegation extends Model
|
||||
*
|
||||
* @param string $usrUid
|
||||
* @param bool $count
|
||||
* @param array $selectedColumns
|
||||
* @param string $categoryUid
|
||||
* @param string $processUid
|
||||
* @param string $textToSearch
|
||||
* @param string $sort
|
||||
* @param string $dir
|
||||
*
|
||||
* @return \Illuminate\Database\Query\Builder
|
||||
*/
|
||||
public static function getSelfServiceQuery($usrUid, $count = false)
|
||||
public static function getSelfServiceQuery($usrUid, $count = false, $selectedColumns = ['APP_DELEGATION.APP_NUMBER', 'APP_DELEGATION.DEL_INDEX'],
|
||||
$categoryUid = null, $processUid = null, $textToSearch = null, $sort = null, $dir = null)
|
||||
{
|
||||
// Set the 'usrUid' property to preserve
|
||||
Delegation::$usrUid = $usrUid;
|
||||
@@ -856,10 +863,23 @@ class Delegation extends Model
|
||||
// Set the 'groups' property to preserve
|
||||
Delegation::$groups = $groups;
|
||||
|
||||
// Start the first query
|
||||
$query1 = Delegation::query()->select(['APP_NUMBER', 'DEL_INDEX']);
|
||||
// Add an extra column with alias if is needed to join with the previous delegation
|
||||
if (array_search('APP_DELEGATION.DEL_PREVIOUS', $selectedColumns) !== false) {
|
||||
$selectedColumns[] = 'ADP.USR_ID';
|
||||
}
|
||||
|
||||
// Add the join clause
|
||||
// Start the first query
|
||||
$query1 = Delegation::query()->select($selectedColumns);
|
||||
|
||||
// Add join clause with the previous APP_DELEGATION record if required
|
||||
if (array_search('APP_DELEGATION.DEL_PREVIOUS', $selectedColumns) !== false) {
|
||||
$query1->join('APP_DELEGATION AS ADP', function ($join) {
|
||||
$join->on('APP_DELEGATION.APP_NUMBER', '=', 'ADP.APP_NUMBER');
|
||||
$join->on('APP_DELEGATION.DEL_PREVIOUS', '=', 'ADP.DEL_INDEX');
|
||||
});
|
||||
}
|
||||
|
||||
// Add the join clause with TASK table
|
||||
$query1->join('TASK', function ($join) {
|
||||
// Build partial plain query for a complex Join, because Eloquent doesn't support this type of Join
|
||||
$complexJoin = "
|
||||
@@ -889,6 +909,33 @@ class Delegation extends Model
|
||||
whereRaw($complexJoin);
|
||||
});
|
||||
|
||||
// Add join clause with APPLICATION table if required
|
||||
if (array_search('APPLICATION.APP_TITLE', $selectedColumns) !== false || !empty($textToSearch) || $sort == 'APP_TITLE') {
|
||||
$query1->join('APPLICATION', function ($join) {
|
||||
$join->on('APP_DELEGATION.APP_NUMBER', '=', 'APPLICATION.APP_NUMBER');
|
||||
});
|
||||
}
|
||||
|
||||
// Add join clause with PROCESS table if required
|
||||
if (array_search('PROCESS.PRO_TITLE', $selectedColumns) !== false || !empty($categoryUid) || !empty($processUid) || !empty($textToSearch) || $sort == 'PRO_TITLE') {
|
||||
$query1->join('PROCESS', function ($join) use ($categoryUid, $processUid) {
|
||||
$join->on('APP_DELEGATION.PRO_ID', '=', 'PROCESS.PRO_ID');
|
||||
if (!empty($categoryUid)) {
|
||||
$join->where('PROCESS.PRO_CATEGORY', $categoryUid);
|
||||
}
|
||||
if (!empty($processUid)) {
|
||||
$join->where('PROCESS.PRO_UID', $processUid);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Build where clause for the text to search
|
||||
if (!empty($textToSearch)) {
|
||||
$query1->where('APPLICATION.APP_TITLE', 'LIKE', "%$textToSearch%")
|
||||
->orWhere('TASK.TAS_TITLE', 'LIKE', "%$textToSearch%")
|
||||
->orWhere('PROCESS.PRO_TITLE', 'LIKE', "%$textToSearch%");
|
||||
}
|
||||
|
||||
// Clean static properties
|
||||
Delegation::$usrUid = '';
|
||||
Delegation::$groups = [];
|
||||
@@ -898,17 +945,63 @@ class Delegation extends Model
|
||||
|
||||
if (!empty($selfServiceTasks)) {
|
||||
// Start the second query
|
||||
$query2 = Delegation::query()->select(['APP_NUMBER', 'DEL_INDEX']);
|
||||
$query2 = Delegation::query()->select($selectedColumns);
|
||||
$query2->tasksIn($selfServiceTasks);
|
||||
$query2->isThreadOpen();
|
||||
$query2->noUserInThread();
|
||||
|
||||
// Add join clause with the previous APP_DELEGATION record if required
|
||||
if (array_search('APP_DELEGATION.DEL_PREVIOUS', $selectedColumns) !== false) {
|
||||
$query2->join('APP_DELEGATION AS ADP', function ($join) {
|
||||
$join->on('APP_DELEGATION.APP_NUMBER', '=', 'ADP.APP_NUMBER');
|
||||
$join->on('APP_DELEGATION.DEL_PREVIOUS', '=', 'ADP.DEL_INDEX');
|
||||
});
|
||||
}
|
||||
|
||||
// Add the join clause with TASK table if required
|
||||
if (array_search('TASK.TAS_TITLE', $selectedColumns) !== false || !empty($textToSearch) || $sort == 'TAS_TITLE') {
|
||||
$query2->join('TASK', function ($join) {
|
||||
$join->on('APP_DELEGATION.TAS_ID', '=', 'TASK.TAS_ID');
|
||||
});
|
||||
|
||||
}
|
||||
// Add join clause with APPLICATION table if required
|
||||
if (array_search('APPLICATION.APP_TITLE', $selectedColumns) !== false || !empty($textToSearch) || $sort == 'APP_TITLE') {
|
||||
$query2->join('APPLICATION', function ($join) {
|
||||
$join->on('APP_DELEGATION.APP_NUMBER', '=', 'APPLICATION.APP_NUMBER');
|
||||
});
|
||||
}
|
||||
|
||||
// Add join clause with PROCESS table if required
|
||||
if (array_search('PROCESS.PRO_TITLE', $selectedColumns) !== false || !empty($categoryUid) || !empty($processUid) || !empty($textToSearch) || $sort == 'PRO_TITLE') {
|
||||
$query2->join('PROCESS', function ($join) use ($categoryUid, $processUid) {
|
||||
$join->on('APP_DELEGATION.PRO_ID', '=', 'PROCESS.PRO_ID');
|
||||
if (!empty($categoryUid)) {
|
||||
$join->where('PROCESS.PRO_CATEGORY', $categoryUid);
|
||||
}
|
||||
if (!empty($processUid)) {
|
||||
$join->where('PROCESS.PRO_UID', $processUid);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Build where clause for the text to search
|
||||
if (!empty($textToSearch)) {
|
||||
$query2->where('APPLICATION.APP_TITLE', 'LIKE', "%$textToSearch%")
|
||||
->orWhere('TASK.TAS_TITLE', 'LIKE', "%$textToSearch%")
|
||||
->orWhere('PROCESS.PRO_TITLE', 'LIKE', "%$textToSearch%");
|
||||
}
|
||||
|
||||
// Build the complex query that uses "UNION DISTINCT" clause
|
||||
$query = sprintf('select ' . ($count ? 'count(*) as aggregate' : 'APP_NUMBER') .
|
||||
' from ((%s) union distinct (%s)) self_service_cases', toSqlWithBindings($query1), toSqlWithBindings($query2));
|
||||
$query = sprintf('select ' . ($count ? 'count(*) as aggregate' : '*') .
|
||||
' from ((%s) union distinct (%s)) self_service_cases' . (!empty($sort) && !empty($dir) ? ' ORDER BY %s %s' : ''),
|
||||
toSqlWithBindings($query1), toSqlWithBindings($query2), $sort, $dir);
|
||||
|
||||
return $query;
|
||||
} else {
|
||||
if (!empty($sort) && !empty($dir)) {
|
||||
$query1->orderBy($sort, $dir);
|
||||
}
|
||||
return $query1;
|
||||
}
|
||||
}
|
||||
@@ -917,24 +1010,41 @@ class Delegation extends Model
|
||||
* Get the self-services cases by user
|
||||
*
|
||||
* @param string $usrUid
|
||||
*
|
||||
* @param array $selectedColumns
|
||||
* @param string $categoryUid
|
||||
* @param string $processUid
|
||||
* @param string $textToSearch
|
||||
* @param string $sort
|
||||
* @param string $dir
|
||||
* @param int $offset
|
||||
* @param int $limit
|
||||
* @return array
|
||||
*/
|
||||
public static function getSelfService($usrUid)
|
||||
public static function getSelfService($usrUid, $selectedColumns = ['APP_DELEGATION.APP_NUMBER', 'APP_DELEGATION.DEL_INDEX'],
|
||||
$categoryUid = null, $processUid = null, $textToSearch = null, $sort = null, $dir = null, $offset = null, $limit = null)
|
||||
{
|
||||
// Initializing the variable to return
|
||||
$data = [];
|
||||
|
||||
// Get the query
|
||||
$query = self::getSelfServiceQuery($usrUid);
|
||||
$query = self::getSelfServiceQuery($usrUid, false, $selectedColumns, $categoryUid, $processUid, $textToSearch, $sort, $dir);
|
||||
|
||||
// Get data
|
||||
if (!is_string($query)) {
|
||||
// Set offset and limit if were sent
|
||||
if (!is_null($offset) && !is_null($limit)) {
|
||||
$query->offset($offset);
|
||||
$query->limit($limit);
|
||||
}
|
||||
$items = $query->get();
|
||||
$items->each(function ($item) use (&$data) {
|
||||
$data[] = get_object_vars($item);
|
||||
});
|
||||
} else {
|
||||
// Set offset and limit if were sent
|
||||
if (!is_null($offset) && !is_null($limit)) {
|
||||
$query .= " LIMIT {$offset}, {$limit}";
|
||||
}
|
||||
$items = DB::select($query);
|
||||
foreach ($items as $item) {
|
||||
$data[] = get_object_vars($item);
|
||||
@@ -949,13 +1059,17 @@ class Delegation extends Model
|
||||
* Count the self-services cases by user
|
||||
*
|
||||
* @param string $usrUid
|
||||
* @param string $categoryUid
|
||||
* @param string $processUid
|
||||
* @param string $textToSearch
|
||||
*
|
||||
* @return integer
|
||||
*/
|
||||
public static function countSelfService($usrUid)
|
||||
public static function countSelfService($usrUid, $categoryUid = null, $processUid = null, $textToSearch = null)
|
||||
{
|
||||
// Get the query
|
||||
$query = self::getSelfServiceQuery($usrUid, true);
|
||||
$query = self::getSelfServiceQuery($usrUid, true, ['APP_DELEGATION.APP_NUMBER', 'APP_DELEGATION.DEL_INDEX'],
|
||||
$categoryUid, $processUid, $textToSearch);
|
||||
|
||||
// Get count value
|
||||
if (!is_string($query)) {
|
||||
|
||||
@@ -13,14 +13,15 @@ class Task extends Model
|
||||
public $timestamps = false;
|
||||
// The following types will execute without user and run automatically
|
||||
public static $typesRunAutomatically = [
|
||||
"WEBENTRYEVENT",
|
||||
"END-MESSAGE-EVENT",
|
||||
"START-MESSAGE-EVENT",
|
||||
"INTERMEDIATE-THROW-MESSAGE-EVENT",
|
||||
"INTERMEDIATE-CATCH-MESSAGE-EVENT",
|
||||
"INTERMEDIATE-CATCH-TIMER-EVENT",
|
||||
"SCRIPT-TASK",
|
||||
"SERVICE-TASK",
|
||||
"START-MESSAGE-EVENT",
|
||||
"START-TIMER-EVENT",
|
||||
"INTERMEDIATE-CATCH-TIMER-EVENT"
|
||||
"WEBENTRYEVENT",
|
||||
];
|
||||
|
||||
const DUMMY_TASKS = [
|
||||
|
||||
Reference in New Issue
Block a user