diff --git a/CHANGELOG.md b/CHANGELOG.md index 114abffc..2f4ed213 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,16 @@ ### 1.8.1 +**Tasks** + +* [141: Remove workaround used in PathVersionMiddleware](https://github.com/shlinkio/shlink/issues/141) + +**Bugs:** + +* [140: Installation failed. Warning thrown while trying to include doctrine script](https://github.com/shlinkio/shlink/issues/140) + +### 1.8.0 + **Features** * [125: Implement a path which returns a 1px image instead of a redirection](https://github.com/shlinkio/shlink/issues/125) diff --git a/config/autoload/middleware-pipeline.global.php b/config/autoload/middleware-pipeline.global.php index dad75c13..afdd78ef 100644 --- a/config/autoload/middleware-pipeline.global.php +++ b/config/autoload/middleware-pipeline.global.php @@ -21,7 +21,7 @@ return [ 'priority' => 11, ], 'pre-routing-rest' => [ -// 'path' => '/rest', + 'path' => '/rest', 'middleware' => [ PathVersionMiddleware::class, ], diff --git a/data/infra/database/.gitignore b/data/infra/database/.gitignore old mode 100644 new mode 100755 diff --git a/data/infra/nginx/.gitignore b/data/infra/nginx/.gitignore old mode 100644 new mode 100755 diff --git a/module/CLI/src/Command/Install/InstallCommand.php b/module/CLI/src/Command/Install/InstallCommand.php index 06f1be93..7c2ef2e2 100644 --- a/module/CLI/src/Command/Install/InstallCommand.php +++ b/module/CLI/src/Command/Install/InstallCommand.php @@ -134,7 +134,7 @@ class InstallCommand extends Command if (! $this->isUpdate) { $this->io->write('Initializing database...'); if (! $this->runCommand( - 'php vendor/bin/doctrine orm:schema-tool:create', + 'php vendor/doctrine/orm/bin/doctrine.php orm:schema-tool:create', 'Error generating database.', $output )) { @@ -145,7 +145,7 @@ class InstallCommand extends Command // Run database migrations $this->io->write('Updating database...'); if (! $this->runCommand( - 'php vendor/bin/doctrine-migrations migrations:migrate', + 'php vendor/doctrine/migrations/bin/doctrine-migrations.php migrations:migrate', 'Error updating database.', $output )) { @@ -155,7 +155,7 @@ class InstallCommand extends Command // Generate proxies $this->io->write('Generating proxies...'); if (! $this->runCommand( - 'php vendor/bin/doctrine orm:generate-proxies', + 'php vendor/doctrine/orm/bin/doctrine.php orm:generate-proxies', 'Error generating proxies.', $output )) { diff --git a/module/Rest/src/Middleware/PathVersionMiddleware.php b/module/Rest/src/Middleware/PathVersionMiddleware.php index f8fc0113..40de9af1 100644 --- a/module/Rest/src/Middleware/PathVersionMiddleware.php +++ b/module/Rest/src/Middleware/PathVersionMiddleware.php @@ -18,27 +18,16 @@ class PathVersionMiddleware implements MiddlewareInterface * @param RequestHandlerInterface $handler * * @return Response + * @throws \InvalidArgumentException */ public function process(Request $request, RequestHandlerInterface $handler): Response { $uri = $request->getUri(); $path = $uri->getPath(); - // TODO Workaround... Do not process the request if it does not start with rest - if (\strpos($path, '/rest') !== 0) { - return $handler->handle($request); - } - // If the path does not begin with the version number, prepend v1 by default for BC compatibility purposes - if (\strpos($path, '/rest/v') !== 0) { - $parts = \explode('/', $path); - // Remove the first empty part and the rest part - \array_shift($parts); - \array_shift($parts); - // Prepend the version prefix - \array_unshift($parts, '/rest/v1'); - - $request = $request->withUri($uri->withPath(\implode('/', $parts))); + if (\strpos($path, '/v') !== 0) { + $request = $request->withUri($uri->withPath('/v1' . $uri->getPath())); } return $handler->handle($request); diff --git a/module/Rest/test/Middleware/PathVersionMiddlewareTest.php b/module/Rest/test/Middleware/PathVersionMiddlewareTest.php index e024c128..ae483abf 100644 --- a/module/Rest/test/Middleware/PathVersionMiddlewareTest.php +++ b/module/Rest/test/Middleware/PathVersionMiddlewareTest.php @@ -30,22 +30,7 @@ class PathVersionMiddlewareTest extends TestCase */ public function whenVersionIsProvidedRequestRemainsUnchanged() { - $request = ServerRequestFactory::fromGlobals()->withUri(new Uri('/rest/v2/foo')); - - $delegate = $this->prophesize(RequestHandlerInterface::class); - $process = $delegate->handle($request)->willReturn(new Response()); - - $this->middleware->process($request, $delegate->reveal()); - - $process->shouldHaveBeenCalled(); - } - - /** - * @test - */ - public function whenPathDoesNotStartWithRestRemainsUnchanged() - { - $request = ServerRequestFactory::fromGlobals()->withUri(new Uri('/foo')); + $request = ServerRequestFactory::fromGlobals()->withUri(new Uri('/v2/foo')); $delegate = $this->prophesize(RequestHandlerInterface::class); $process = $delegate->handle($request)->willReturn(new Response()); @@ -60,14 +45,14 @@ class PathVersionMiddlewareTest extends TestCase */ public function versionOneIsPrependedWhenNoVersionIsDefined() { - $request = ServerRequestFactory::fromGlobals()->withUri(new Uri('/rest/bar/baz')); + $request = ServerRequestFactory::fromGlobals()->withUri(new Uri('/bar/baz')); $delegate = $this->prophesize(RequestHandlerInterface::class); $delegate->handle(Argument::type(Request::class))->will(function (array $args) use ($request) { $req = \array_shift($args); Assert::assertNotSame($request, $req); - Assert::assertEquals('/rest/v1/bar/baz', $req->getUri()->getPath()); + Assert::assertEquals('/v1/bar/baz', $req->getUri()->getPath()); return new Response(); });