MINI MINI MANI MO

Path : /var/www/html/sistemas/spid/app/Http/Controllers/
File Upload :
Current File : /var/www/html/sistemas/spid/app/Http/Controllers/DiputadosController.php

<?php

namespace App\Http\Controllers;

use App\Models\DatosUsers;
use App\Models\Legislatura;
use App\Models\User;
use GuzzleHttp\Client;
use Illuminate\Http\Request;
use Illuminate\Support\Arr;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\Storage;
use Illuminate\Support\Str;
use Intervention\Image\Drivers\Gd\Driver as img;

use function PHPUnit\Framework\assertLessThan;

class DiputadosController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $legis = Legislatura::all()->sortByDesc('id')->first();
        $diputados = DatosUsers::where('tipo_usuario', 2)->where('id_legislatura',$legis->id)->get();
        return view('diputados.index', compact('diputados'));
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        $partido['PRI'] = 'PRI';
        $partido['MORENA'] = 'MORENA';
        $partido['PAN'] = 'PAN';
        $partido['PT'] = 'PT';
        $partido['PRD'] = 'PRD';
        $partido['PMC'] = 'PMC';
        $partido['PVEM'] = 'PVEM';
        $partido['SIN PARTIDO'] = 'SIN PARTIDO';
        $legislatura = Arr::pluck(Legislatura::all(), 'legis','id');

        return view('diputados.create', compact('partido','legislatura'));
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        $datos = $request->except('_method', '_token');
        $legis = Legislatura::all()->sortByDesc('id')->first();

        $existe = User::where('email', $datos['c_electronico'])->first();
        if ($existe){
            $dip = User::find($existe->id);
            $us['password'] = bcrypt('Spid24_62');
            $us['pass'] = 0;
            $dip->update($us);
        }else{
            $us['username'] = $datos['c_electronico'];
            $us['email'] = $datos['c_electronico'];
            $us['password'] = bcrypt('Spid24_62');
            $us['fullname'] = $datos['nombre'].' '.$datos['ap_pat'].' '.$datos['ap_mat'];
            User::create($us);
        }

        $datos['username'] = $datos['c_electronico'];
        $datos['nombre_completo'] = $datos['nombre'].' '.$datos['ap_pat'].' '.$datos['ap_mat'];
        $datos['tipo_usuario'] = 2;
        $datos['id_legislatura'] = $legis->id;
        DatosUsers::create($datos);

        return redirect('diputados');
    }

    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $dip= DatosUsers::find($id);
        $partido['PRI'] = 'PRI';
        $partido['MORENA'] = 'MORENA';
        $partido['PAN'] = 'PAN';
        $partido['PT'] = 'PT';
        $partido['PRD'] = 'PRD';
        $partido['PMC'] = 'PMC';
        $partido['PVEM'] = 'PVEM';
        $partido['SIN PARTIDO'] = 'SIN PARTIDO';
        $legislatura = Arr::pluck(Legislatura::all(), 'legis','id');
        return view('diputados.edit', compact('dip','partido','legislatura'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $dip= DatosUsers::find($id);
        $legis = Legislatura::all()->sortByDesc('id')->first();
        $datos = $request->except('_method','_token');

        $dipUs = User::where('username', $dip->c_electronico)->first();
        $us['username'] = $datos['c_electronico'];
        $us['email'] = $datos['c_electronico'];
        $us['fullname'] = $datos['nombre'].' '.$datos['ap_pat'].' '.$datos['ap_mat'];
        $dipUs->update($us);

        $datos['username'] = $datos['c_electronico'];
        $datos['nombre_completo'] = $datos['nombre'].' '.$datos['ap_pat'].' '.$datos['ap_mat'];
        $datos['tipo_usuario'] = 2;
        $datos['id_legislatura'] = $legis->id;
        $dip->update($datos);

        return redirect('diputados');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }

    public function bajaDip(Request $request){
        $id = $request['id'];
        $datos = DatosUsers::find($id);
        if ($datos->status == 1){
            $up['status'] = 0;
        }else{
            $up['status'] = 1;
        }
        $datos->update($up);
    }

    public function cambioPsw(Request $request){
        $id = $request['id'];
        $datos = DatosUsers::find($id);
        $us = User::where('username', $datos['username'])->first();
        $psw['password'] = bcrypt('Spid24_62');
        $us->update($psw);
        $up['pass'] = 0;
        $datos->update($up);
    }

    public function saveHuella(Request $request){
        $datos = $request->except('_method','_token');

        $diputado = DatosUsers::find($datos['idDiputado']);

        $us = User::where('email', $diputado->username)->first();

        if ($request->has('imagen')) {
            $imagen = $request->input('imagen');
            $imagen = str_replace('data:image/png;base64,', '', $imagen);
            $imagen = str_replace(' ', '+', $imagen);
            $imagen = base64_decode($imagen);

            $uuid = str::uuid();
            $ruta = public_path('/huellas/' . $uuid . '.png');
            file_put_contents($ruta, $imagen);

            $path_huella = 'huellas/' . $uuid . '.png';
            if ($datos['lado'] == 1){
                $hu['huella_izq'] = $path_huella;
            }else{
                $hu['huella_der'] = $path_huella;
            }
            $us->update($hu);
        }
        return 1;
    }

    public function comprobarHuella(Request $request)
    {
        if ($request->has('imagen')) {
            $imagen = $request->input('imagen');
            $imagen = str_replace('data:image/png;base64,', '', $imagen);
            $imagen = str_replace(' ', '+', $imagen);
            $imagen = base64_decode($imagen);

            $uuid = str::uuid();
            $ruta = public_path('/huellasLog/' . $uuid . '.png');
            file_put_contents($ruta, $imagen);

            $imagePath = 'huellasLog/' . $uuid . '.png';

            $client = new Client([
                'headers' => ['Content-Type' => 'application/json', 'verify' => false]
            ]);

            $data = array(
                "path" => $imagePath
            );

            try {
                $response = $client->post('http://192.168.36.56:8084/comparar', [
                    'json' => $data
                ]);
                $body = $response->getBody()->getContents();
            } catch (\GuzzleHttp\Exception\BadResponseException $e) {
                $body = $e->getResponse()->getBody()->getContents();
            }

            if ($body == 0){
                Storage::disk('public')->delete($imagePath);
                return 0;
            }else{

                $user = User::find($body);
                if ($user->DatosUsers){
                    Auth::login($user);
                    return 1;
                }else{
                    Storage::disk('public')->delete($imagePath);
                    return 0;
                }
            }
        }
    }
}

OHA YOOOO