From 6a2285690cd9bf86fe7be5ded5f84ef4278fcec7 Mon Sep 17 00:00:00 2001 From: cgonzalesmo Date: Tue, 16 Aug 2022 20:11:22 -0500 Subject: [PATCH] Crud de evidencias (download), correccion de EstandarController --- .../Controllers/Api/EstandarController.php | 4 +- .../Controllers/Api/EvidenciasController.php | 161 ++++++++++++++++++ routes/api.php | 13 +- 3 files changed, 173 insertions(+), 5 deletions(-) create mode 100644 app/Http/Controllers/Api/EvidenciasController.php diff --git a/app/Http/Controllers/Api/EstandarController.php b/app/Http/Controllers/Api/EstandarController.php index 691e211..2f23f40 100644 --- a/app/Http/Controllers/Api/EstandarController.php +++ b/app/Http/Controllers/Api/EstandarController.php @@ -43,7 +43,7 @@ class EstandarController extends Controller "data" => $estandaresNombreslist, ]); } - + public function showEstandar($id){ if(Estandar::where("id",$id)->exists()){ @@ -67,7 +67,7 @@ class EstandarController extends Controller $id_user = auth()->user()->id; if(Estandar::where(["id_user"=>$id_user,"id"=>$id])->exists()){ $estandar = Estandar::find($id); - $estandar->name = isset($request->name) ? $request->name : $estandar->title; + $estandar->name = isset($request->name) ? $request->name : $estandar->name; $estandar->save(); return response([ "status" => 1, diff --git a/app/Http/Controllers/Api/EvidenciasController.php b/app/Http/Controllers/Api/EvidenciasController.php new file mode 100644 index 0000000..7c2cb27 --- /dev/null +++ b/app/Http/Controllers/Api/EvidenciasController.php @@ -0,0 +1,161 @@ +validate([ + "id_plan"=> "required|integer", + "codigo"=>"required", + "denominacion"=>"required", + "adjunto"=>"required", + ]); + $id_user = auth()->user()->id; + if(plan::where(["id"=>$request->id_plan])->exists()){ + $plan = plan::find($request->id_plan); + if($plan->id_user == $id_user){ + $evidencia = new Evidencias(); + $evidencia->id_plan = $request->id_plan; + $evidencia->codigo = $request->codigo; + $evidencia->denominacion = $request->denominacion; + $path = $request->adjunto->store('evidencias'); + $evidencia->adjunto = $path; + $evidencia->id_user = $id_user; + $evidencia->save(); + return response([ + "status" => 1, + "message" => "Evidencia creada exitosamente", + ]); + } + else{ + return response([ + "status" => 0, + "message" => "No tienes permisos para crear esta Evidencia", + ],404); + } + } + else{ + return response([ + "status" => 0, + "message" => "No se encontro el plan", + ],404); + } + } + + public function show($id){ + if(Evidencias::where("id",$id)->exists()){ + $evidencia = Evidencias::find($id); + //Para retornar nombre de user + /*$user = User::find($evidencia->id_user); + $evidencia->id_user = $user->name;*/ + return response([ + "status" => 1, + "msg" => "!Evidencia", + "data" => $evidencia, + ]); + } + else{ + return response([ + "status" => 0, + "msg" => "!No se encontro el evidencia", + ],404); + } + + } + + + + + + public function update(Request $request){ + $request->validate([ + "id"=> "required|integer", + "codigo"=> "required", + "denominacion"=> "required", + "adjunto"=> "required" + ]); + $id_user = auth()->user()->id; + if(Evidencias::where(["id"=>$request->id])->exists()){ + $evidencia = Evidencias::find($request->id); + $plan = plan::find($evidencia->id_plan); + if($plan->id_user == $id_user){ + $evidencia->codigo = $request->codigo; + $evidencia->denominacion = $request->denominacion; + $path = $request->adjunto->store('evidencias'); + $evidencia->adjunto = $path; + $evidencia->save(); + + return response([ + "status" => 1, + "message" => "Evidencia actualizada exitosamente", + ]); + } + else{ + return response([ + "status" => 0, + "message" => "No tienes permisos para actualizar esta evidencia", + ],404); + } + } + else{ + return response([ + "status" => 0, + "message" => "No se encontro la evidencia", + ],404); + } + } + + public function delete($id) + { + $id_user = auth()->user()->id; + if(Evidencias::where(["id"=>$id])->exists()){ + $evidencia = Evidencias::find($id); + $plan = plan::find($evidencia->id_plan); + if($plan->id_user == $id_user){ + $evidencia->delete(); + return response([ + "status" => 1, + "message" => "Evidencia eliminada exitosamente", + ]); + } + else{ + return response([ + "status" => 0, + "message" => "No tienes permisos para eliminar esta evidencia", + ],404); + } + } + else{ + return response([ + "status" => 0, + "message" => "No se encontro la evidencia", + ],404); + } + } + + public function download($id){ + if(Evidencias::where("id",$id)->exists()){ + $evidencia = Evidencias::find($id); + $path = storage_path('app/'.$evidencia->adjunto); + //$evidencia->adjunto = download($path); + return response()->download($path); + } + else{ + return response([ + "status" => 0, + "msg" => "!No se encontro la evidencia", + ],404); + } + } +} diff --git a/routes/api.php b/routes/api.php index 442bbeb..f1929a7 100644 --- a/routes/api.php +++ b/routes/api.php @@ -16,6 +16,7 @@ use App\Http\Controllers\Api\FuentesValoresController; use App\Http\Controllers\Api\ResponsablesValoresController; use App\Http\Controllers\Api\ResponsablesController; use App\Http\Controllers\Api\EstadosValoresController; +use App\Http\Controllers\Api\EvidenciasController; Route::post('register', [UserController::class, 'register']); @@ -25,9 +26,9 @@ Route::post('login', [UserController::class, 'login'])->name('login'); Route::get('responsables',[ResponsablesValoresController::class,'listResponsablesValores']); //fuentes Valores Route::get('fuentes',[FuentesValoresController::class,'listFuentesValores']); -//Estados valores +//Estados valores Route::get('estados',[EstadosValoresController::class,'listEstadosValores']); -//Estandares valores +//Estandares valores Route::get('estandares', [EstandarController::class,'listEstandarValores']); Route::middleware("auth:sanctum")->group (function(){ @@ -78,7 +79,7 @@ Route::middleware("auth:sanctum")->group (function(){ Route::post('recurso',[RecursosController::class,'create']); Route::put('recurso',[RecursosController::class,'update']); Route::delete('recurso/{id}',[RecursosController::class,'delete']); - + //rutas casuasraiz Route::post('causa',[CausasRaicesController::class,'create']); Route::put('causa',[CausasRaicesController::class,'update']); @@ -89,6 +90,12 @@ Route::middleware("auth:sanctum")->group (function(){ Route::put('responsable',[ResponsablesController::class,'update']); Route::delete('responsable/{id}',[ResponsablesController::class,'delete']); + //ruta evidencias + Route::post('evidencia',[EvidenciasController::class,'create']); + Route::get('evidencia/download/{id}', [EvidenciasController::class,'download']); + Route::get('evidencia/{id}', [EvidenciasController::class,'show']); + Route::put('evidencia',[EvidenciasController::class,'update']); + Route::delete('evidencia/{id}',[EvidenciasController::class,'delete']); }); Route::middleware('auth:sanctum')->get('/user', function (Request $request) {