Current File : /home/exataengenharia/public_html/app/Http/Controllers/UsuarioController.php
<?php

namespace App\Http\Controllers;

use App\Models\Information;
use Illuminate\Http\Request;

use Illuminate\Support\Facades\Storage;
    
use Illuminate\Support\Facades\Validator;

class UsuarioController extends Controller
{
    public function index(Request $request)
    {

        $informations = Information::all();

        

        return view('usuarios.index', ['informations' => $informations]);
    }

    public function create()
    {
        return view('usuarios.create');
    }

    public function store(Request $request)
    {
        $validator = Validator::make($request->all(), [
            'residence' => 'required',
            'monthly_generation' => 'required',
            'annual_savings' => 'required',
        ]);

        if ($validator->fails()) {
            return redirect()->back()
                ->withErrors($validator)
                ->withInput();
        }



        $informations = new Information();
        $informations->residence = $request->input('residence');
        $informations->monthly_generation = $request->input('monthly_generation');
        $informations->annual_savings = $request->input('annual_savings');


        if ($request->hasFile('path')) {
            $file = $request->file('path');
            $filename = $file->getClientOriginalName();
            $file->storePubliclyAs('public', $filename);
            $informations->path = $filename;
            $informations->save();
        }

        $informations->save();

        return redirect()->route('create');
    }

    public function edit()
    {
        $informations = Information::all();
        
        return view('usuarios.edit', ['informations' => $informations]);
    }

    public function update(Request $request, $id)
    {
        $validator = Validator::make($request->all(), [
            'residence' => 'required',
            'monthly_generation' => 'required',
            'annual_savings' => 'required',
        ]);

        if ($validator->fails()) {
            return redirect()->back()
                ->withErrors($validator)
                ->withInput();
        }

        $information = Information::findOrFail($id);
        $information->residence = $request->input('residence');
        $information->monthly_generation = $request->input('monthly_generation');
        $information->annual_savings = $request->input('annual_savings');

        if ($request->hasFile('path')) {
            $file = $request->file('path');
            $filename = $file->getClientOriginalName();
            $file->storePubliclyAs('public', $filename);
            $information->path = $filename;
        }

        $information->save();

        return redirect()->back();
    }

    public function destroy($id)
    {
        $information = Information::findOrFail($id);
        $information->delete();

        return redirect()->back();
    }
}