ldc-lionor/app/Http/Controllers/Fo/ShopController.php
2023-06-14 11:33:58 +02:00

42 lines
1.1 KiB
PHP

<?php
namespace App\Http\Controllers\Fo;
use App\Http\Controllers\Controller;
use App\Models\Shop;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
class ShopController extends Controller
{
// * FUNCTIONS FOR FRONT MARKET FINDER
/**
* Get all shops
* @return json
*/
public function getAll()
{
return response()
->json(Shop::all());
}
/**
* Get the 5 nearest shops with the given coords in the request.
* @param Request $request
* @return json
*/
public function getNearest(Request $request)
{
$latitude = $request->input('latitude');
$longitude = $request->input('longitude');
$raw = DB::raw(
'ROUND ((6371*acos(cos(radians(' . $latitude . '))*cos(radians(latitude))*cos(radians(longitude)
- radians(' . $longitude . '))+sin(radians(' . $latitude . '))*sin(radians(latitude)))), 2)
AS distance'
);
$results = DB::table("shops")->select('*')->addSelect($raw)->orderBy('distance', 'ASC')->limit(5)->get();
return response()
->json($results);
}
}