You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
willaengine/app/CorePackages/VirtualActivity/VirtualActivityServiceProvi...

57 lines
1.5 KiB

<?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);
});
});
}
}