Example #1
0
def obtener_todos_los_archivos(nombre_carpeta):

    contenidos_tambien = request.args.get('base64') == 'true'

    carpeta = carpeta_service.obtener_por_nombre(nombre_carpeta,
                                                 contenidos_tambien)

    archivos_dict = [archivo.to_dict() for archivo in carpeta.archivos]
    return jsonify(archivos_dict)
Example #2
0
def _obtener_carpeta_y_archivo(nombre_carpeta: str,
                               nombre_archivo: str) -> Tuple[Carpeta, Archivo]:
    '''
    Obtiene la carpeta y el archivo correspondiente
    '''
    carpeta = carpeta_service.obtener_por_nombre(nombre_carpeta, False)
    archivo = carpeta.buscar_archivo(nombre_archivo)

    if not archivo:
        mensaje = f'La carpeta {nombre_carpeta} no posee el archivo {nombre_archivo}'
        raise AppException('ARCHIVO_NO_ENCONTRADO', mensaje)

    return carpeta, archivo
Example #3
0
def nuevo_contenido_archivo(nombre_carpeta, nombre_archivo):

    carpeta = carpeta_service.obtener_por_nombre(nombre_carpeta, False)
    archivo = carpeta.buscar_archivo(nombre_archivo)

    if archivo != None:
        mensaje = f'El archivo con nombre {nombre_archivo}, ya existe'
        raise AppException(Errores.ARCHIVO_YA_EXISTENTE, mensaje)

    archivo_nuevo = Archivo(nombre_archivo, request.get_data())
    carpeta.agregar_archivo(archivo_nuevo)

    carpeta_service.actualizar(carpeta)

    return '', HTTPStatus.CREATED
def borrar_contenido(carpeta_nombre: str, tipo_carpeta_nombre: str, archivo_nombre: str):
    try:
        tipo_carpeta = TipoCarpeta.desde_str(tipo_carpeta_nombre)

    except Exception:
        mensaje = f'No se reconoce el tipo de carpeta {tipo_carpeta_nombre}'
        raise AppException(Errores.TIPO_CARPETA_NO_VALIDO, mensaje)

    if tipo_carpeta == TipoCarpeta.MODELO:
        mensaje = f'No esta permitido el borrado manual de los archivos del tipo MODELO'
        raise AppException(Errores.BORRADO_DE_MODELO_NO_PERMITIDO, mensaje)

    carpeta_existe = carpeta_service.obtener_por_nombre(carpeta_nombre, False)
    if not carpeta_existe:
        mensaje = f'La carpeta {carpeta_nombre} NO existe'
        raise AppException(Errores.CARPETA_NO_EXISTE, mensaje)

    archivo_service.borrar_contenido_por_tipo(tipo_carpeta, carpeta_nombre,
                                              archivo_nombre)
    return ''
def obtener_archivo(carpeta_nombre: str, tipo_carpeta_nombre: str, archivo_nombre: str):
    try:
        tipo_carpeta = TipoCarpeta.desde_str(tipo_carpeta_nombre)

    except Exception:
        mensaje = f'No se reconoce el tipo de carpeta {tipo_carpeta_nombre}'
        raise AppException(Errores.TIPO_CARPETA_NO_VALIDO, mensaje)

    carpeta_existe = carpeta_service.obtener_por_nombre(carpeta_nombre, False)
    if not carpeta_existe:
        mensaje = f'La carpeta {carpeta_nombre} NO existe'
        raise AppException(Errores.CARPETA_NO_EXISTE, mensaje)

    contenido = archivo_service.obtener_contenido_por_tipo_y_nombre(
        tipo_carpeta, carpeta_nombre, archivo_nombre)

    return send_file(BytesIO(contenido),
                     mimetype='application/octet-stream',
                     as_attachment=True,
                     attachment_filename=archivo_nombre)
def md_a_md(nombre_carpeta, nombre_entrada, nombre_salida):

    json_body = request.json

    nombre_entrada = nombre_con_extension(nombre_entrada, 'md')
    nombre_salida = nombre_con_extension(nombre_salida, 'md')

    carpeta = carpeta_service.obtener_por_nombre(nombre_carpeta, True)

    contenido_resultado = conversor_service.texto_a_texto(carpeta, json_body,
                                                          nombre_entrada, nombre_salida)

    guardar_resultado = request.args.get('guardar') == 'true'
    if not guardar_resultado:
        archivo_service.borrar_contenido_por_tipo(TipoCarpeta.MD,
                                                  nombre_carpeta, nombre_salida)

    return send_file(BytesIO(contenido_resultado),
                     mimetype='application/octet-stream',
                     as_attachment=True,
                     attachment_filename=nombre_salida)
def html_a_pdf(nombre_carpeta, nombre_html, nombre_pdf):

    json_body = request.json

    nombre_html = nombre_con_extension(nombre_html, 'html')
    nombre_pdf = nombre_con_extension(nombre_pdf, 'pdf')

    modelo = carpeta_service.obtener_por_nombre(nombre_carpeta, True)

    contenido_pdf = conversor_service.html_a_pdf(modelo, json_body,
                                                 nombre_html, nombre_pdf)

    guardar_pdf = request.args.get('guardar') == 'true'
    if not guardar_pdf:
        archivo_service.borrar_contenido_por_tipo(TipoCarpeta.PDF,
                                                  nombre_carpeta, nombre_pdf)

    return send_file(BytesIO(contenido_pdf),
                     mimetype='application/octet-stream',
                     as_attachment=True,
                     attachment_filename=nombre_pdf)
def obtener(nombre):

    contenidos_tambien = request.args.get('base64') == 'true'
    carpeta = carpeta_service.obtener_por_nombre(nombre, contenidos_tambien)

    return jsonify(carpeta.to_dict())