[[post_data {
    "author" : "KyMAN",
    "since" : 20210810,
    "version" : 20210810
}]]
# AnP.Procedures.Users.py

Esta librería se encarga de simular la parte SQL de los procedimientos almacenados contra Python.

## Validaciones

Para empezar la documentación de este fichero primero se gestionará el análisis de las validaciones
para tener una lista de errores según su posición de bit dentro del entero que los gestiona.

### [[plain AnP.Procedures.Users.__session_validate]]

[[wdoc
Método objeto privado que valida una sesión dada.
@name       AnP.Procedures.Users.__session_validate
@lang       Python
@author     KyMAN
@since      20210810
@version    20210810
@access     public
#session    int required    ID de la sesión a validar.
#return     int -           Código de error.
]]

0. La sesión es un valor nulo.
1. La sesión no es un valor numérico entero.
2. La sesión no es un ID válido.
3. La sesión no existe.
4. La sesión ya fue finalizada.
5. La sesión ha caducado.
6. Hubo un error a la hora de analizar la sesión contra la DB.

### [[plain AnP.Procedures.Users.__user_data_validate]]

[[wdoc
Método objeto privado que valida los datos de un usuario.
@name       AnP.Procedures.Users.__user_data_validate
@lang       Python
@author     KyMAN
@since      20210810
@version    20210810
@access     public
#name       str         required    Nombre del usuario.
#password   str         required    Contraseña de acceso del usuario.
#return     (int,int)  -           Código de error e ID del usuario.
]]

> [[! note NOTA]]: El ID del usuario solo lo retornará en caso de no haber ningún error.

0. El nick del usuario es nulo.
1. El nick del usuario es un valor vacío.
2. La contraseña del usuario es nula.
3. La contraseña del usuario es un valor vacío.
4. El usuario no existe.
5. La contraseña del usuario no es correcta.

### [[plain AnP.Procedures.Users.__new_user_validate]]

[[wdoc
Método objeto privado que valida los datos para un nuevo usuario.
@name       AnP.Procedures.Users.__new_user_validate
@lang       Python
@author     KyMAN
@since      20210810
@version    20210810
@access     public
#name       str required    Nombre del usuario.
#password   str required    Contraseña de acceso del usuario.
#return     int -           Código de error.
]]

0. El nick del usuario es nulo.
1. El nick del usuario es un valor vacío.
2. La contraseña del usuario es nula.
3. La contraseña del usuario es un valor vacío.
4. Ya existe un usuario con ese nick.
5. Hubo nu error a la hora de analizar los datos del usuario contra la DB.

### [[plain AnP.Procedures.Users.__email_validate]]

[[wdoc
Método objeto privado que valida una dirección de E-Mail.
@name       AnP.Procedures.Users.__email_validate
@lang       Python
@author     KyMAN
@since      20210810
@version    20210810
@access     public
#address    str required    Dirección E-Mail a validar.
#return     int -           Código de error.
]]

0. El E-Mail es nulo.
1. El E-Mail es un valor vacío.
2. El E-Mail tiene un mal formato.

### [[plain AnP.Procedures.Users.__get_ip_id]]

[[wdoc
Método objeto privado que valida la recogida de una IP sobre la base de datos.
@name       AnP.Procedures.Users.__get_ip_id
@lang       Python
@author     KyMAN
@since      20210810
@version    20210810
@access     public
#ip         str required    Dirección IP.
#session    int required    Sesión de la que parte la petición.
#return     int -           Código de error.
]]

0. Excepción.
1. La dirección IP es nulo.
2. La dirección IP es un valor vacío.
3. La dirección IP tiene un mal formato.

> [[! important IMPORTANTE]]: Terminar la validación de la IP.

[[html_data {
    "title" : "Documentación - AnP.Procedures.Users.py",
    "url" : "https://anp.k3y.pw/es/py/procedures/anp.procedures.users.py.html",
    "author" : "Tarsier, angelus, inoro, KyMAN",
    "since" : 20210810,
    "version" : 20210810,
    "key_words" : "anp,attach,play,attach&play,documentación,python,procedures,users,anp.procedures.users.py",
    "description" : "Documentación del fichero AnP.Procedures.Users.py.",
    "project" : "AnP",
    "logo" : "https://anp.k3y.pw/images/anp.png",
    "language" : "es"
}]]
