diff --git a/app/Console/Commands/MakeModule.php b/app/Console/Commands/MakeModule.php index c831196c7510..b014d8863985 100644 --- a/app/Console/Commands/MakeModule.php +++ b/app/Console/Commands/MakeModule.php @@ -65,6 +65,8 @@ class MakeModule extends Command Artisan::call('ninja:make-class', ['name' => $name, 'module' => $name, 'class' => 'request']); Artisan::call('ninja:make-class', ['name' => $name, 'module' => $name, 'class' => 'request', 'prefix' => 'create']); Artisan::call('ninja:make-class', ['name' => $name, 'module' => $name, 'class' => 'request', 'prefix' => 'update']); + Artisan::call('ninja:make-class', ['name' => $name, 'module' => $name, 'class' => 'api-controller']); + Artisan::call('ninja:make-class', ['name' => $name, 'module' => $name, 'class' => 'transformer']); Artisan::call('module:dump'); } diff --git a/app/Console/Commands/stubs/controller.stub b/app/Console/Commands/stubs/controller.stub index c7a9c991746b..b21fddb0076f 100755 --- a/app/Console/Commands/stubs/controller.stub +++ b/app/Console/Commands/stubs/controller.stub @@ -3,13 +3,13 @@ namespace $CLASS_NAMESPACE$; use Auth; -use Illuminate\Http\Request; -use Illuminate\Http\Response; -use Illuminate\Routing\Controller; +//use Illuminate\Http\Request; +//use Illuminate\Http\Response; +//use Illuminate\Routing\Controller; use App\Http\Controllers\BaseController; use App\Services\DatatableService; -use Modules\$STUDLY_NAME$\Repositories\$STUDLY_NAME$Repository; use Modules\$STUDLY_NAME$\Datatables\$STUDLY_NAME$Datatable; +use Modules\$STUDLY_NAME$\Repositories\$STUDLY_NAME$Repository; use Modules\$STUDLY_NAME$\Http\Requests\$STUDLY_NAME$Request; use Modules\$STUDLY_NAME$\Http\Requests\Create$STUDLY_NAME$Request; use Modules\$STUDLY_NAME$\Http\Requests\Update$STUDLY_NAME$Request; diff --git a/app/Console/Commands/stubs/repository.stub b/app/Console/Commands/stubs/repository.stub index 0fecf60bf46e..a4b358087c99 100644 --- a/app/Console/Commands/stubs/repository.stub +++ b/app/Console/Commands/stubs/repository.stub @@ -15,6 +15,13 @@ class $STUDLY_NAME$Repository extends BaseRepository return 'Modules\$STUDLY_NAME$\Models\$STUDLY_NAME$'; } + public function all() + { + return $STUDLY_NAME$::scope() + ->orderBy('created_at', 'desc') + ->withTrashed(); + } + public function find($filter = null, $userId = false) { $query = DB::table('$LOWER_NAME$') diff --git a/app/Console/Commands/stubs/routes.stub b/app/Console/Commands/stubs/routes.stub index 6860ed2290ef..6de6769750b8 100755 --- a/app/Console/Commands/stubs/routes.stub +++ b/app/Console/Commands/stubs/routes.stub @@ -6,3 +6,8 @@ Route::group(['middleware' => 'auth', 'namespace' => '$MODULE_NAMESPACE$\$STUDLY Route::post('$LOWER_NAME$/bulk', '$STUDLY_NAME$Controller@bulk'); Route::get('api/$LOWER_NAME$', '$STUDLY_NAME$Controller@datatable'); }); + +Route::group(['middleware' => 'api', 'namespace' => '$MODULE_NAMESPACE$\$STUDLY_NAME$\Http\ApiControllers', 'prefix' => 'api/v1'], function() +{ + Route::resource('$LOWER_NAME$', '$STUDLY_NAME$ApiController'); +}); diff --git a/app/Models/EntityModel.php b/app/Models/EntityModel.php index 0fef21200f6d..e272b4350857 100644 --- a/app/Models/EntityModel.php +++ b/app/Models/EntityModel.php @@ -65,7 +65,7 @@ class EntityModel extends Eloquent // store references to the original user/account to prevent needing to reload them $entity->setRelation('user', $user); $entity->setRelation('account', $account); - + if (method_exists($className, 'trashed')){ $lastEntity = $className::whereAccountId($entity->account_id)->withTrashed(); } else { @@ -211,6 +211,12 @@ class EntityModel extends Eloquent */ public static function getTransformerName($entityType) { + if ( ! Utils::isNinjaProd()) { + if ($module = \Module::find($entityType)) { + return "Modules\\{$module->getName()}\\Transformers\\{$module->getName()}Transformer"; + } + } + return 'App\\Ninja\\Transformers\\' . ucwords(Utils::toCamelCase($entityType)) . 'Transformer'; } diff --git a/config/modules.php b/config/modules.php index 8de9da8c5ab3..0e78fc317eb0 100644 --- a/config/modules.php +++ b/config/modules.php @@ -115,6 +115,8 @@ return [ 'policy' => 'Policies', 'auth-provider' => 'AuthProviders', 'presenter' => 'Presenters', + 'api-controller' => 'Http/ApiControllers', + 'transformer' => 'Transformers', ], ], /*