src.where.data_in - gamboamartin/where GitHub Wiki

data_in

La función data_in es una función privada que valida y extrae los datos de un array que contiene una clave (llave) y un conjunto de valores (values). Esta función asegura que ambas claves estén presentes y que los valores asociados sean un array. Si las validaciones son exitosas, devuelve un objeto stdClass con los datos necesarios para construir una consulta SQL IN.

Signatura

private function data_in(array $in): array|stdClass

Parámetros

  • array $in:
    Un array asociativo que debe contener las claves llave y values.
    • llave: Representa el campo en la base de datos que se usará en la consulta.
    • values: Un array de valores que se utilizarán para generar una cláusula SQL IN.

Retorna

  • array|stdClass:
    Retorna un objeto stdClass que contiene los datos validados del array $in. En caso de error, retorna un array de error generado por $this->error->error().

Explicación Detallada

  1. Validación de la existencia de claves:

    • La función valida que el array $in contenga las claves llave y values, utilizando el método valida_existencia_keys() de la clase validacion.
    • Si alguna de estas claves falta, se genera un mensaje de error y se retorna un array con el mensaje de error.
  2. Validación de que values sea un array:

    • La función verifica que el valor asociado a la clave values sea un array. Si no lo es, se genera un mensaje de error y se retorna un array con el mensaje de error.
  3. Creación del objeto stdClass:

    • Si todas las validaciones son exitosas, la función crea un objeto stdClass que contiene las claves:
      • llave: El nombre del campo de la base de datos.
      • values: Un array con los valores que se usarán en la consulta SQL IN.
  4. Retorno del objeto:

    • La función retorna el objeto stdClass con los datos validados.

Ejemplos

$in = [
    'llave' => 'id_producto',
    'values' => [1, 2, 3, 4]
];

$resultado = $this->data_in($in);

// Resultado esperado:
// Un objeto stdClass con los atributos:
// - llave: "id_producto"
// - values: [1, 2, 3, 4]
// Un array de error si ocurre algún problema.

Código de la Función

private function data_in(array $in): array|stdClass
    {
        $keys = array('llave','values');
        $valida = $this->validacion->valida_existencia_keys( keys:$keys, registro: $in);
        if(errores::$error){
            return $this->error->error(mensaje: 'Error al validar not_in',data: $valida);
        }

        $values = $in['values'];

        if(!is_array($values)){
            return $this->error->error(mensaje: 'Error values debe ser un array',data: $values, es_final: true);
        }
        $data = new stdClass();
        $data->llave = $in['llave'];
        $data->values = $in['values'];
        return $data;
    }