Untitled

 avatar
unknown
plain_text
3 years ago
3.5 kB
4
Indexable
<?php

namespace App\Repositorios\SolicitudHoras;

use App\Models\PacienteMascotas;
use App\Models\SolicitudHoras;
use App\Traits\ResponseHandler;
use Illuminate\Support\Facades\Log;
use Carbon\Carbon;

// va la logica de negocios es decir todo lo que hace para dar respuestas al front 
class SolicitudHorasRepository
{
    use ResponseHandler;
    public function crearSolicitudHoras($request)
    {
        try {
            $nuevo = new SolicitudHoras();
            $solicitud = $this->agregaDatos($request, $nuevo);
            return $this->RespuestaCorrecta("Solicitud creada exitosamente", $solicitud);
        } catch (\Exception $e) {
            dd($e);
            return $this->RespuestaIncorrecta("Error al registrar la Solicitud de hora");
        }
    }

    public function listarSolicitudDeHoras()
    {
        try {
            $solicitud = SolicitudHoras::paginate(5); //poner get()->a para forzar un error

            return $this->respuestaCorrecta("solicitud de hora", $solicitud);
        } catch (\Exception $e) {
            //  dd($e); se utiliza para saber que  esta mal en un error 
            return $this->respuestaIncorrecta("solicitud de hora mala");
        }
    }

    public function actualizarSolicitudHoras($request)
    {
        try {
            $solicitud = SolicitudHoras::find($request->id);
            if (!$solicitud) {
                return $this->respuestaIncorrecta("No existe la solicitud horaria");
            }
            $resultado = $this->agregaDatos($request, $solicitud);

            return $this->respuestaCorrecta("Solicitud actualizada correctamente");
        } catch (\Exception $e) {
            return $this->respuestaCorrecta("Error al actualizar la solicitud de hora");
        }
    }
    public function borrarSolicitudHora($request)
    {
        try {
            $solicitud = SolicitudHoras::find($request->id);
            if (!$solicitud) {
                return $this->respuestaIncorrecta("No existe solicitud horaria");
            }
            $solicitud->delete();
            return $this->respuestaCorrecta("Solicitud horaria eliminada correctamente");
        } catch (\Exception $e) {
            Log::error(['ERROR' => $e->getMessage(), 'Linea' => $e->getLine(), 'File' => $e->getFile(), 'Proceso' => 'borrarSolicitudHora']);
            return $this->respuestaIncorrecta("Error al borrar la solicitud horaria");
        }
    }
    public function listarPacienteDropdown()
    {
        try {
            $solicitud = PacienteMascotas::select('id as value', 'nombre_paciente as label')->get();
            return $this->RespuestaCorrecta("Paciente mostrado exitosamente", $solicitud);
        } catch (\Exception $e) {
            Log::error(['ERROR' => $e->getMessage(), 'Linea' => $e->getLine(), 'File' => $e->getFile(), 'Proceso' => 'listaracienteDropdown']);
            return $this->RespuestaIncorrecta("Error al listar el Paciente");
        }
    }

    protected function agregaDatos($data, SolicitudHoras $ficha)
    {
        //? ternario:
        $ficha->fecha_reserva = $data->fecha_reserva ? Carbon::parse($data->fecha_reserva)->format('Y-m-d H:i:s') : $ficha->fecha_reserva;
        $ficha->descripcion_solicitud_horas = $data->descripcion_solicitud_horas ?? $ficha->descripcion_solicitud_horas;
        $ficha->id_paciente = $data->id_paciente ?? $ficha->id_paciente;
        $ficha->save();
        return $ficha;
    }
}
Editor is loading...