| dav_get_resource |
function |
py |
infra |
1.0.0 |
impure |
def dav_get_resource(base_url: str, username: str, password: str, resource_path: str, *, timeout_s: float = 20.0, verify_tls: bool = True) -> dict |
Descarga (HTTP GET) el contenido de un recurso DAV individual (un VCARD o un VCALENDAR) con HTTP Basic auth. Construye el header Authorization: Basic base64(user:pass) a mano con stdlib. El resource_path puede ser un href absoluto (como los que devuelve dav_list_resources) o una URL completa. verify_tls=True por defecto. Maneja errores sin lanzar. Solo stdlib (urllib, base64, ssl). Probado contra Xandikos. |
| dav |
| carddav |
| caldav |
| get |
| download |
| http |
| infra |
|
|
|
|
false |
error_go_core |
| base64 |
| ssl |
| urllib.error |
| urllib.request |
|
| name |
desc |
| base_url |
URL base del servidor DAV. Se ignora si resource_path ya es una URL absoluta. |
|
| name |
desc |
| username |
usuario para HTTP Basic auth (p.ej. 'enmanuel'). |
|
| name |
desc |
| password |
contrasena para HTTP Basic auth. Resolver desde pass con pass_get_secret, nunca hardcodear. |
|
| name |
desc |
| resource_path |
href absoluto (p.ej. '/enmanuel/contacts/addressbook/x.vcf') o URL completa del recurso a descargar. Acepta directamente los hrefs que devuelve dav_list_resources. |
|
| name |
desc |
| timeout_s |
timeout de la peticion HTTP en segundos. Default 20.0. |
|
| name |
desc |
| verify_tls |
si True (default) verifica el certificado TLS. No desactivar salvo entorno de prueba. |
|
|
dict. En exito: {status:'ok', http_status:int, text:str, url:str} donde text es el cuerpo del recurso (VCARD o VCALENDAR). En error (sin lanzar): {status:'error', error:str, http_status:int|None}. |
true |
| test_construye_request_get_con_auth |
| test_resource_path_relativo_se_resuelve_con_base_url |
| test_resource_path_absoluto_se_respeta |
| test_devuelve_texto_del_recurso |
| test_httperror_devuelve_status_error |
|
python/functions/infra/dav_get_resource_test.py |
python/functions/infra/dav_get_resource.py |