• File: ColorController.php
  • Full Path: /var/www/paytekchalenge/app/Http/Controllers/Admin/ColorController.php
  • Date Modified: 07/19/2022 7:23 PM
  • File size: 2.87 KB
  • MIME-type: text/x-php
  • Charset: utf-8
<?php

namespace App\Http\Controllers\Admin;

use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use App\Models\Color;
use Illuminate\Support\Facades\Validator;

class ColorController extends Controller
{

    public function indexApi(){

        $colors = Color::all();

        return response()->json(['data'=>$colors], 200);
    }

    private function generateColorCody(){

        $result=0;

        if(count(Color::all())>0){

            $nextIdColorCody=Color::orderBy('id','desc')->first()->id + 1;

        }else{

            return '01';

        }

        if ($nextIdColorCody >= 10){

            return $nextIdColorCody;

        }else{
            
            $result = '0'.$nextIdColorCody;

            return $result;
        }
    }

    private function validateInputsColor($request){

        // campos
        $inputs=$request->all();

        // regras dos campos
        $inputsRules=[
            'description' => 'required|unique:colors',
        ];

        // mensagens
        $inputMessages=[
            'description.required' =>'O campo "Nome" é obrigatório!',
            'description.unique' =>'Esse "Nome" já existe na base de dados!'
        ];

        // validando campos
        $inputValidator=Validator::make($inputs,$inputsRules,$inputMessages);


        if($inputValidator->fails()){
            return  $inputValidator; 
        }

        return false;     

    }


    public function regColorApi(Request $request){

        // $inputValidator=$this->validateInputsColor($request);
        
        // if($inputValidator){
        //     return response()->json(['message'=> $inputValidator->errors()->all()],500);
        // }

        $color = new Color;
        $color->description = $request->description;
        $color->cody = $this->generatecolorCody();
        $color->save();

        return response()->json(['message'=>'Feito','data'=>$color],200);
    }

    public function updateColorApi(Request $request, $id)
    {
        // $inputValidator=$this->validateInputsColor($request);
        
        // if($inputValidator){
        //     return response()->json(['message'=> $inputValidator->errors()->all()],500);
        // }

        $color = Color::findOrFail($id);
        $color->description = $request->description;
        $color->update();

        return response()->json(['message'=>'Feito','data'=>$color],200);
    }

    public function destroyApi($id)
    {
             
        try{
            
            $color = Color::findOrFail($id);

        }catch(\Exception $e){
            return response()->json(['message'=>'O registo selecionado não existe na Base de Dados!'],500);
        }

        $color->delete();
        
        return response()->json(['message'=>'Feito','data'=>$color],200);
        
    }
}