<?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);
}
}