ldc-wenn-dann-mit-respekt/app/Http/Controllers/StoreController.php

49 lines
1.5 KiB
PHP
Raw Normal View History

2022-11-18 12:39:03 +01:00
<?php
namespace App\Http\Controllers;
use Illuminate\Support\Facades\DB;
2022-12-23 17:24:09 +00:00
use Illuminate\Http\Request;
2022-11-18 12:39:03 +01:00
class StoreController extends Controller
{
2022-12-23 17:24:09 +00:00
/**
* Store by city
*
* @param \Illuminate\Http\Request $request
* @param mixed $city
* @return \App\Store;
*/
public function city(Request $request, mixed $city)
2022-11-18 15:35:39 +01:00
{
2022-12-23 17:24:09 +00:00
// 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);
2022-11-18 12:39:03 +01:00
}
2022-11-18 15:35:39 +01:00
if (is_numeric($city)) {
2022-11-18 12:39:03 +01:00
$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();
2022-11-18 15:35:39 +01:00
2022-11-18 12:39:03 +01:00
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();
2022-11-18 15:35:39 +01:00
2022-11-18 12:39:03 +01:00
return $stores;
2022-12-23 17:24:09 +00:00
}
2022-11-18 12:39:03 +01:00
}
}