def borrar_contenido(carpeta: Carpeta, nombre: str): ''' Elimina el archivo del sistema de archivos ''' ruta = util.ruta_archivo(carpeta.tipo.value, carpeta.nombre, nombre) _validar_existencia_ruta(ruta) os.remove(ruta)
def obtener_contenido_por_nombre(carpeta: Carpeta, nombre: str) -> bytes: ''' Devuelve el contenido del archivo ''' ruta = util.ruta_archivo(carpeta.tipo.value, carpeta.nombre, nombre) _validar_existencia_ruta(ruta) return obtener_contenido(ruta)
def html_a_pdf(carpeta: Carpeta, datos: dict, nombre_html: str, nombre_pdf: str) -> bytes: ''' Genera un reporte en pdf aplicando los datos al modelo Devuelve el contenido del archivo generado ''' html = carpeta.buscar_archivo(nombre_html) if html is None: mensaje = f'El archivo {nombre_html} no existe' raise AppException(Errores.ARCHIVO_NO_EXISTE, mensaje) html_renderizado = _renderizar_archivo(html, datos, f'{uuid.uuid4()}.html') archivo_service.guardar_archivo(carpeta, html_renderizado) directorio_pdf = archivos_util.ruta_tipo_carpeta(TipoCarpeta.PDF.value, carpeta.nombre) archivos_util.crear_directorio_si_no_existe(directorio_pdf) ruta_pdf = os.path.join(directorio_pdf, nombre_pdf) ruta_html = archivos_util.ruta_archivo(carpeta.tipo.value, carpeta.nombre, html_renderizado.nombre) pdfkit.from_file(ruta_html, ruta_pdf) archivo_service.borrar_contenido(carpeta, html_renderizado.nombre) return archivos_util.obtener_archivo(directorio_pdf, nombre_pdf)
def borrar(carpeta: Carpeta): ''' Borra un Carpeta ''' ruta_completa = archivos_util.ruta_archivo(carpeta.tipo.value, carpeta.nombre, _METADATA_NOMBRE) os.remove(ruta_completa)
def borrar_contenido_por_tipo(tipo: TipoCarpeta, nombre_carpeta: str, nombre_archivo: str): ''' Elimina el archivo del sistema de archivos ''' ruta = util.ruta_archivo(tipo.value, nombre_carpeta, nombre_archivo) _validar_existencia_ruta(ruta) os.remove(ruta)
def obtener_contenido_por_tipo_y_nombre(tipo: TipoCarpeta, nombre_carpeta: str, nombre_archivo: str) -> bytes: ''' Devuelve el contenido del archivo ''' ruta = util.ruta_archivo(tipo.value, nombre_carpeta, nombre_archivo) _validar_existencia_ruta(ruta) return obtener_contenido(ruta)
def guardar_archivo(carpeta: Carpeta, archivo: Archivo): ''' Crea el archivo en el sistema de archivos, la estructura que maneja es: {carpeta.nombre}/{carpeta.tipo}/{archivo.nombre} IMPORTANTE: el nombre debe incluir la extension del archivo ''' directorio = util.ruta_tipo_carpeta(carpeta.tipo.value, carpeta.nombre) if not os.path.exists(directorio): os.makedirs(directorio) ruta = util.ruta_archivo(carpeta.tipo.value, carpeta.nombre, archivo.nombre) with open(ruta, 'wb+') as archivo_python: archivo_python.write(archivo.contenido)