2020-01-22 02:21:48 +09:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace App\Http\Middleware;
|
|
|
|
|
|
|
|
use Closure;
|
|
|
|
|
|
|
|
class DatasetMiddleware
|
|
|
|
{
|
|
|
|
/**
|
|
|
|
* Handle an incoming request.
|
|
|
|
*
|
|
|
|
* @param \Illuminate\Http\Request $request
|
|
|
|
* @param \Closure $next
|
|
|
|
* @return mixed
|
|
|
|
*/
|
|
|
|
public function handle($request, Closure $next)
|
|
|
|
{
|
|
|
|
if (!$request->route()) {
|
|
|
|
return $next($request);
|
|
|
|
}
|
|
|
|
|
|
|
|
$datasetName = explode('.', $request->route()[1]['as'])[1];
|
|
|
|
$currentDatasetConfig = config('datasets.' . $datasetName);
|
|
|
|
|
2020-01-23 16:19:21 +09:00
|
|
|
$id = urldecode($request->route('id'));
|
2020-01-22 02:21:48 +09:00
|
|
|
$resourceUri = str_replace('{id}', $id, $currentDatasetConfig['resource_uri']);
|
|
|
|
$dataUri = str_replace('{id}', $id, $currentDatasetConfig['data_uri']);
|
|
|
|
|
|
|
|
$request->merge([
|
|
|
|
'datasetConfig' => $currentDatasetConfig,
|
|
|
|
'resourceUri' => $resourceUri,
|
|
|
|
'dataUri' => $dataUri,
|
|
|
|
]);
|
|
|
|
|
|
|
|
return $next($request);
|
|
|
|
}
|
|
|
|
}
|