administrador.base.orm.where.where_mayus - gamboamartin/administrador GitHub Wiki

where_mayus

La función where_mayus se encarga de validar y modificar el valor de la propiedad where dentro de un objeto stdClass llamado $complemento. Se asegura de que la cláusula where esté en mayúsculas y correctamente formada. Si la validación falla, devuelve un array con un mensaje de error.

Signatura

private function where_mayus(stdClass $complemento): array|stdClass

Parámetros

stdClass $complemento

  • Tipo: stdClass
  • Descripción: Un objeto que debe contener la propiedad where. Si la propiedad no está definida, la función la crea con un valor vacío. La función verifica y transforma este valor según las reglas definidas.

Retorna

array|stdClass

  • Tipo: array o stdClass
  • Descripción:
    • Si la validación es exitosa, la función devuelve el objeto $complemento modificado, con la propiedad where en mayúsculas si es necesario.
    • Si hay algún error, como que el where no esté correctamente formado o tenga un valor inválido, devuelve un array de error con detalles del problema.

Explicación Detallada

  1. Verificación de la propiedad where:

    • Si el objeto $complemento no tiene definida la propiedad where, se inicializa con una cadena vacía ('').
  2. Limpieza de espacios en blanco:

    • Se eliminan los espacios en blanco al principio y al final de la propiedad where usando trim().
  3. Conversión a mayúsculas:

    • Si la cláusula where no está vacía después de la limpieza, se convierte a mayúsculas usando strtoupper().
  4. Validación de la cláusula where:

    • Si la cláusula where no está vacía y no es exactamente igual a 'WHERE', se devuelve un array de error indicando que la cláusula where está mal aplicada.
  5. Retorno del objeto complemento:

    • Si todas las validaciones son exitosas, el objeto $complemento se devuelve con las modificaciones realizadas (si aplica).

Ejemplos

$complemento = new stdClass();
$complemento->where = " where id = 1";

$resultado = $this->where_mayus($complemento);

// Resultado esperado:
// $complemento->where = "WHERE ID = 1";

Código de la Función

private function where_mayus(stdClass $complemento): array|stdClass
    {
        if(!isset($complemento->where)){
            $complemento->where = '';
        }
        $complemento->where = trim($complemento->where);
        if($complemento->where !== '' ){
            $complemento->where = strtoupper($complemento->where);
        }
        if($complemento->where!=='' && $complemento->where !=='WHERE'){
            return $this->error->error(mensaje: 'Error where mal aplicado',data: $complemento->where, es_final: true);
        }
        return $complemento;
    }