HEX
Server: Apache/2.4.58 (Ubuntu)
System: Linux ip-172-26-0-120 6.17.0-1009-aws #9~24.04.2-Ubuntu SMP Fri Mar 6 23:50:29 UTC 2026 x86_64
User: ubuntu (1000)
PHP: 8.3.6
Disabled: NONE
Upload Files
File: /var/www/html/orbidirectory.com/app/Http/Controllers/CityController.php
<?php

namespace App\Http\Controllers;

use App\Models\CitySelection;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Cookie;
use Illuminate\Support\Facades\DB;

class CityController extends Controller
{
    public function selectCity(Request $request)
{
    $cityId = $request->city_id;

    // If the 'Select City' option is selected, expire the cookie
    if ($cityId == '') {
        // Expire the city cookie
        Cookie::queue(Cookie::forget('selected_city'));
    } else {
        // Set city in a cookie (expires in 30 days)
        Cookie::queue('selected_city', $cityId, 30);
    }

    // Retrieve city name for updating the UI dynamically
    $cityName = $cityId ? CitySelection::find($cityId)->name : '';

    return response()->json(['status' => 'success', 'city_name' => $cityName]);
}
//     public function selectCity(Request $request)
// {
//     $request->validate(['city_id' => 'required|integer']);
//     $cityId = $request->city_id;

//     // Set city in a cookie (expires in 30 days)
//     Cookie::queue('selected_city', $cityId, 30);

//     // Retrieve city name for updating the UI dynamically
//     $cityName = CitySelection::find($cityId)->name ?? '';

//     return response()->json(['status' => 'success', 'city_name' => $cityName]);
// }

public function setCityCookie(Request $request)
{
    $cityId = $request->input('city_id');
    return response()->json(['success' => true])
        ->cookie('selected_city', $cityId, 60 * 24 * 30); // 30 days
}

public function detectCityByLocation(Request $request){
    $lat = $request->latitude;
    $lng = $request->longitude;

    $city = CitySelection::where('latitude',$lat)->where('longitude',$lng)->first();
    if ($city) {
        return response()->json(['success' => true, 'city' => $city])
            ->cookie('selected_city', $city->id, 60 * 24 * 30); // 30 days
    }
    return response()->json(['success' => false, 'message' => 'No nearby city found.']);
}
}