HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/agile-selling-wpb/app/Http/Controllers/AddressController.php
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use App\Address;
use App\City;

class AddressController extends Controller
{
    // public function __construct(Request $request)
    // {
    //     $this->middleware('auth');
    //     $this->middleware(function ($request, $next) {
    //     $this->user = Auth::user();
    //     if(Auth::user()->rol->id == 1 || Auth::user()->rol->id == 6){
    //         $this->changeDbDefault($request);
    //     }
    //     return $next($request);
    // });


    // }
    public function create($tag, $direction, $district, $indications, $lat, $long, $city_id, $idUser)
    {
        $obj = new Address();
        $obj->direction = $direction;
        $obj->tag = $tag;
        $obj->lat =  $lat;
        $obj->long =  $long;
        $obj->active = true;
        $obj->district = $district;
        $obj->user_id =  $idUser;
        $obj->indications = $indications;
        $obj->city_id = $city_id;
        $obj->last_used = 1;
        $obj->save();

        if ($obj) {
            return $obj->id;
        }
    }

    public function update($id, $tag, $district, $indications)
    {
        $obj = Address::find($id);
        $obj->tag = $tag;
        $obj->district = $district;
        $obj->indications = $indications;;
        $obj->update();

        if ($obj) {
            return true;
        }
    }

    // se encarga de colocar la ultima direccion usada en true
    public function lastUsedDirection($id_user, $id_lastUsed)
    {
        $addresses = Address::where('user_id', $id_user)->get();

        foreach ($addresses as $key => $address) {
            if ($address->id == $id_lastUsed) {
                $address->last_used = 1;
            } else {
                $address->last_used = 0;
            }
            $address->update();
        }
    }

    // Se encarga de tomar una dirección p.e Calle 13 # 78 - 54, Cali, Colombia. y la transforma en Lat y Long con su poligono de desviación en error.
    public function geocodeAddres($address)
    {
        // Peticion a Central para crear el "Cliente"
        $client = new \GuzzleHttp\Client([
            'base_uri' => 'https://maps.googleapis.com',
            'defaults' => [
                'exceptions' => false,
            ],
        ]);
        $responseGuzzle = $client->get('/maps/api/geocode/json?key=' . env('GOOGLE_MAPS_API_KEY') . '&address=' . rawurlencode($address), [
            'headers' => [
                'Accept' => 'application/json',
            ],
        ]);

        $body = (string) $responseGuzzle->getBody();
        $body = json_decode($body);

        return $body->results;
    }

    public function searchCityByName($name)
    {
        if($name && $name != ""){
            $city = City::select('id','name')->where('name', $name)->first();
            if($city){
                return $city->id;
            }
        }
        return 547;
    }

    public function searchAddressByAddress($address,$user_id)
    {
        if($address && $address != ""){
            $c_address = Address::select('id')->where([['direction', 'like', '%'.$address.'%'],['user_id', $user_id]])->first();
            if($c_address){
                return $c_address->id;
            }
        }
        return null;
    }
}