GOOD SHELL MAS BOY
Server: Apache/2.4.52 (Ubuntu)
System: Linux vmi1836763.contaboserver.net 5.15.0-130-generic #140-Ubuntu SMP Wed Dec 18 17:59:53 UTC 2024 x86_64
User: www-data (33)
PHP: 8.4.10
Disabled: NONE
Upload Files
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);
     //      }
     // }
}