|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\CorePackages\VirtualActivity;
|
|
|
|
|
|
|
|
use Illuminate\Support\ServiceProvider;
|
|
|
|
use Illuminate\Support\Str;
|
|
|
|
use Illuminate\Support\Facades\Route;
|
|
|
|
use Illuminate\Support\Facades\Validator;
|
|
|
|
|
|
|
|
|
|
|
|
use App\Business;
|
|
|
|
|
|
|
|
class VirtualActivityServiceProvider extends ServiceProvider
|
|
|
|
{
|
|
|
|
|
|
|
|
public function boot()
|
|
|
|
{
|
|
|
|
Validator::extend('exists_va', function ($attribute, $value, $parameters, $validator) {
|
|
|
|
$table = $parameters[0];
|
|
|
|
$column = $parameters[1];
|
|
|
|
|
|
|
|
return \DB::table($table)
|
|
|
|
->where($column, $value)
|
|
|
|
->where('business_id', request()->business_id)
|
|
|
|
->count() > 0;
|
|
|
|
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
public function register()
|
|
|
|
{
|
|
|
|
|
|
|
|
$this->app->singleton(Business::class, function () {
|
|
|
|
return VirtualActivityFinder::fetch();
|
|
|
|
});
|
|
|
|
|
|
|
|
$this->registerHandler();
|
|
|
|
}
|
|
|
|
|
|
|
|
protected function registerHandler()
|
|
|
|
{
|
|
|
|
|
|
|
|
Route::macro('handler', function ($prefix) {
|
|
|
|
$singular = Str::singular($prefix);
|
|
|
|
Route::group([
|
|
|
|
'namespace' => $singular
|
|
|
|
], function () use ($prefix, $singular) {
|
|
|
|
Route::get($prefix, 'Index' . $singular);
|
|
|
|
Route::post($prefix , 'Store' . $singular);
|
|
|
|
Route::put($prefix . '/{' . $singular . '}', 'Update' . $singular);
|
|
|
|
Route::delete($prefix . '/{' . $singular . '}', 'Destroy' . $singular);
|
|
|
|
Route::get($prefix . '/{' . $singular . '}', 'Show' . $singular);
|
|
|
|
});
|
|
|
|
});
|
|
|
|
}
|
|
|
|
}
|