Add HTTP method to App\Arguments
This commit is contained in:
parent
c7f2ba213b
commit
ee2a15d822
2 changed files with 40 additions and 2 deletions
|
@ -52,14 +52,19 @@ class Arguments
|
|||
* @var int The count of arguments
|
||||
*/
|
||||
private $argc;
|
||||
/**
|
||||
* @var string The used HTTP method
|
||||
*/
|
||||
private $method;
|
||||
|
||||
public function __construct(string $queryString = '', string $command = '', string $moduleName = '', array $argv = [], int $argc = 0)
|
||||
public function __construct(string $queryString = '', string $command = '', string $moduleName = '', array $argv = [], int $argc = 0, string $method = Router::GET)
|
||||
{
|
||||
$this->queryString = $queryString;
|
||||
$this->command = $command;
|
||||
$this->moduleName = $moduleName;
|
||||
$this->argv = $argv;
|
||||
$this->argc = $argc;
|
||||
$this->method = $method;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -94,6 +99,11 @@ class Arguments
|
|||
return $this->argv;
|
||||
}
|
||||
|
||||
public function getMethod()
|
||||
{
|
||||
return $this->method;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int The count of arguments of this call
|
||||
*/
|
||||
|
@ -199,6 +209,8 @@ class Arguments
|
|||
$module = "login";
|
||||
}
|
||||
|
||||
return new Arguments($queryString, $command, $module, $argv, $argc);
|
||||
$httpMethod = in_array($server['REQUEST_METHOD'] ?? '', Router::ALLOWED_METHODS) ? $server['REQUEST_METHOD'] : Router::GET;
|
||||
|
||||
return new Arguments($queryString, $command, $module, $argv, $argc, $httpMethod);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -32,6 +32,7 @@ class ArgumentsTest extends TestCase
|
|||
self::assertEquals($assert['command'], $arguments->getCommand());
|
||||
self::assertEquals($assert['argv'], $arguments->getArgv());
|
||||
self::assertEquals($assert['argc'], $arguments->getArgc());
|
||||
self::assertEquals($assert['method'], $arguments->getMethod());
|
||||
self::assertCount($assert['argc'], $arguments->getArgv());
|
||||
}
|
||||
|
||||
|
@ -47,6 +48,7 @@ class ArgumentsTest extends TestCase
|
|||
'command' => '',
|
||||
'argv' => [],
|
||||
'argc' => 0,
|
||||
'method' => App\Router::GET
|
||||
],
|
||||
$arguments);
|
||||
}
|
||||
|
@ -60,6 +62,7 @@ class ArgumentsTest extends TestCase
|
|||
'command' => 'profile/test/it',
|
||||
'argv' => ['profile', 'test', 'it'],
|
||||
'argc' => 3,
|
||||
'method' => App\Router::GET,
|
||||
],
|
||||
'server' => [
|
||||
'QUERY_STRING' => 'pagename=profile/test/it&arg1=value1&arg2=value2',
|
||||
|
@ -74,6 +77,7 @@ class ArgumentsTest extends TestCase
|
|||
'command' => '~test/it',
|
||||
'argv' => ['~test', 'it'],
|
||||
'argc' => 2,
|
||||
'method' => App\Router::GET,
|
||||
],
|
||||
'server' => [
|
||||
'QUERY_STRING' => 'pagename=~test/it&arg1=value1&arg2=value2',
|
||||
|
@ -88,6 +92,7 @@ class ArgumentsTest extends TestCase
|
|||
'command' => 'u/test/it',
|
||||
'argv' => ['u', 'test', 'it'],
|
||||
'argc' => 3,
|
||||
'method' => App\Router::GET,
|
||||
],
|
||||
'server' => [
|
||||
'QUERY_STRING' => 'pagename=u/test/it&arg1=value1&arg2=value2',
|
||||
|
@ -102,6 +107,7 @@ class ArgumentsTest extends TestCase
|
|||
'command' => 'profile/test/it',
|
||||
'argv' => ['profile', 'test', 'it'],
|
||||
'argc' => 3,
|
||||
'method' => App\Router::GET,
|
||||
],
|
||||
'server' => [
|
||||
'QUERY_STRING' => 'pagename=profile/test/it&arg1=value1&arg2=value2/',
|
||||
|
@ -116,6 +122,7 @@ class ArgumentsTest extends TestCase
|
|||
'command' => 'profile/test/it',
|
||||
'argv' => ['profile', 'test', 'it'],
|
||||
'argc' => 3,
|
||||
'method' => App\Router::GET,
|
||||
],
|
||||
'server' => [
|
||||
'QUERY_STRING' => 'wrong=profile/test/it&arg1=value1&arg2=value2/',
|
||||
|
@ -130,6 +137,7 @@ class ArgumentsTest extends TestCase
|
|||
'command' => 'notvalid/it',
|
||||
'argv' => ['notvalid', 'it'],
|
||||
'argc' => 2,
|
||||
'method' => App\Router::GET,
|
||||
],
|
||||
'server' => [
|
||||
'QUERY_STRING' => 'pagename=notvalid/it&arg1=value1&arg2=value2/',
|
||||
|
@ -143,6 +151,7 @@ class ArgumentsTest extends TestCase
|
|||
'command' => '',
|
||||
'argv' => [],
|
||||
'argc' => 0,
|
||||
'method' => App\Router::GET,
|
||||
],
|
||||
'server' => [
|
||||
'QUERY_STRING' => 'arg1=value1&arg2=value2/',
|
||||
|
@ -156,6 +165,7 @@ class ArgumentsTest extends TestCase
|
|||
'command' => 'api/call.json',
|
||||
'argv' => ['api', 'call.json'],
|
||||
'argc' => 2,
|
||||
'method' => App\Router::GET,
|
||||
],
|
||||
'server' => [
|
||||
'QUERY_STRING' => 'pagename=api/call.json',
|
||||
|
@ -164,6 +174,22 @@ class ArgumentsTest extends TestCase
|
|||
'pagename' => 'api/call.json'
|
||||
],
|
||||
],
|
||||
'withHTTPMethod' => [
|
||||
'assert' => [
|
||||
'queryString' => 'api/call.json',
|
||||
'command' => 'api/call.json',
|
||||
'argv' => ['api', 'call.json'],
|
||||
'argc' => 2,
|
||||
'method' => App\Router::POST,
|
||||
],
|
||||
'server' => [
|
||||
'QUERY_STRING' => 'pagename=api/call.json',
|
||||
'REQUEST_METHOD' => App\Router::POST,
|
||||
],
|
||||
'get' => [
|
||||
'pagename' => 'api/call.json'
|
||||
],
|
||||
],
|
||||
];
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue