File: /var/www/admin.fixgini.com/app/Http/Controllers/CountryController.php
<?php
namespace App\Http\Controllers;
use App\Models\City;
use App\Models\State;
use GuzzleHttp\Client;
use App\Models\Country;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use App\Http\Controllers\Controller;
class CountryController extends Controller
{
public function location()
{
$client = new Client();
try {
$response = $client->post('https://www.googleapis.com/geolocation/v1/geolocate?key=AIzaSyAz2O3wS3rGltDhV9YFMSk0d1GyySIUfDk', [
'json' => [
'considerIp' => true, // Automatically uses the request's IP
],
]);
$location = json_decode($response->getBody(), true);
return $location;
} catch (\GuzzleHttp\Exception\RequestException $e) {
// Handle the error
return [
'error' => true,
'message' => $e->getMessage(),
];
}
}
public function country()
{
return view('country.all');
}
public function state()
{
return view('country.states');
}
public function city()
{
return view('country.cities');
}
public function addCountry()
{
return view('country.add');
}
// public function getCountry(Request $request)
// {
// try {
// if ($request->has('country_id')) {
// $countryId = $request->country_id;
// $states = Country::where('id', $countryId)->with('states')->get();
// return response()->json(['status' => 'success', 'data' => $states], 200);
// } else {
// return response()->json(['status' => 'error', 'message' => 'country_id is required'], 400);
// }
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'message' => 'failed to retrieve location data', 'error' => $th->getMessage()], 500);
// }
// }
// public function getState(Request $request)
// {
// try {
// if ($request->has('state_id')) {
// $stateId = $request->state_id;
// $cities = State::where('id', $stateId)->with('cities')->get();
// return response()->json(['status' => 'success', 'data' => $cities], 200);
// } else {
// return response()->json(['status' => 'error', 'message' => 'state id is required'], 400);
// }
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'message' => 'failed to retrieve location data', 'error' => $th->getMessage()], 500);
// }
// }
// public function list()
// {
// try {
// $countries = Country::with('states')->with('cities')->get();
// return response()->json(['status' => 'success', 'data' => $countries], 200);
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'data' => 'failed to list countrt'], 500);
// }
// }
// public function listStates()
// {
// try {
// $states = State::all();
// return response()->json(['status' => 'success', 'data' => $states], 200);
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'data' => 'failed to list states'], 500);
// }
// }
// public function listCities()
// {
// try {
// $cities = City::all();
// return response()->json(['status' => 'success', 'data' => $cities], 200);
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'data' => 'failed to list cities'], 500);
// }
// }
// public function saveCountry(Request $request)
// {
// try {
// $validatedData = $request->validate([
// 'name' => 'required|unique:countries,name',
// 'dial_code' => 'required',
// 'symbol' => 'required',
// 'flag_url' => 'required',
// ]);
// if ($request->hasFile('flag_url')) {
// $uploadedFile = $request->file('flag_url')->getRealPath();
// $uploadResult = cloudinary()->upload($uploadedFile, ['folder' => 'countryIcons']);
// $uploadedFileUrl = $uploadResult->getSecurePath();
// $publicId = $uploadResult->getPublicId();
// }
// $countries = Country::create([
// 'name' => $validatedData['name'],
// 'dial_code' => $validatedData['dial_code'],
// 'symbol' => $validatedData['symbol'],
// 'flag_url' => $uploadedFileUrl,
// 'flag_public_id' => $publicId,
// ]);
// return response()->json(['status' => 'success', 'message' => 'Country saved successfully', 'data' => $countries], 200);
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'message' => 'failed to save country', 'data' => $th->getMessage()], 500);
// }
// }
// public function saveState(Request $request)
// {
// try {
// $validatedData = $request->validate([
// 'name' => 'required|unique:states,name',
// 'country_id' => 'required|exists:countries,id',
// ]);
// $state = State::create([
// 'name' => $validatedData['name'],
// 'country_id' => $validatedData['country_id'],
// ]);
// return response()->json(['status' => 'success', 'data' => $state], 200);
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'data' => 'failed to save state', 'message' => $th->getMessage()], 500);
// }
// }
// public function saveCity(Request $request)
// {
// try {
// $validatedData = $request->validate([
// 'name' => 'required|unique:cities,name',
// 'state_id' => 'required|exists:states,id',
// 'country_id' => 'required|exists:countries,id',
// ]);
// $city = City::create([
// 'name' => $validatedData['name'],
// 'state_id' => $validatedData['state_id'],
// 'country_id' => $validatedData['country_id'],
// ]);
// return response()->json(['status' => 'success', 'data' => $city], 200);
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'data' => 'failed to save state', 'message' => $th->getMessage()], 500);
// }
// }
// public function updateCountry(Request $request, $id)
// {
// try {
// $validatedData = $request->validate([
// 'name' => 'sometimes',
// 'dial_code' => 'sometimes',
// 'symbol' => 'sometimes',
// ]);
// $country = Country::findOrFail($id);
// $country->update([
// 'name' => $validatedData['name'],
// 'dial_code' => $validatedData['dial_code'],
// 'symbol' => $validatedData['symbol'],
// 'flag_url' => $request->input('flag_url', $country->flag_url),
// ]);
// return response()->json(['status' => 'success', 'data' => $country], 200);
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'data' => 'failed to update country', 'message' => $th->getMessage()], 500);
// }
// }
// public function updateState(Request $request, $id)
// {
// try {
// $validatedData = $request->validate([
// 'name' => 'required|unique:states,name,' . $id,
// 'country_id' => 'required|exists:countries,id',
// ]);
// $state = State::findOrFail($id);
// $state->update([
// 'name' => $validatedData['name'],
// 'country_id' => $validatedData['country_id'],
// ]);
// return response()->json(['status' => 'success', 'data' => $state], 200);
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'data' => 'failed to update state', 'message' => $th->getMessage()], 500);
// }
// }
// public function updateCity(Request $request, $id)
// {
// try {
// $validatedData = $request->validate([
// 'name' => 'required|unique:cities,name,' . $id,
// 'state_id' => 'required|exists:states,id',
// 'country_id' => 'required|exists:countries,id',
// ]);
// $city = City::findOrFail($id);
// $city->update([
// 'name' => $validatedData['name'],
// 'state_id' => $validatedData['state_id'],
// 'country_id' => $validatedData['country_id'],
// ]);
// return response()->json(['status' => 'success', 'data' => $city], 200);
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'data' => 'failed to update city', 'message' => $th->getMessage()], 500);
// }
// }
// public function deleteCountry($id)
// {
// try {
// $country = Country::findOrFail($id);
// $country->delete();
// return response()->json(['status' => 'success', 'message' => 'Country deleted successfully'], 200);
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'data' => 'failed to delete country', 'message' => $th->getMessage()], 500);
// }
// }
// public function deleteState($id)
// {
// try {
// $state = State::findOrFail($id);
// $state->delete();
// return response()->json(['status' => 'success', 'message' => 'State deleted successfully'], 200);
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'data' => 'failed to delete state', 'message' => $th->getMessage()], 500);
// }
// }
// public function deleteCity($id)
// {
// try {
// $city = City::findOrFail($id);
// $city->delete();
// return response()->json(['status' => 'success', 'message' => 'City deleted successfully'], 200);
// } catch (\Throwable $th) {
// Log::error($th->getMessage());
// return response()->json(['status' => 'error', 'data' => 'failed to delete city', 'message' => $th->getMessage()], 500);
// }
// }
}