Browse Source

Generate Api route for crud-api command

Rename WebRouteGenerator into RouteGenerator
tags/1.1.0
Nafies Luthfi 8 years ago
parent
commit
cb85c48b22
  1. 2
      src/CrudApiMake.php
  2. 2
      src/CrudMake.php
  3. 2
      src/CrudSimpleMake.php
  4. 12
      src/Generators/RouteGenerator.php
  5. 2
      src/stubs/route-api.stub
  6. 2
      tests/CrudApiMakeCommandTest.php
  7. 36
      tests/Generators/Api/RouteApiGeneratorTest.php

2
src/CrudApiMake.php

@ -96,7 +96,7 @@ class CrudApiMake extends GeneratorCommand
*/
public function generateRoutes()
{
app('Luthfi\CrudGenerator\Generators\WebRouteGenerator', ['command' => $this])->generate();
app('Luthfi\CrudGenerator\Generators\RouteGenerator', ['command' => $this])->generate('api');
}
/**

2
src/CrudMake.php

@ -96,7 +96,7 @@ class CrudMake extends GeneratorCommand
*/
public function generateRoutes()
{
app('Luthfi\CrudGenerator\Generators\WebRouteGenerator', ['command' => $this])->generate();
app('Luthfi\CrudGenerator\Generators\RouteGenerator', ['command' => $this])->generate();
}
/**

2
src/CrudSimpleMake.php

@ -96,7 +96,7 @@ class CrudSimpleMake extends GeneratorCommand
*/
public function generateRoutes()
{
app('Luthfi\CrudGenerator\Generators\WebRouteGenerator', ['command' => $this])->generate();
app('Luthfi\CrudGenerator\Generators\RouteGenerator', ['command' => $this])->generate();
}
/**

12
src/Generators/WebRouteGenerator.php → src/Generators/RouteGenerator.php

@ -3,20 +3,20 @@
namespace Luthfi\CrudGenerator\Generators;
/**
* Web Route Generator Class
* Route Generator Class
*/
class WebRouteGenerator extends BaseGenerator
class RouteGenerator extends BaseGenerator
{
/**
* {@inheritDoc}
*/
public function generate(string $type = 'full')
public function generate(string $type = 'web')
{
$webRoutePath = $this->makeRouteFile(base_path('routes'), 'web.php');
$webRoutePath = $this->makeRouteFile(base_path('routes'), $type.'.php');
$this->files->append($webRoutePath, $this->getContent('route-web'));
$this->files->append($webRoutePath, $this->getContent('route-'.$type));
$this->command->info($this->modelNames['model_name'].' resource route generated on routes/web.php.');
$this->command->info($this->modelNames['model_name'].' resource route generated on routes/'.$type.'.php.');
}
/**

2
src/stubs/route-api.stub

@ -0,0 +1,2 @@
Route::resource('masters', 'MastersController');

2
tests/CrudApiMakeCommandTest.php

@ -25,7 +25,7 @@ class CrudApiMakeCommandTest extends TestCase
$localeConfig = config('app.locale');
$this->assertFileExists(resource_path("lang/{$localeConfig}/{$this->lang_name}.php"));
$this->assertFileExists(base_path("routes/web.php"));
$this->assertFileExists(base_path("routes/api.php"));
$this->assertFileExists(app_path("Policies/{$this->model_name}Policy.php"));
$this->assertFileExists(database_path("factories/{$this->model_name}Factory.php"));
$this->assertFileExists(base_path("tests/Unit/Models/{$this->model_name}Test.php"));

36
tests/Generators/Api/RouteApiGeneratorTest.php

@ -0,0 +1,36 @@
<?php
namespace Tests\Generators\Api;
use Tests\TestCase;
class RouteApiGeneratorTest extends TestCase
{
/** @test */
public function it_creates_correct_api_route_content()
{
$this->artisan('make:crud-api', ['name' => $this->model_name, '--no-interaction' => true]);
$routeApiPath = base_path('routes/api.php');
$this->assertFileExists($routeApiPath);
$routeApiFileContent = "<?php
Route::resource('{$this->table_name}', '{$this->plural_model_name}Controller');
";
$this->assertEquals($routeApiFileContent, file_get_contents($routeApiPath));
}
/** @test */
public function it_creates_correct_api_route_content_with_parent_command_option()
{
$this->artisan('make:crud-api', ['name' => $this->model_name, '--parent' => 'Projects', '--no-interaction' => true]);
$routeApiPath = base_path('routes/api.php');
$this->assertFileExists($routeApiPath);
$routeApiFileContent = "<?php
Route::resource('{$this->table_name}', 'Projects\\{$this->plural_model_name}Controller');
";
$this->assertEquals($routeApiFileContent, file_get_contents($routeApiPath));
}
}
Loading…
Cancel
Save