48 lines
1.5 KiB
PHP
48 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
use Illuminate\Http\Request;
|
|
|
|
class StoreController extends Controller
|
|
{
|
|
/**
|
|
* Store by city
|
|
*
|
|
* @param \Illuminate\Http\Request $request
|
|
* @param mixed $city
|
|
* @return \App\Store;
|
|
*/
|
|
public function city(Request $request, mixed $city)
|
|
{
|
|
// CSRF Token check.
|
|
if (
|
|
!(is_string($request->session()->token()) &&
|
|
is_string($request->header('X-CSRF-TOKEN')) &&
|
|
hash_equals($request->session()->token(), $request->header('X-CSRF-TOKEN')))
|
|
) {
|
|
\abort(419);
|
|
}
|
|
|
|
if (is_numeric($city)) {
|
|
$stores = DB::table('stores')
|
|
->join('retailregions', 'stores.region_id', '=', 'retailregions.id')
|
|
->join('retailgroups', 'retailregions.region_group', '=', 'retailgroups.id')
|
|
->select('stores.*', 'retailregions.*', 'retailgroups.*')
|
|
->where('stores.zipcode', $city)
|
|
->get();
|
|
|
|
return $stores;
|
|
} else {
|
|
$stores = DB::table('stores')
|
|
->join('retailregions', 'stores.region_id', '=', 'retailregions.id')
|
|
->join('retailgroups', 'retailregions.region_group', '=', 'retailgroups.id')
|
|
->select('stores.*', 'retailregions.*', 'retailgroups.*')
|
|
->where('stores.city', $city)
|
|
->get();
|
|
|
|
return $stores;
|
|
}
|
|
}
|
|
}
|