From a43b5e9d09f11a51bab1258d377e01094ed5021c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?D=C3=A1vid=20Danyi?= Date: Sat, 21 Apr 2018 15:23:06 +0200 Subject: [PATCH] * kanban service and stuff --- composer.json | 3 + composer.lock | 275 ++++++- config/config.php | 1 + config/routes.php | 4 + public/assets/riddler.png | Bin 0 -> 32053 bytes public/avatars/enorsos | Bin 0 -> 61832 bytes public/avatars/epetfid | Bin 0 -> 51592 bytes public/avatars/ethzto | Bin 0 -> 675 bytes public/avatars/etorist | Bin 0 -> 288 bytes src/App/ConfigProvider.php | 7 + src/App/Entity/JiraAssignee.php | 135 ++++ src/App/Entity/JiraIssueType.php | 89 +++ src/App/Entity/JiraStatus.php | 65 ++ src/App/Entity/KanbanBoard.php | 260 +++++++ src/App/Entity/KanbanEntry.php | 689 ++++++++++++++++++ src/App/Handler/AvatarHandler.php | 44 ++ src/App/Handler/AvatarHandlerFactory.php | 22 + src/App/Handler/KanbanHandler.php | 40 + src/App/Handler/KanbanHandlerFactory.php | 22 + src/App/Service/AvatarService.php | 63 ++ src/App/Service/AvatarServiceFactory.php | 21 + src/App/Service/CacheServiceFactory.php | 27 + src/App/Service/HttpClientFactory.php | 37 + src/App/Service/JiraCollectorService.php | 245 +++++++ .../Service/JiraCollectorServiceFactory.php | 23 + 25 files changed, 2071 insertions(+), 1 deletion(-) create mode 100644 public/assets/riddler.png create mode 100644 public/avatars/enorsos create mode 100644 public/avatars/epetfid create mode 100644 public/avatars/ethzto create mode 100644 public/avatars/etorist create mode 100644 src/App/Entity/JiraAssignee.php create mode 100644 src/App/Entity/JiraIssueType.php create mode 100644 src/App/Entity/JiraStatus.php create mode 100644 src/App/Entity/KanbanBoard.php create mode 100644 src/App/Entity/KanbanEntry.php create mode 100644 src/App/Handler/AvatarHandler.php create mode 100644 src/App/Handler/AvatarHandlerFactory.php create mode 100644 src/App/Handler/KanbanHandler.php create mode 100644 src/App/Handler/KanbanHandlerFactory.php create mode 100644 src/App/Service/AvatarService.php create mode 100644 src/App/Service/AvatarServiceFactory.php create mode 100644 src/App/Service/CacheServiceFactory.php create mode 100644 src/App/Service/HttpClientFactory.php create mode 100644 src/App/Service/JiraCollectorService.php create mode 100644 src/App/Service/JiraCollectorServiceFactory.php diff --git a/composer.json b/composer.json index d7aef26..ba0c179 100644 --- a/composer.json +++ b/composer.json @@ -46,8 +46,10 @@ "roave/security-advisories": "dev-master", "symfony/console": "^4.0", "tuupola/cors-middleware": "^0.7.0", + "zendframework/zend-cache": "^2.7", "zendframework/zend-code": "^3.3", "zendframework/zend-component-installer": "^2.1.1", + "zendframework/zend-config": "^3.1", "zendframework/zend-config-aggregator": "^1.0", "zendframework/zend-diactoros": "^1.7.1", "zendframework/zend-eventmanager": "^3.2", @@ -56,6 +58,7 @@ "zendframework/zend-expressive-helpers": "^5.0", "zendframework/zend-filter": "^2.7", "zendframework/zend-form": "^2.11", + "zendframework/zend-http": "^2.7", "zendframework/zend-hydrator": "^2.3", "zendframework/zend-json": "^3.1", "zendframework/zend-log": "^2.10", diff --git a/composer.lock b/composer.lock index c9c08d6..b45d51e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "eada4b0e60e35c9a3f5d5bcf347984fc", + "content-hash": "e84c04bc2ba63a0cee39cb04418a10ef", "packages": [ { "name": "behat/transliterator", @@ -1830,6 +1830,75 @@ ], "time": "2017-07-15T22:03:15+00:00" }, + { + "name": "zendframework/zend-cache", + "version": "2.7.2", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-cache.git", + "reference": "c98331b96d3b9d9b24cf32d02660602edb34d039" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-cache/zipball/c98331b96d3b9d9b24cf32d02660602edb34d039", + "reference": "c98331b96d3b9d9b24cf32d02660602edb34d039", + "shasum": "" + }, + "require": { + "php": "^5.5 || ^7.0", + "zendframework/zend-eventmanager": "^2.6.2 || ^3.0", + "zendframework/zend-servicemanager": "^2.7.5 || ^3.0.3", + "zendframework/zend-stdlib": "^2.7 || ^3.0" + }, + "require-dev": { + "phpbench/phpbench": "^0.10.0", + "phpunit/phpunit": "^4.8", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-serializer": "^2.6", + "zendframework/zend-session": "^2.6.2" + }, + "suggest": { + "ext-apc": "APC or compatible extension, to use the APC storage adapter", + "ext-apcu": "APCU >= 5.1.0, to use the APCu storage adapter", + "ext-dba": "DBA, to use the DBA storage adapter", + "ext-memcache": "Memcache >= 2.0.0 to use the Memcache storage adapter", + "ext-memcached": "Memcached >= 1.0.0 to use the Memcached storage adapter", + "ext-mongo": "Mongo, to use MongoDb storage adapter", + "ext-redis": "Redis, to use Redis storage adapter", + "ext-wincache": "WinCache, to use the WinCache storage adapter", + "ext-xcache": "XCache, to use the XCache storage adapter", + "mongofill/mongofill": "Alternative to ext-mongo - a pure PHP implementation designed as a drop in replacement", + "zendframework/zend-serializer": "Zend\\Serializer component", + "zendframework/zend-session": "Zend\\Session component" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev", + "dev-develop": "2.8-dev" + }, + "zf": { + "component": "Zend\\Cache", + "config-provider": "Zend\\Cache\\ConfigProvider" + } + }, + "autoload": { + "psr-4": { + "Zend\\Cache\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides a generic way to cache any data", + "homepage": "https://github.com/zendframework/zend-cache", + "keywords": [ + "cache", + "zf2" + ], + "time": "2016-12-16T11:35:47+00:00" + }, { "name": "zendframework/zend-code", "version": "3.3.0", @@ -1935,6 +2004,66 @@ ], "time": "2018-03-21T16:53:56+00:00" }, + { + "name": "zendframework/zend-config", + "version": "3.1.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-config.git", + "reference": "a12e4a592bf66d9629b84960e268f3752e53abe4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-config/zipball/a12e4a592bf66d9629b84960e268f3752e53abe4", + "reference": "a12e4a592bf66d9629b84960e268f3752e53abe4", + "shasum": "" + }, + "require": { + "ext-json": "*", + "php": "^5.6 || ^7.0", + "psr/container": "^1.0", + "zendframework/zend-stdlib": "^2.7.7 || ^3.1" + }, + "conflict": { + "container-interop/container-interop": "<1.2.0" + }, + "require-dev": { + "malukenho/docheader": "^0.1.5", + "phpunit/phpunit": "^5.7 || ^6.0", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-filter": "^2.7.1", + "zendframework/zend-i18n": "^2.7.3", + "zendframework/zend-servicemanager": "^2.7.8 || ^3.2.1" + }, + "suggest": { + "zendframework/zend-filter": "^2.7.1; install if you want to use the Filter processor", + "zendframework/zend-i18n": "^2.7.3; install if you want to use the Translator processor", + "zendframework/zend-servicemanager": "^2.7.8 || ^3.2.1; if you need an extensible plugin manager for use with the Config Factory" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-dev", + "dev-develop": "3.2-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Config\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides a nested object property based user interface for accessing this configuration data within application code", + "homepage": "https://github.com/zendframework/zend-config", + "keywords": [ + "config", + "zf2" + ], + "time": "2017-02-22T14:31:10+00:00" + }, { "name": "zendframework/zend-config-aggregator", "version": "1.1.0", @@ -2611,6 +2740,59 @@ ], "time": "2017-12-06T21:09:08+00:00" }, + { + "name": "zendframework/zend-http", + "version": "2.7.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-http.git", + "reference": "78aa510c0ea64bfb2aa234f50c4f232c9531acfa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-http/zipball/78aa510c0ea64bfb2aa234f50c4f232c9531acfa", + "reference": "78aa510c0ea64bfb2aa234f50c4f232c9531acfa", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0", + "zendframework/zend-loader": "^2.5.1", + "zendframework/zend-stdlib": "^3.1 || ^2.7.7", + "zendframework/zend-uri": "^2.5.2", + "zendframework/zend-validator": "^2.10.1" + }, + "require-dev": { + "phpunit/phpunit": "^6.4.1 || ^5.7.15", + "zendframework/zend-coding-standard": "~1.0.0", + "zendframework/zend-config": "^3.1 || ^2.6" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.7-dev", + "dev-develop": "2.8-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Http\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "provides an easy interface for performing Hyper-Text Transfer Protocol (HTTP) requests", + "homepage": "https://github.com/zendframework/zend-http", + "keywords": [ + "ZendFramework", + "http", + "http client", + "zend", + "zf" + ], + "time": "2017-10-13T12:06:24+00:00" + }, { "name": "zendframework/zend-httphandlerrunner", "version": "1.0.1", @@ -2830,6 +3012,50 @@ ], "time": "2018-01-04T17:51:34+00:00" }, + { + "name": "zendframework/zend-loader", + "version": "2.5.1", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-loader.git", + "reference": "c5fd2f071bde071f4363def7dea8dec7393e135c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-loader/zipball/c5fd2f071bde071f4363def7dea8dec7393e135c", + "reference": "c5fd2f071bde071f4363def7dea8dec7393e135c", + "shasum": "" + }, + "require": { + "php": ">=5.3.23" + }, + "require-dev": { + "fabpot/php-cs-fixer": "1.7.*", + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.5-dev", + "dev-develop": "2.6-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Loader\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "homepage": "https://github.com/zendframework/zend-loader", + "keywords": [ + "loader", + "zf2" + ], + "time": "2015-06-03T14:05:47+00:00" + }, { "name": "zendframework/zend-log", "version": "2.10.0", @@ -3080,6 +3306,53 @@ ], "time": "2018-03-15T14:10:32+00:00" }, + { + "name": "zendframework/zend-uri", + "version": "2.6.0", + "source": { + "type": "git", + "url": "https://github.com/zendframework/zend-uri.git", + "reference": "fb998b9487ea8c5f4aaac0e536190709bdd5353b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/zendframework/zend-uri/zipball/fb998b9487ea8c5f4aaac0e536190709bdd5353b", + "reference": "fb998b9487ea8c5f4aaac0e536190709bdd5353b", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0", + "zendframework/zend-escaper": "^2.5", + "zendframework/zend-validator": "^2.5" + }, + "require-dev": { + "phpunit/phpunit": "^6.2.1 || ^5.7.15", + "zendframework/zend-coding-standard": "~1.0.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.6.x-dev", + "dev-develop": "2.7.x-dev" + } + }, + "autoload": { + "psr-4": { + "Zend\\Uri\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "description": "a component that aids in manipulating and validating ยป Uniform Resource Identifiers (URIs)", + "homepage": "https://github.com/zendframework/zend-uri", + "keywords": [ + "uri", + "zf2" + ], + "time": "2018-04-10T17:08:10+00:00" + }, { "name": "zendframework/zend-validator", "version": "2.10.2", diff --git a/config/config.php b/config/config.php index 26e7106..5d3caf1 100644 --- a/config/config.php +++ b/config/config.php @@ -13,6 +13,7 @@ $cacheConfig = [ ]; $aggregator = new ConfigAggregator([ + \Zend\Cache\ConfigProvider::class, \Zend\Log\ConfigProvider::class, \Zend\Form\ConfigProvider::class, \Zend\InputFilter\ConfigProvider::class, diff --git a/config/routes.php b/config/routes.php index 52e238b..e40cf31 100644 --- a/config/routes.php +++ b/config/routes.php @@ -44,4 +44,8 @@ return function (Application $app, MiddlewareFactory $factory, ContainerInterfac $app->put('/api/slide-position/{id:\d+}', App\Handler\SlidePositionHandler::class,'api.slide.position'); $app->route('/api/slide[/{id:\d+}]', App\Handler\SlideHandler::class)->setName('api.slide'); + + $app->get('/avatars/{signum}', App\Handler\AvatarHandler::class,'avatar.image'); + $app->get('/api/kanban[/{filterId:\d+}]', App\Handler\KanbanHandler::class,'api.team.kanban'); + }; diff --git a/public/assets/riddler.png b/public/assets/riddler.png new file mode 100644 index 0000000000000000000000000000000000000000..5db5c178624f684198be0786f4a03f9c9ce21c64 GIT binary patch literal 32053 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 BvvU9d literal 0 HcmV?d00001 diff --git a/public/avatars/epetfid b/public/avatars/epetfid new file mode 100644 index 0000000000000000000000000000000000000000..15d4fc8f281ffcc472b44849ef048bf3b1646fa0 GIT binary patch literal 51592 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 literal 0 HcmV?d00001 diff --git a/src/App/ConfigProvider.php b/src/App/ConfigProvider.php index bd66889..add1920 100644 --- a/src/App/ConfigProvider.php +++ b/src/App/ConfigProvider.php @@ -40,9 +40,16 @@ class ConfigProvider Handler\TeamHandler::class => Handler\TeamHandlerFactory::class, Handler\SlideHandler::class => Handler\SlideHandlerFactory::class, Handler\SlidePositionHandler::class => Handler\SlidePositionHandlerFactory::class, + Handler\AvatarHandler::class => Handler\AvatarHandlerFactory::class, + Handler\KanbanHandler::class =>Handler\KanbanHandlerFactory::class, Service\TeamService::class => Service\TeamServiceFactory::class, Service\SlideManager::class => Service\SlideManagerFactory::class, + Service\AvatarService::class => Service\AvatarServiceFactory::class, + Service\JiraCollectorService::class => Service\JiraCollectorServiceFactory::class, + + \Zend\Http\Client::class => Service\HttpClientFactory::class, + 'service.cache' => Service\CacheServiceFactory::class, ], ]; } diff --git a/src/App/Entity/JiraAssignee.php b/src/App/Entity/JiraAssignee.php new file mode 100644 index 0000000..dff1c13 --- /dev/null +++ b/src/App/Entity/JiraAssignee.php @@ -0,0 +1,135 @@ +signum; + } + + /** + * @param string $signum + * @return JiraAssignee + */ + public function setSignum(string $signum): JiraAssignee + { + $this->signum = $signum; + return $this; + } + + /** + * @return string + */ + public function getName(): string + { + return $this->name; + } + + /** + * @param string $name + * @return JiraAssignee + */ + public function setName(string $name): JiraAssignee + { + $this->name = $name; + return $this; + } + + /** + * @return string + */ + public function getEmail(): string + { + return $this->email; + } + + /** + * @param string $email + * @return JiraAssignee + */ + public function setEmail(string $email): JiraAssignee + { + $this->email = $email; + return $this; + } + + /** + * @return string + */ + public function getAvatar(): string + { + return $this->avatar; + } + + /** + * @param string $avatar + * @return JiraAssignee + */ + public function setAvatar(string $avatar): JiraAssignee + { + $this->avatar = $avatar; + return $this; + } + + /** + * @return bool + */ + public function isActive(): bool + { + return $this->active; + } + + /** + * @param bool $active + * @return JiraAssignee + */ + public function setActive(bool $active): JiraAssignee + { + $this->active = $active; + return $this; + } + + /** + * @return array + */ + function jsonSerialize() + { + return [ + 'signum' => $this->getSignum(), + 'name' => $this->getName(), + 'email' => $this->getEmail(), + 'avatar' => $this->getAvatar(), + 'active' => $this->isActive(), + ]; + } +} diff --git a/src/App/Entity/JiraIssueType.php b/src/App/Entity/JiraIssueType.php new file mode 100644 index 0000000..9300da1 --- /dev/null +++ b/src/App/Entity/JiraIssueType.php @@ -0,0 +1,89 @@ +name; + } + + /** + * @param string $name + * @return JiraIssueType + */ + public function setName(string $name): JiraIssueType + { + $this->name = $name; + return $this; + } + + /** + * @return string + */ + public function getDescription(): string + { + return $this->description; + } + + /** + * @param string $description + * @return JiraIssueType + */ + public function setDescription(string $description): JiraIssueType + { + $this->description = $description; + return $this; + } + + /** + * @return string + */ + public function getIcon(): string + { + return $this->icon; + } + + /** + * @param string $icon + * @return JiraIssueType + */ + public function setIcon(string $icon): JiraIssueType + { + $this->icon = $icon; + return $this; + } + + /** + * @return array + */ + function jsonSerialize() + { + return [ + 'name' => $this->getName(), + 'description' => $this->getDescription(), + 'icon' => $this->getIcon(), + ]; + } +} diff --git a/src/App/Entity/JiraStatus.php b/src/App/Entity/JiraStatus.php new file mode 100644 index 0000000..f595b28 --- /dev/null +++ b/src/App/Entity/JiraStatus.php @@ -0,0 +1,65 @@ +name; + } + + /** + * @param string $name + * @return JiraStatus + */ + public function setName(string $name): JiraStatus + { + $this->name = $name; + return $this; + } + + /** + * @return string + */ + public function getColor(): string + { + return $this->color; + } + + /** + * @param string $color + * @return JiraStatus + */ + public function setColor(string $color): JiraStatus + { + $this->color = $color; + return $this; + } + + /** + * @return array + */ + function jsonSerialize() + { + return [ + 'name' => $this->getName(), + 'color' => $this->getColor(), + ]; + } +} diff --git a/src/App/Entity/KanbanBoard.php b/src/App/Entity/KanbanBoard.php new file mode 100644 index 0000000..1d717d4 --- /dev/null +++ b/src/App/Entity/KanbanBoard.php @@ -0,0 +1,260 @@ + self::PRIO_TRIVIAL, +// 'Minor' => self::PRIO_MINOR, +// 'Major' => self::PRIO_MAJOR, +// 'Critical' => self::PRIO_CRITICAL, +// 'Blocker' => self::PRIO_BLOCKER, +// ]; + + /** + * @var KanbanEntry[]|ArrayCollection + */ + private $inbox; + + /** + * @var KanbanEntry[]|ArrayCollection + */ + private $inProgress; + + /** + * @var KanbanEntry[]|ArrayCollection + */ + private $verification; + + /** + * @var KanbanEntry[]|ArrayCollection + */ + private $done; + + public function __construct() + { + $this->inbox = new ArrayCollection(); + $this->inProgress = new ArrayCollection(); + $this->verification = new ArrayCollection(); + $this->done = new ArrayCollection(); + } + + /** + * @return KanbanEntry[]|ArrayCollection + */ + public function getInbox(): ArrayCollection + { + return $this->inbox; + } + + /** + * @param KanbanEntry[]|ArrayCollection $inbox + * @return KanbanBoard + */ + public function setInbox(ArrayCollection $inbox): KanbanBoard + { + $this->inbox = $inbox; + return $this; + } + + /** + * @param KanbanEntry $inbox + * @return KanbanBoard + */ + public function addInbox(KanbanEntry $inbox): KanbanBoard + { + if (!$this->inbox->contains($inbox)) { + $this->inbox->add($inbox); + } + return $this; + } + + /** + * @param KanbanEntry $inbox + * @return KanbanBoard + */ + public function removeInbox(KanbanEntry $inbox): KanbanBoard + { + if ($this->inbox->contains($inbox)) { + $this->inbox->removeElement($inbox); + } + return $this; + } + + /** + * @return KanbanEntry[]|ArrayCollection + */ + public function getInProgress(): ArrayCollection + { + return $this->inProgress; + } + + /** + * @param KanbanEntry[]|ArrayCollection $inProgress + * @return KanbanBoard + */ + public function setInProgress(ArrayCollection $inProgress): KanbanBoard + { + $this->inProgress = $inProgress; + return $this; + } + + /** + * @param KanbanEntry $inProgress + * @return KanbanBoard + */ + public function addInProgress(KanbanEntry $inProgress): KanbanBoard + { + if (!$this->inProgress->contains($inProgress)) { + $this->inProgress->add($inProgress); + } + return $this; + } + + /** + * @param KanbanEntry $inProgress + * @return KanbanBoard + */ + public function removeInProgress(KanbanEntry $inProgress): KanbanBoard + { + if ($this->inProgress->contains($inProgress)) { + $this->inProgress->removeElement($inProgress); + } + return $this; + } + + /** + * @return KanbanEntry[]|ArrayCollection + */ + public function getVerification(): ArrayCollection + { + return $this->verification; + } + + /** + * @param KanbanEntry[]|ArrayCollection $verification + * @return KanbanBoard + */ + public function setVerification(ArrayCollection $verification): KanbanBoard + { + $this->verification = $verification; + return $this; + } + + /** + * @param KanbanEntry $verification + * @return KanbanBoard + */ + public function addVerification(KanbanEntry $verification): KanbanBoard + { + if (!$this->verification->contains($verification)) { + $this->verification->add($verification); + } + return $this; + } + + /** + * @param KanbanEntry $verification + * @return KanbanBoard + */ + public function removeVerification(KanbanEntry $verification): KanbanBoard + { + if ($this->verification->contains($verification)) { + $this->verification->removeElement($verification); + } + return $this; + } + + /** + * @return KanbanEntry[]|ArrayCollection + */ + public function getDone(): ArrayCollection + { + return $this->done; + } + + /** + * @param KanbanEntry[]|ArrayCollection $verification + * @return KanbanBoard + */ + public function setDone(ArrayCollection $verification): KanbanBoard + { + $this->done = $verification; + return $this; + } + + /** + * @param KanbanEntry $verification + * @return KanbanBoard + */ + public function addDone(KanbanEntry $verification): KanbanBoard + { + if (!$this->done->contains($verification)) { + $this->done->add($verification); + } + return $this; + } + + /** + * @param KanbanEntry $verification + * @return KanbanBoard + */ + public function removeDone(KanbanEntry $verification): KanbanBoard + { + if ($this->done->contains($verification)) { + $this->done->removeElement($verification); + } + return $this; + } + + /** + * @param KanbanEntry[] $toSort + * @return KanbanEntry[] + */ + private function prioSort(array $toSort): array + { + usort($toSort, function (KanbanEntry $a, KanbanEntry $b) { + return $a->getTaurusPrio() <=> $b->getTaurusPrio(); + }); + return $toSort; + } + + /** + * @param KanbanEntry[] $toSort + * @return KanbanEntry[] + */ + private function updatedAtReverseSort(array $toSort): array + { + $toSort = array_filter($toSort, function (KanbanEntry $item) { + return $item->getAssignee() != null && empty($item->getFixVersions()); + }); + usort($toSort, function (KanbanEntry $a, KanbanEntry $b) { + return $b->getUpdatedAt() <=> $a->getUpdatedAt(); + }); + return $toSort; + } + + /** + * @return array + */ + function jsonSerialize() + { + return [ + 'inbox' => $this->prioSort($this->inbox->getValues()), + 'inProgress' => $this->prioSort($this->inProgress->getValues()), + 'verification' => $this->prioSort($this->verification->getValues()), + 'done' => $this->updatedAtReverseSort($this->done->getValues()), + ]; + } +} diff --git a/src/App/Entity/KanbanEntry.php b/src/App/Entity/KanbanEntry.php new file mode 100644 index 0000000..29fff20 --- /dev/null +++ b/src/App/Entity/KanbanEntry.php @@ -0,0 +1,689 @@ +functionalAreas = new ArrayCollection(); + $this->additionalAssignees = new ArrayCollection(); + } + + /** + * @return int + */ + public function getId(): int + { + return $this->id; + } + + /** + * @param int $id + * @return KanbanEntry + */ + public function setId(int $id): KanbanEntry + { + $this->id = $id; + return $this; + } + + /** + * @return string + */ + public function getKey(): string + { + return $this->key; + } + + /** + * @param string $key + * @return KanbanEntry + */ + public function setKey(string $key): KanbanEntry + { + $this->key = $key; + return $this; + } + + /** + * @return string + */ + public function getSummary(): string + { + return $this->summary; + } + + /** + * @param string $summary + * @return KanbanEntry + */ + public function setSummary(string $summary): KanbanEntry + { + $this->summary = $summary; + return $this; + } + + /** + * @return JiraIssueType + */ + public function getIssueType(): ?JiraIssueType + { + return $this->issueType; + } + + /** + * @param JiraIssueType $issueType + * @return KanbanEntry + */ + public function setIssueType(?JiraIssueType $issueType): KanbanEntry + { + $this->issueType = $issueType; + return $this; + } + + /** + * @return JiraStatus + */ + public function getStatus(): ?JiraStatus + { + return $this->status; + } + + /** + * @param JiraStatus $status + * @return KanbanEntry + */ + public function setStatus(?JiraStatus $status): KanbanEntry + { + $this->status = $status; + return $this; + } + + /** + * @return JiraAssignee + */ + public function getAssignee(): ?JiraAssignee + { + return $this->assignee; + } + + /** + * @param JiraAssignee $assignee + * @return KanbanEntry + */ + public function setAssignee(?JiraAssignee $assignee): KanbanEntry + { + $this->assignee = $assignee; + return $this; + } + + /** + * @return JiraAssignee[]|ArrayCollection + */ + public function getAdditionalAssignees(): ?ArrayCollection + { + return $this->additionalAssignees; + } + + /** + * @param JiraAssignee[]|ArrayCollection $additionalAssignees + * @return KanbanEntry + */ + public function setAdditionalAssignees(?ArrayCollection $additionalAssignees): KanbanEntry + { + $this->additionalAssignees = $additionalAssignees; + return $this; + } + + /** + * @param JiraAssignee $assignee + * @return KanbanEntry + */ + public function addAdditionalAssignee(JiraAssignee $assignee): KanbanEntry + { + if(!$this->additionalAssignees->contains($assignee)) { + $this->additionalAssignees->add($assignee); + } + return $this; + } + + /** + * @param JiraAssignee $assignee + * @return KanbanEntry + */ + public function removeAdditionalAssignee(JiraAssignee $assignee): KanbanEntry + { + if($this->additionalAssignees->contains($assignee)) { + $this->additionalAssignees->removeElement($assignee); + } + return $this; + } + + /** + * @return string + */ + public function getIssuePriority(): string + { + return $this->issuePriority; + } + + /** + * @param string $issuePriority + * @return KanbanEntry + */ + public function setIssuePriority(string $issuePriority): KanbanEntry + { + $this->issuePriority = $issuePriority; + return $this; + } + + /** + * @return string + */ + public function getIssuePriorityIcon(): string + { + return $this->issuePriorityIcon; + } + + /** + * @param string $issuePriorityIcon + * @return KanbanEntry + */ + public function setIssuePriorityIcon(string $issuePriorityIcon): KanbanEntry + { + $this->issuePriorityIcon = $issuePriorityIcon; + return $this; + } + + /** + * @return int + */ + public function getPrio(): ?int + { + return $this->prio; + } + + /** + * @param int $prio + * @return KanbanEntry + */ + public function setPrio(?int $prio) + { + $this->prio = $prio; + return $this; + } + + /** + * @return string[] + */ + public function getLabels(): ?array + { + return $this->labels; + } + + /** + * @param string[] $labels + * @return KanbanEntry + */ + public function setLabels(?array $labels): KanbanEntry + { + $this->labels = $labels; + return $this; + } + + /** + * @return array|null + */ + public function getFixVersions(): ?array + { + return $this->fixVersions; + } + + /** + * @param array|null $fixVersions + * @return KanbanEntry + */ + public function setFixVersions(?array $fixVersions): KanbanEntry + { + $this->fixVersions = $fixVersions; + return $this; + } + + /** + * @return string[]|ArrayCollection + */ + public function getFunctionalAreas(): ?ArrayCollection + { + return $this->functionalAreas; + } + + /** + * @param string[]|ArrayCollection $functionalAreas + * @return KanbanEntry + */ + public function setFunctionalAreas(ArrayCollection $functionalAreas): KanbanEntry + { + $this->functionalAreas = $functionalAreas; + return $this; + } + + /** + * @param string $functionalArea + * @return KanbanEntry + */ + public function addFunctionalArea(string $functionalArea): KanbanEntry + { + if(!$this->functionalAreas->contains($functionalArea)) { + $this->functionalAreas->add($functionalArea); + } + return $this; + } + + /** + * @param string $functionalArea + * @return KanbanEntry + */ + public function removeFunctionalArea(string $functionalArea): KanbanEntry + { + if($this->functionalAreas->contains($functionalArea)) { + $this->functionalAreas->removeElement($functionalArea); + } + return $this; + } + + /** + * @return string + */ + public function getExternalId(): ?string + { + return $this->externalId; + } + + /** + * @param string $externalId + * @return KanbanEntry + */ + public function setExternalId(?string $externalId): KanbanEntry + { + $this->externalId = $externalId; + return $this; + } + + /** + * @return string + */ + public function getExternalLink(): ?string + { + return $this->externalLink; + } + + /** + * @param string $externalLink + * @return KanbanEntry + */ + public function setExternalLink(?string $externalLink): KanbanEntry + { + $this->externalLink = $externalLink; + return $this; + } + + /** + * @return string + */ + public function getProject(): ?string + { + return $this->project; + } + + /** + * @param string $project + * @return KanbanEntry + */ + public function setProject(?string $project): KanbanEntry + { + $this->project = $project; + return $this; + } + + /** + * @return string + */ + public function getMhwebStatus(): ?string + { + return $this->mhwebStatus; + } + + /** + * @param string $mhwebStatus + * @return KanbanEntry + */ + public function setMhwebStatus(?string $mhwebStatus): KanbanEntry + { + $this->mhwebStatus = $mhwebStatus; + return $this; + } + + /** + * @return bool + */ + public function getMhwebHot(): ?bool + { + return $this->mhwebHot; + } + + /** + * @param bool $mhwebHot + * @return KanbanEntry + */ + public function setMhwebHot(?bool $mhwebHot): KanbanEntry + { + $this->mhwebHot = $mhwebHot; + return $this; + } + + /** + * @return bool + */ + public function getMhwebExternal(): ?bool + { + return $this->mhwebExternal; + } + + /** + * @param bool $mhwebExternal + * @return KanbanEntry + */ + public function setMhwebExternal(?bool $mhwebExternal): KanbanEntry + { + $this->mhwebExternal = $mhwebExternal; + return $this; + } + + /** + * @return string + */ + public function getTeam(): ?string + { + return $this->team; + } + + /** + * @param string $team + * @return KanbanEntry + */ + public function setTeam(?string $team): KanbanEntry + { + $this->team = $team; + return $this; + } + + /** + * @return string + */ + public function getAnswerCode(): ?string + { + return $this->answerCode; + } + + /** + * @param string $answerCode + * @return KanbanEntry + */ + public function setAnswerCode(?string $answerCode): KanbanEntry + { + $this->answerCode = $answerCode; + return $this; + } + + /** + * @return int + */ + public function getTaurusPrio(): ?int + { + return $this->taurusPrio; + } + + /** + * @param int $taurusPrio + * @return KanbanEntry + */ + public function setTaurusPrio(?int $taurusPrio): KanbanEntry + { + $this->taurusPrio = $taurusPrio; + return $this; + } + + /** + * @return int + */ + public function getWorklog(): int + { + return $this->worklog; + } + + /** + * @param int $worklog + * @return KanbanEntry + */ + public function setWorklog(int $worklog): KanbanEntry + { + $this->worklog = $worklog; + return $this; + } + + /** + * @return int + */ + public function getDaysBlocked(): int + { + return $this->daysBlocked; + } + + /** + * @param int $daysBlocked + * @return KanbanEntry + */ + public function setDaysBlocked(int $daysBlocked): KanbanEntry + { + $this->daysBlocked = $daysBlocked; + return $this; + } + + /** + * @return \DateTime + */ + public function getUpdatedAt(): ?\DateTime + { + return $this->updatedAt; + } + + /** + * @param \DateTime $updatedAt + * @return KanbanEntry + */ + public function setUpdatedAt(?\DateTime $updatedAt): KanbanEntry + { + $this->updatedAt = $updatedAt; + return $this; + } + + /** + * @return array + */ + function jsonSerialize() + { + return [ + 'id' => $this->getId(), + 'key' => $this->getKey(), + 'summary' => $this->getSummary(), + 'issueType' => $this->getIssueType(), + 'status' => $this->getStatus(), + 'assignee' => $this->getAssignee(), + 'additionalAssignees' => $this->getAdditionalAssignees()->getValues(), + 'issuePriority' => $this->getIssuePriority(), + 'issuePriorityIcon' => $this->getIssuePriorityIcon(), + 'labels' => $this->getLabels(), + 'prio' => $this->getPrio(), + 'functionalArea' => $this->getFunctionalAreas()->getValues(), + 'externalId' => $this->getExternalId(), + 'externalLink' => $this->getExternalLink(), + 'project' => $this->getProject(), + 'mhwebStatus' => $this->getMhwebStatus(), + 'mhwebHot' => $this->getMhwebHot(), + 'mhwebExternal' => $this->getMhwebExternal(), + 'team' => $this->getTeam(), + 'answerCode' => $this->getAnswerCode(), + 'taurusPrio' => $this->getTaurusPrio(), + 'worklog' => $this->getWorklog(), + 'daysBlocked' => $this->getDaysBlocked(), + 'updatedAt' => $this->getUpdatedAt(), + ]; + } +} diff --git a/src/App/Handler/AvatarHandler.php b/src/App/Handler/AvatarHandler.php new file mode 100644 index 0000000..ef38b35 --- /dev/null +++ b/src/App/Handler/AvatarHandler.php @@ -0,0 +1,44 @@ +avatarService = $avatarService; + } + + /** + * @param ServerRequestInterface $request + * @return ResponseInterface + */ + public function handle(ServerRequestInterface $request): ResponseInterface + { + $signum = $request->getAttribute('signum', false); + try { + $avatarImageData = $this->avatarService->getAvatarImageData($signum); + } catch (\UnexpectedValueException $e) { + return new TextResponse("Avatar not found", 404); + } + return (new TextResponse($avatarImageData, 200, [ + 'content-type' => 'image/png', + ]))->withHeader('Expires', '0') + ->withHeader('Cache-Control', 'must-revalidate'); + } +} diff --git a/src/App/Handler/AvatarHandlerFactory.php b/src/App/Handler/AvatarHandlerFactory.php new file mode 100644 index 0000000..43156d2 --- /dev/null +++ b/src/App/Handler/AvatarHandlerFactory.php @@ -0,0 +1,22 @@ +get(AvatarService::class); + return new AvatarHandler($avatarService); + } +} diff --git a/src/App/Handler/KanbanHandler.php b/src/App/Handler/KanbanHandler.php new file mode 100644 index 0000000..7aacabf --- /dev/null +++ b/src/App/Handler/KanbanHandler.php @@ -0,0 +1,40 @@ +dataCollector = $dataCollectorService; + } + + /** + * @param ServerRequestInterface $request + * @return ResponseInterface + * @todo filterId + */ + public function handle(ServerRequestInterface $request): ResponseInterface + { + $filterId = $request->getAttribute('filterId'); + /** @var KanbanBoard $kanbanResult */ + $kanbanResult = $this->dataCollector->getKanbanBoard($filterId); + return new JsonResponse($kanbanResult); + } +} diff --git a/src/App/Handler/KanbanHandlerFactory.php b/src/App/Handler/KanbanHandlerFactory.php new file mode 100644 index 0000000..435daff --- /dev/null +++ b/src/App/Handler/KanbanHandlerFactory.php @@ -0,0 +1,22 @@ +get(JiraCollectorService::class); + return new KanbanHandler($dataCollectorService); + } +} diff --git a/src/App/Service/AvatarService.php b/src/App/Service/AvatarService.php new file mode 100644 index 0000000..0c2963e --- /dev/null +++ b/src/App/Service/AvatarService.php @@ -0,0 +1,63 @@ +httpClient = $client; + $this->config = $config; + $this->cache = $cache; + } + + /** + * Returns avatar image data as string + * + * @param string $signum + * @return string + */ + public function getAvatarImageData(string $signum): string + { + if (!$this->cache->hasItem($signum)) { + $user = $this->config->get('jira.user'); + $password = $this->config->get('jira.password'); + $jiraAvatarUrl = $this->config->get('url.jiraAvatar'); + + $response = $this->httpClient + ->setAuth($user, $password) + ->setUri(sprintf($jiraAvatarUrl, $signum)) + ->send(); + + if (!$response->isSuccess()) { + throw new \UnexpectedValueException("Missing avatar", 404); + } + + $this->cache->setItem($signum, $response->getBody()); + } + + return $this->cache->getItem($signum); + } + +} diff --git a/src/App/Service/AvatarServiceFactory.php b/src/App/Service/AvatarServiceFactory.php new file mode 100644 index 0000000..6ae4e22 --- /dev/null +++ b/src/App/Service/AvatarServiceFactory.php @@ -0,0 +1,21 @@ +get(Client::class); + $cache = $container->get('service.cache'); + $configArray = $container->get('config'); + $config = new Config($configArray['app.config']); + return new AvatarService($httpClient, $config, $cache); + } +} diff --git a/src/App/Service/CacheServiceFactory.php b/src/App/Service/CacheServiceFactory.php new file mode 100644 index 0000000..51a4401 --- /dev/null +++ b/src/App/Service/CacheServiceFactory.php @@ -0,0 +1,27 @@ +getOptions() + ->setFromArray([ + 'ttl' => 28800, + 'cache_dir' => 'data/cache', + ]); + return $cache; + } +} diff --git a/src/App/Service/HttpClientFactory.php b/src/App/Service/HttpClientFactory.php new file mode 100644 index 0000000..65fcfeb --- /dev/null +++ b/src/App/Service/HttpClientFactory.php @@ -0,0 +1,37 @@ +get('config'); + $config = new Config($configArray['app.config']); + + $httpClient = new Client(); + $httpClient->setAdapter($curlAdapter = new Client\Adapter\Curl()); + $curlAdapter->setOptions([ + 'timeout' => 300, + ]); + $curlAdapter + ->setCurlOption(CURLOPT_SSL_VERIFYPEER, false) + ->setCurlOption(CURLOPT_SSL_VERIFYHOST, false); + if ($config->get('http.proxy.enabled', false)) { + $curlAdapter + ->setCurlOption(CURLOPT_PROXYTYPE, $config->get('http.proxy.type')) + ->setCurlOption(CURLOPT_PROXY, $config->get('http.proxy.url')); + } + return $httpClient; + } +} diff --git a/src/App/Service/JiraCollectorService.php b/src/App/Service/JiraCollectorService.php new file mode 100644 index 0000000..85188d3 --- /dev/null +++ b/src/App/Service/JiraCollectorService.php @@ -0,0 +1,245 @@ +cache = $cache; + $this->router = $router; + $this->httpClient = $client; + $this->config = $config; + } + + /** + * @param int $filterId + * @param bool $forceReload + * @return KanbanBoard + */ + public function getKanbanBoard(int $filterId = null, bool $forceReload = false): KanbanBoard + { + $kanbanBoard = $this->cache->getItem('kanbanBoard'); + if ($forceReload || null === $kanbanBoard) { + $user = $this->config->get('jira.user'); + $password = $this->config->get('jira.password'); + /** @var Config $kanbanBoardUriParams */ + $kanbanBoardUriParams = $this->config->get('url.jiraKanbanBoard'); + + $kanbanBoardUri = sprintf( + $kanbanBoardUriParams['baseUrl'], + isset($filterId) ? $filterId : $kanbanBoardUriParams['filterId'], + implode(",", $kanbanBoardUriParams['fields']->toArray()) + ); + + $response = $this->httpClient + ->setUri($kanbanBoardUri) + ->setAuth($user, $password) + ->send(); + + if (!$response->isSuccess()) { + throw new \UnexpectedValueException("Bad JIRA result", $response->getStatusCode()); + } + + $parsedJsonData = Decoder::decode($response->getBody(), Json::TYPE_ARRAY); + + $kanbanBoard = $this->hydrateKanbanBoard($parsedJsonData); + $this->cache->setItem(self::CACHE_KEY_KANBANBOARD, serialize($kanbanBoard)); + } else { + $kanbanBoard = unserialize($kanbanBoard); + } + + return $kanbanBoard; + } + + /** + * @param $parsedJsonData + * @return KanbanBoard + * @todo check if avatar has to be locally cached + */ + private function hydrateKanbanBoard($parsedJsonData): KanbanBoard + { + $kanbanBoard = new KanbanBoard(); + + foreach ($parsedJsonData['issues'] as $jsonIssue) { + $kanbanEntry = new KanbanEntry(); + $kanbanEntry->setId(intval($jsonIssue['id'])) + ->setKey($jsonIssue['key']) + ->setSummary($jsonIssue['fields']['summary']) + ->setExternalLink($jsonIssue['fields']['customfield_10850']) + ->setMhwebStatus($jsonIssue['fields']['customfield_10844']) + ->setAnswerCode($jsonIssue['fields']['customfield_11692']) + ->setIssuePriority($jsonIssue['fields']['priority']['name']) + ->setIssuePriorityIcon($jsonIssue['fields']['priority']['iconUrl']) + ->setLabels($jsonIssue['fields']['labels']) + ->setFixVersions($jsonIssue['fields']['fixVersions']); + + $spikeTimeSpent = 0; + array_map(function ($worklog) use (&$spikeTimeSpent) { + $spikeTimeSpent += strtoupper($worklog['comment']) == 'BLOCKED' + ? 0 + : $worklog['timeSpentSeconds']; + }, $jsonIssue['fields']['worklog']['worklogs']); + $kanbanEntry->setWorklog((int)ceil($spikeTimeSpent / 3600)); + + $secondsBlocked = 0; + array_map(function ($worklog) use (&$secondsBlocked) { + $secondsBlocked += strtoupper($worklog['comment']) == 'BLOCKED' + ? $worklog['timeSpentSeconds'] + : 0; + }, $jsonIssue['fields']['worklog']['worklogs']); + $kanbanEntry->setDaysBlocked((int)ceil($secondsBlocked / 28800)); + + // additional assignees : customfield_10401 + if (isset($jsonIssue['fields']['customfield_10401'])) { + foreach ($jsonIssue['fields']['customfield_10401'] as $assignee) { + $avatarUrl = $this->router->generateUri('avatar.image', [ + 'signum' => $assignee['key'], + ]); + + $jiraAssignee = new JiraAssignee(); + $jiraAssignee->setName($assignee['displayName']) + ->setSignum($assignee['key']) + ->setEmail(strtolower($assignee['emailAddress'])) + ->setAvatar($avatarUrl) + ->setActive($assignee['active']); + $kanbanEntry->addAdditionalAssignee($jiraAssignee); + } + } + + // externalId : customfield_10010 + if (isset($jsonIssue['fields']['customfield_10010'])) { + $kanbanEntry->setExternalId($jsonIssue['fields']['customfield_10010']); + } + + // prio : customfield_10840 + if (isset($jsonIssue['fields']['customfield_11226'])) { + $kanbanEntry->setPrio($jsonIssue['fields']['customfield_11226']); + } + + // functional area : customfield_11225 + if (isset($jsonIssue['fields']['customfield_11225'])) { + foreach ($jsonIssue['fields']['customfield_11225'] as $functionalArea) { + $kanbanEntry->addFunctionalArea($functionalArea['value']); + } + } + + // project : customfield_10840 + if (isset($jsonIssue['fields']['customfield_10840'])) { + $kanbanEntry->setProject($jsonIssue['fields']['customfield_10840']['value']); + } + + // mhweb hot : customfield_10847 + if (isset($jsonIssue['fields']['customfield_10847'])) { + $boolVal = $jsonIssue['fields']['customfield_10847'][0]['value'] == 'yes'; + $kanbanEntry->setMhwebHot($boolVal); + } + + // mhweb external : customfield_10849 + if (isset($jsonIssue['fields']['customfield_10849'])) { + $boolVal = $jsonIssue['fields']['customfield_10849'][0]['value'] == 'yes'; + $kanbanEntry->setMhwebExternal($boolVal); + } + + // team : customfield_10904 + if (isset($jsonIssue['fields']['customfield_10904'])) { + $kanbanEntry->setTeam($jsonIssue['fields']['customfield_10904']['value']); + } + + // team : customfield_12500 + if (isset($jsonIssue['fields']['customfield_12500'])) { + $kanbanEntry->setTaurusPrio($jsonIssue['fields']['customfield_12500']); + } + + // jira status + $jiraStatus = new JiraStatus(); + $jiraStatus->setName($jsonIssue['fields']['status']['name']) + ->setColor($jsonIssue['fields']['status']['statusCategory']['colorName']); + $kanbanEntry->setStatus($jiraStatus); + + // assignee + if ($jsonIssue['fields']['assignee']) { + $avatarUrl = $this->router->generateUri('avatar.image', [ + 'signum' => $jsonIssue['fields']['assignee']['key'], + ]); + + $jiraAssignee = new JiraAssignee(); + $jiraAssignee->setName($jsonIssue['fields']['assignee']['displayName']) + ->setSignum($jsonIssue['fields']['assignee']['key']) + ->setEmail(strtolower($jsonIssue['fields']['assignee']['emailAddress'])) + ->setAvatar($avatarUrl) + ->setActive($jsonIssue['fields']['assignee']['active']); + + $kanbanEntry->setAssignee($jiraAssignee); + unset($jiraAssignee); + } + + // issue type + if ($jsonIssue['fields']['issuetype']) { + $jiraIssueType = new JiraIssueType(); + $jiraIssueType->setName($jsonIssue['fields']['issuetype']['name']) + ->setDescription($jsonIssue['fields']['issuetype']['description']) + ->setIcon($jsonIssue['fields']['issuetype']['iconUrl']); + + $kanbanEntry->setIssueType($jiraIssueType); + unset($jiraIssueType); + } + + $kanbanEntry->setUpdatedAt(new \DateTime($jsonIssue['fields']['updated'])); + + switch ($jiraStatus->getName()) { + case "Backlog": + $kanbanBoard->addInbox($kanbanEntry); + break; + case "In Progress": + $kanbanBoard->addInProgress($kanbanEntry); + break; + case "Verification": + $kanbanBoard->addVerification($kanbanEntry); + break; + case "Done": + $kanbanBoard->addDone($kanbanEntry); + break; + } + unset($kanbanEntry); + } + + return $kanbanBoard; + } +} diff --git a/src/App/Service/JiraCollectorServiceFactory.php b/src/App/Service/JiraCollectorServiceFactory.php new file mode 100644 index 0000000..67ee946 --- /dev/null +++ b/src/App/Service/JiraCollectorServiceFactory.php @@ -0,0 +1,23 @@ +get('service.cache'); + $configArray = $container->get('config'); + $httpClient = $container->get(Client::class); + $config = new Config($configArray['app.config']); + $router = $container->get(RouterInterface::class); + return new JiraCollectorService($cache,$httpClient, $config, $router); + } +}