From 750ee4aec45b0a0f09c6b33fcf80cdaf55f46b34 Mon Sep 17 00:00:00 2001 From: Daeng Deni Mardaeni Date: Tue, 29 Oct 2024 07:38:29 +0700 Subject: [PATCH] initial commit --- app/Http/Controllers/.gitkeep | 0 app/Http/Controllers/BasicdataController.php | 65 ++++++++++ app/Providers/.gitkeep | 0 app/Providers/BasicdataServiceProvider.php | 118 +++++++++++++++++++ app/Providers/EventServiceProvider.php | 30 +++++ app/Providers/RouteServiceProvider.php | 50 ++++++++ composer.json | 31 +++++ config/.gitkeep | 0 config/config.php | 5 + database/factories/.gitkeep | 0 database/migrations/.gitkeep | 0 database/seeders/.gitkeep | 0 database/seeders/BasicdataDatabaseSeeder.php | 16 +++ module.json | 17 +++ package.json | 15 +++ resources/assets/.gitkeep | 0 resources/assets/js/app.js | 0 resources/assets/sass/app.scss | 0 resources/views/.gitkeep | 0 routes/.gitkeep | 0 routes/api.php | 19 +++ routes/web.php | 19 +++ tests/Feature/.gitkeep | 0 tests/Unit/.gitkeep | 0 vite.config.js | 4 + 25 files changed, 389 insertions(+) create mode 100644 app/Http/Controllers/.gitkeep create mode 100644 app/Http/Controllers/BasicdataController.php create mode 100644 app/Providers/.gitkeep create mode 100644 app/Providers/BasicdataServiceProvider.php create mode 100644 app/Providers/EventServiceProvider.php create mode 100644 app/Providers/RouteServiceProvider.php create mode 100644 composer.json create mode 100644 config/.gitkeep create mode 100644 config/config.php create mode 100644 database/factories/.gitkeep create mode 100644 database/migrations/.gitkeep create mode 100644 database/seeders/.gitkeep create mode 100644 database/seeders/BasicdataDatabaseSeeder.php create mode 100644 module.json create mode 100644 package.json create mode 100644 resources/assets/.gitkeep create mode 100644 resources/assets/js/app.js create mode 100644 resources/assets/sass/app.scss create mode 100644 resources/views/.gitkeep create mode 100644 routes/.gitkeep create mode 100644 routes/api.php create mode 100644 routes/web.php create mode 100644 tests/Feature/.gitkeep create mode 100644 tests/Unit/.gitkeep create mode 100644 vite.config.js diff --git a/app/Http/Controllers/.gitkeep b/app/Http/Controllers/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/app/Http/Controllers/BasicdataController.php b/app/Http/Controllers/BasicdataController.php new file mode 100644 index 0000000..6b1f9f8 --- /dev/null +++ b/app/Http/Controllers/BasicdataController.php @@ -0,0 +1,65 @@ +registerCommands(); + $this->registerCommandSchedules(); + $this->registerTranslations(); + $this->registerConfig(); + $this->registerViews(); + $this->loadMigrationsFrom(module_path($this->name, 'database/migrations')); + } + + /** + * Register the service provider. + */ + public function register(): void + { + $this->app->register(EventServiceProvider::class); + $this->app->register(RouteServiceProvider::class); + } + + /** + * Register commands in the format of Command::class + */ + protected function registerCommands(): void + { + // $this->commands([]); + } + + /** + * Register command Schedules. + */ + protected function registerCommandSchedules(): void + { + // $this->app->booted(function () { + // $schedule = $this->app->make(Schedule::class); + // $schedule->command('inspire')->hourly(); + // }); + } + + /** + * Register translations. + */ + public function registerTranslations(): void + { + $langPath = resource_path('lang/modules/'.$this->nameLower); + + if (is_dir($langPath)) { + $this->loadTranslationsFrom($langPath, $this->nameLower); + $this->loadJsonTranslationsFrom($langPath); + } else { + $this->loadTranslationsFrom(module_path($this->name, 'lang'), $this->nameLower); + $this->loadJsonTranslationsFrom(module_path($this->name, 'lang')); + } + } + + /** + * Register config. + */ + protected function registerConfig(): void + { + $this->publishes([module_path($this->name, 'config/config.php') => config_path($this->nameLower.'.php')], 'config'); + $this->mergeConfigFrom(module_path($this->name, 'config/config.php'), $this->nameLower); + } + + /** + * Register views. + */ + public function registerViews(): void + { + $viewPath = resource_path('views/modules/'.$this->nameLower); + $sourcePath = module_path($this->name, 'resources/views'); + + $this->publishes([$sourcePath => $viewPath], ['views', $this->nameLower.'-module-views']); + + $this->loadViewsFrom(array_merge($this->getPublishableViewPaths(), [$sourcePath]), $this->nameLower); + + $componentNamespace = $this->module_namespace($this->name, $this->app_path(config('modules.paths.generator.component-class.path'))); + Blade::componentNamespace($componentNamespace, $this->nameLower); + } + + /** + * Get the services provided by the provider. + */ + public function provides(): array + { + return []; + } + + private function getPublishableViewPaths(): array + { + $paths = []; + foreach (config('view.paths') as $path) { + if (is_dir($path.'/modules/'.$this->nameLower)) { + $paths[] = $path.'/modules/'.$this->nameLower; + } + } + + return $paths; + } +} diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php new file mode 100644 index 0000000..9773e49 --- /dev/null +++ b/app/Providers/EventServiceProvider.php @@ -0,0 +1,30 @@ +> + */ + protected $listen = []; + + /** + * Indicates if events should be discovered. + * + * @var bool + */ + protected static $shouldDiscoverEvents = true; + + /** + * Configure the proper event listeners for email verification. + */ + protected function configureEmailVerification(): void + { + // + } +} diff --git a/app/Providers/RouteServiceProvider.php b/app/Providers/RouteServiceProvider.php new file mode 100644 index 0000000..1576532 --- /dev/null +++ b/app/Providers/RouteServiceProvider.php @@ -0,0 +1,50 @@ +mapApiRoutes(); + $this->mapWebRoutes(); + } + + /** + * Define the "web" routes for the application. + * + * These routes all receive session state, CSRF protection, etc. + */ + protected function mapWebRoutes(): void + { + Route::middleware('web')->group(module_path($this->name, '/routes/web.php')); + } + + /** + * Define the "api" routes for the application. + * + * These routes are typically stateless. + */ + protected function mapApiRoutes(): void + { + Route::middleware('api')->prefix('api')->name('api.')->group(module_path($this->name, '/routes/api.php')); + } +} diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..4f2c7ee --- /dev/null +++ b/composer.json @@ -0,0 +1,31 @@ +{ + "name": "daengdeni/logs-module", + "type": "laravel-module", + "description": "", + "authors": [ + { + "name": "Daeng Deni Mardaeni", + "email": "ddeni05@gmail.com" + } + ], + "extra": { + "laravel": { + "providers": [], + "aliases": { + + } + } + }, + "autoload": { + "psr-4": { + "Modules\\Basicdata\\": "app/", + "Modules\\Basicdata\\Database\\Factories\\": "database/factories/", + "Modules\\Basicdata\\Database\\Seeders\\": "database/seeders/" + } + }, + "autoload-dev": { + "psr-4": { + "Modules\\Basicdata\\Tests\\": "tests/" + } + } +} diff --git a/config/.gitkeep b/config/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/config/config.php b/config/config.php new file mode 100644 index 0000000..88bc01e --- /dev/null +++ b/config/config.php @@ -0,0 +1,5 @@ + 'Basicdata', +]; diff --git a/database/factories/.gitkeep b/database/factories/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/database/migrations/.gitkeep b/database/migrations/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/database/seeders/.gitkeep b/database/seeders/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/database/seeders/BasicdataDatabaseSeeder.php b/database/seeders/BasicdataDatabaseSeeder.php new file mode 100644 index 0000000..10f9eb5 --- /dev/null +++ b/database/seeders/BasicdataDatabaseSeeder.php @@ -0,0 +1,16 @@ +call([]); + } +} diff --git a/module.json b/module.json new file mode 100644 index 0000000..efea2b3 --- /dev/null +++ b/module.json @@ -0,0 +1,17 @@ +{ + "name": "Basicdata", + "alias": "basicdata", + "database": "", + "description": "", + "keywords": [], + "priority": 0, + "providers": [ + "Modules\\Basicdata\\Providers\\BasicdataServiceProvider" + ], + "files": [], + "menu": { + "main": [], + "master": [], + "system": [] + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..d6fbfc8 --- /dev/null +++ b/package.json @@ -0,0 +1,15 @@ +{ + "private": true, + "type": "module", + "scripts": { + "dev": "vite", + "build": "vite build" + }, + "devDependencies": { + "axios": "^1.1.2", + "laravel-vite-plugin": "^0.7.5", + "sass": "^1.69.5", + "postcss": "^8.3.7", + "vite": "^4.0.0" + } +} diff --git a/resources/assets/.gitkeep b/resources/assets/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/resources/assets/js/app.js b/resources/assets/js/app.js new file mode 100644 index 0000000..e69de29 diff --git a/resources/assets/sass/app.scss b/resources/assets/sass/app.scss new file mode 100644 index 0000000..e69de29 diff --git a/resources/views/.gitkeep b/resources/views/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/routes/.gitkeep b/routes/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/routes/api.php b/routes/api.php new file mode 100644 index 0000000..3c38c58 --- /dev/null +++ b/routes/api.php @@ -0,0 +1,19 @@ +prefix('v1')->group(function () { + Route::apiResource('basicdata', BasicdataController::class)->names('basicdata'); +}); diff --git a/routes/web.php b/routes/web.php new file mode 100644 index 0000000..ec6a846 --- /dev/null +++ b/routes/web.php @@ -0,0 +1,19 @@ +names('basicdata'); +}); diff --git a/tests/Feature/.gitkeep b/tests/Feature/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/tests/Unit/.gitkeep b/tests/Unit/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/vite.config.js b/vite.config.js new file mode 100644 index 0000000..da6db25 --- /dev/null +++ b/vite.config.js @@ -0,0 +1,4 @@ +export const paths = [ + "Modules/Basicdata/resources/assets/sass/app.scss", + "Modules/Basicdata/resources/assets/js/app.js", +];