-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
80939e2
commit 478468e
Showing
2 changed files
with
273 additions
and
43 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,57 +1,49 @@ | ||
<?php | ||
|
||
namespace Hans\Valravn\Commands; | ||
namespace Hans\Valravn\Commands; | ||
|
||
use Illuminate\Console\Command; | ||
use Illuminate\Support\Facades\Artisan; | ||
use Throwable; | ||
use Illuminate\Console\Command; | ||
use Illuminate\Support\Facades\Artisan; | ||
use Throwable; | ||
|
||
class Entity extends Command { | ||
/** | ||
* The name and signature of the console command. | ||
* | ||
* @var string | ||
*/ | ||
protected $signature = 'valravn:entity {name} {--namespace=} {--v=v1}'; | ||
class Entity extends Command { | ||
/** | ||
* The name and signature of the console command. | ||
* | ||
* @var string | ||
*/ | ||
protected $signature = 'valravn:entity {namespace} {name} {--v=1}'; | ||
|
||
/** | ||
* The console command description. | ||
* | ||
* @var string | ||
*/ | ||
protected $description = 'creates an entity includes controllers, requests, resources, model and migration, seeder and factory and more.'; | ||
/** | ||
* The console command description. | ||
* | ||
* @var string | ||
*/ | ||
protected $description = 'creates an entity includes controllers, requests, resources, model and migration, seeder and factory and more.'; | ||
|
||
/** | ||
* Execute the console command. | ||
* | ||
* @return void | ||
* @throws Throwable | ||
*/ | ||
public function handle() { | ||
$name = $this->argument( 'name' ); | ||
$namespace = $this->option( 'namespace' ); | ||
$version = $this->option( 'v' ); | ||
/** | ||
* Execute the console command. | ||
* | ||
* @return void | ||
* @throws Throwable | ||
*/ | ||
public function handle() { | ||
$name = $this->argument( 'name' ); | ||
$namespace = $this->argument( 'namespace' ); | ||
$version = 'V' . filter_var( $this->option( 'v' ), FILTER_SANITIZE_NUMBER_INT ); | ||
|
||
if ( ! $namespace ) { | ||
$this->error( 'namespace is required!' ); | ||
Artisan::call( "valravn:exception $namespace $name" ); | ||
|
||
return; | ||
} | ||
Artisan::call( "valravn:model $namespace $name --seeder --factory --migration" ); | ||
|
||
Artisan::call( "valravn:exception $name --namespace $namespace" ); | ||
Artisan::call( "valravn:controllers $namespace $name --v $version --requests --resources" ); | ||
|
||
Artisan::call( "valravn:model $name --namespace $namespace -sfm" ); | ||
Artisan::call( "valravn:policy $namespace $name" ); | ||
|
||
Artisan::call( "valravn:migration $name --namespace $namespace" ); | ||
Artisan::call( "valravn:repository $namespace $name" ); | ||
|
||
Artisan::call( "valravn:controllers $name --namespace $namespace --v $version --requests --resources" ); | ||
Artisan::call( "valravn:service $namespace $name --relations --actions" ); | ||
|
||
Artisan::call( "valravn:policy $name --namespace $namespace" ); | ||
} | ||
|
||
Artisan::call( "valravn:repository $name --namespace $namespace" ); | ||
|
||
Artisan::call( "valravn:service $name --namespace $namespace --relations" ); | ||
|
||
} | ||
|
||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,238 @@ | ||
<?php | ||
|
||
namespace Hans\Tests\Valravn\Feature\Commands; | ||
|
||
use Hans\Tests\Valravn\TestCase; | ||
use Illuminate\Support\Facades\File; | ||
|
||
class EntityTest extends TestCase { | ||
|
||
/** | ||
* @test | ||
* | ||
* @return void | ||
*/ | ||
public function entity(): void { | ||
$exception = app_path( "Exceptions/Blog/Post/PostException.php" ); | ||
$errorCode = app_path( "Exceptions/Blog/Post/PostErrorCode.php" ); | ||
|
||
$model = app_path( "Models/Blog/Post.php" ); | ||
$factory = base_path( "database/factories/Blog/PostFactory.php" ); | ||
$seeder = base_path( "database/seeders/Blog/PostSeeder.php" ); | ||
$datePrefix = now()->format( 'Y_m_d_His' ); | ||
$migration = base_path( "database/migrations/Blog/{$datePrefix}_create_posts_table.php" ); | ||
|
||
$crud = app_path( "Http/Controllers/V1/Blog/Post/PostCrudController.php" ); | ||
$relations = app_path( "Http/Controllers/V1/Blog/Post/PostRelationsController.php" ); | ||
$actions = app_path( "Http/Controllers/V1/Blog/Post/PostActionsController.php" ); | ||
$store = app_path( "Http/Requests/V1/Blog/Post/PostStoreRequest.php" ); | ||
$update = app_path( "Http/Requests/V1/Blog/Post/PostUpdateRequest.php" ); | ||
$resource = app_path( "Http/Resources/V1/Blog/Post/PostResource.php" ); | ||
$collection = app_path( "Http/Resources/V1/Blog/Post/PostCollection.php" ); | ||
|
||
$policy = app_path( "Policies/Blog/PostPolicy.php" ); | ||
|
||
$contract = app_path( "Repositories/Contracts/Blog/IPostRepository.php" ); | ||
$repository = app_path( "Repositories/Blog/PostRepository.php" ); | ||
|
||
$crudService = app_path( "Services/Blog/Post/PostCrudService.php" ); | ||
$relationsService = app_path( "Services/Blog/Post/PostRelationsService.php" ); | ||
$actionsService = app_path( "Services/Blog/Post/PostActionsService.php" ); | ||
|
||
File::delete( [ | ||
$exception, | ||
$errorCode, | ||
|
||
$model, | ||
$factory, | ||
$seeder, | ||
$migration, | ||
|
||
$crud, | ||
$relations, | ||
$actions, | ||
$store, | ||
$update, | ||
$resource, | ||
$collection, | ||
|
||
$policy, | ||
|
||
$contract, | ||
$repository, | ||
|
||
$crudService, | ||
$relationsService, | ||
$actionsService, | ||
] ); | ||
|
||
self::assertFileDoesNotExist( $exception ); | ||
self::assertFileDoesNotExist( $errorCode ); | ||
|
||
self::assertFileDoesNotExist( $model ); | ||
self::assertFileDoesNotExist( $factory ); | ||
self::assertFileDoesNotExist( $seeder ); | ||
self::assertFileDoesNotExist( $migration ); | ||
|
||
self::assertFileDoesNotExist( $crud ); | ||
self::assertFileDoesNotExist( $relations ); | ||
self::assertFileDoesNotExist( $actions ); | ||
self::assertFileDoesNotExist( $store ); | ||
self::assertFileDoesNotExist( $update ); | ||
self::assertFileDoesNotExist( $resource ); | ||
self::assertFileDoesNotExist( $collection ); | ||
|
||
self::assertFileDoesNotExist( $policy ); | ||
|
||
self::assertFileDoesNotExist( $contract ); | ||
self::assertFileDoesNotExist( $repository ); | ||
|
||
self::assertFileDoesNotExist( $crudService ); | ||
self::assertFileDoesNotExist( $relationsService ); | ||
self::assertFileDoesNotExist( $actionsService ); | ||
|
||
$command = $this->artisan( "valravn:entity blog posts" ); | ||
$command->execute(); | ||
|
||
self::assertFileExists( $exception ); | ||
self::assertFileExists( $errorCode ); | ||
|
||
self::assertFileExists( $model ); | ||
self::assertFileExists( $factory ); | ||
self::assertFileExists( $seeder ); | ||
self::assertFileExists( $migration ); | ||
|
||
self::assertFileExists( $crud ); | ||
self::assertFileExists( $relations ); | ||
self::assertFileExists( $actions ); | ||
self::assertFileExists( $store ); | ||
self::assertFileExists( $update ); | ||
self::assertFileExists( $resource ); | ||
self::assertFileExists( $collection ); | ||
|
||
self::assertFileExists( $policy ); | ||
|
||
self::assertFileExists( $contract ); | ||
self::assertFileExists( $repository ); | ||
|
||
self::assertFileExists( $crudService ); | ||
self::assertFileExists( $relationsService ); | ||
self::assertFileExists( $actionsService ); | ||
} | ||
|
||
/** | ||
* @test | ||
* | ||
* @return void | ||
*/ | ||
public function version(): void { | ||
$exception = app_path( "Exceptions/Blog/Post/PostException.php" ); | ||
$errorCode = app_path( "Exceptions/Blog/Post/PostErrorCode.php" ); | ||
|
||
$model = app_path( "Models/Blog/Post.php" ); | ||
$factory = base_path( "database/factories/Blog/PostFactory.php" ); | ||
$seeder = base_path( "database/seeders/Blog/PostSeeder.php" ); | ||
$datePrefix = now()->format( 'Y_m_d_His' ); | ||
$migration = base_path( "database/migrations/Blog/{$datePrefix}_create_posts_table.php" ); | ||
|
||
$crud = app_path( "Http/Controllers/V2/Blog/Post/PostCrudController.php" ); | ||
$relations = app_path( "Http/Controllers/V2/Blog/Post/PostRelationsController.php" ); | ||
$actions = app_path( "Http/Controllers/V2/Blog/Post/PostActionsController.php" ); | ||
$store = app_path( "Http/Requests/V2/Blog/Post/PostStoreRequest.php" ); | ||
$update = app_path( "Http/Requests/V2/Blog/Post/PostUpdateRequest.php" ); | ||
$resource = app_path( "Http/Resources/V2/Blog/Post/PostResource.php" ); | ||
$collection = app_path( "Http/Resources/V2/Blog/Post/PostCollection.php" ); | ||
|
||
$policy = app_path( "Policies/Blog/PostPolicy.php" ); | ||
|
||
$contract = app_path( "Repositories/Contracts/Blog/IPostRepository.php" ); | ||
$repository = app_path( "Repositories/Blog/PostRepository.php" ); | ||
|
||
$crudService = app_path( "Services/Blog/Post/PostCrudService.php" ); | ||
$relationsService = app_path( "Services/Blog/Post/PostRelationsService.php" ); | ||
$actionsService = app_path( "Services/Blog/Post/PostActionsService.php" ); | ||
|
||
File::delete( [ | ||
$exception, | ||
$errorCode, | ||
|
||
$model, | ||
$factory, | ||
$seeder, | ||
$migration, | ||
|
||
$crud, | ||
$relations, | ||
$actions, | ||
$store, | ||
$update, | ||
$resource, | ||
$collection, | ||
|
||
$policy, | ||
|
||
$contract, | ||
$repository, | ||
|
||
$crudService, | ||
$relationsService, | ||
$actionsService, | ||
] ); | ||
|
||
self::assertFileDoesNotExist( $exception ); | ||
self::assertFileDoesNotExist( $errorCode ); | ||
|
||
self::assertFileDoesNotExist( $model ); | ||
self::assertFileDoesNotExist( $factory ); | ||
self::assertFileDoesNotExist( $seeder ); | ||
self::assertFileDoesNotExist( $migration ); | ||
|
||
self::assertFileDoesNotExist( $crud ); | ||
self::assertFileDoesNotExist( $relations ); | ||
self::assertFileDoesNotExist( $actions ); | ||
self::assertFileDoesNotExist( $store ); | ||
self::assertFileDoesNotExist( $update ); | ||
self::assertFileDoesNotExist( $resource ); | ||
self::assertFileDoesNotExist( $collection ); | ||
|
||
self::assertFileDoesNotExist( $policy ); | ||
|
||
self::assertFileDoesNotExist( $contract ); | ||
self::assertFileDoesNotExist( $repository ); | ||
|
||
self::assertFileDoesNotExist( $crudService ); | ||
self::assertFileDoesNotExist( $relationsService ); | ||
self::assertFileDoesNotExist( $actionsService ); | ||
|
||
$command = $this->artisan( "valravn:entity blog posts --v 2" ); | ||
$command->execute(); | ||
|
||
self::assertFileExists( $exception ); | ||
self::assertFileExists( $errorCode ); | ||
|
||
self::assertFileExists( $model ); | ||
self::assertFileExists( $factory ); | ||
self::assertFileExists( $seeder ); | ||
self::assertFileExists( $migration ); | ||
|
||
self::assertFileExists( $crud ); | ||
self::assertFileExists( $relations ); | ||
self::assertFileExists( $actions ); | ||
self::assertFileExists( $store ); | ||
self::assertFileExists( $update ); | ||
self::assertFileExists( $resource ); | ||
self::assertFileExists( $collection ); | ||
|
||
self::assertFileExists( $policy ); | ||
|
||
self::assertFileExists( $contract ); | ||
self::assertFileExists( $repository ); | ||
|
||
self::assertFileExists( $crudService ); | ||
self::assertFileExists( $relationsService ); | ||
self::assertFileExists( $actionsService ); | ||
|
||
} | ||
|
||
|
||
} |