Exemplo n.º 1
0
def eliminarArchivoElementoRelacional(elementoRelacional, parametrosJSON):
    ''' Esta funcion permite eliminar un archivo de un
    elemento relacional en especifico. parametrosJSON
    deberia tener un nombre de un archivo valido
    '''
    # Revisamos que el elemento exista en la base de datos
    idElementoRelacional = pimcBD.obtenerTablaId(elementoRelacional)
    elementoBD = consultarElemento(elementoRelacional, parametrosJSON)
    if 'fileName' not in parametrosJSON:
        raise ValueError('Parametros Incorrectos' + str(parametrosJSON))
    if not elementoBD:
        raise ValueError('Elemento no existente')
    # Obtenemos el nombre del archivo
    fileName = secure_filename(parametrosJSON['fileName'])
    idElemento = elementoBD[0][idElementoRelacional]
    pathCompleto = os.path.join(app.config['UPLOAD_FOLDER'],
                                elementoRelacional, str(idElemento), fileName)
    if os.path.exists(pathCompleto) and os.path.isfile(pathCompleto):
        try:
            os.remove(pathCompleto)
        except OSError:
            raise ValueError('Elemento incorrecto')
        return {
            "status": "Success",
            "message": "Archivo eliminado satisfactoriamente"
        }
    raise ValueError('El archivo no existe')
Exemplo n.º 2
0
def renombrarArchivoElementoRelacional(elemento_relacional, parametros_JSON):
    ''' Esta funcion permite renombrar un archivo de un
    elemento relacional en especifico. parametros_JSON
    deberia tener un nombre de un archivo valido
    '''
    # Revisamos que el elemento exista en la base de datos
    id_elemento_relacional = pimcBD.obtenerTablaId(elemento_relacional)
    elemento_BD = consultarElemento(elemento_relacional, parametros_JSON)
    if 'fileName' not in parametros_JSON:
        raise ValueError('Parametros Incorrectos' + str(parametros_JSON))
    if not elemento_BD:
        raise ValueError('Elemento no existente')
    # Obtenemos el nombre del archivo
    file_name = secure_filename(parametros_JSON['fileName'])
    new_file_name = secure_filename(parametros_JSON['newFileName'])
    id_elemento = elemento_BD[0][id_elemento_relacional]
    path_completo = os.path.join(app.config['UPLOAD_FOLDER'],
                                 elemento_relacional, str(id_elemento),
                                 file_name)
    new_path_completo = os.path.join(app.config['UPLOAD_FOLDER'],
                                     elemento_relacional, str(id_elemento),
                                     new_file_name)

    # Revisamos que no se cambie la extension del archivo
    if file_extension_changed(file_name, new_file_name):
        raise ValueError('No se puede cambiar la extension de un archivo')

    # renombramos el archivo
    if (os.path.exists(path_completo) and os.path.isfile(path_completo)
            and allowed_file(new_file_name)):
        try:
            os.rename(path_completo, new_path_completo)
        except OSError:
            raise ValueError('Elemento incorrecto')
        return {
            "status": "Success",
            "message": "Archivo renombrado satisfactoriamente"
        }
    raise ValueError('El archivo no existe')
Exemplo n.º 3
0
def descargarAchivoElementoRelacional(elementoRelacional, parametrosJSON):
    ''' Esta funcion permite descargar los archivos
    de un elemento relacional en especifico. parametrosJSON
    deberia tener un nombre de archivo valido
    '''
    # Revisamos que el elemento exista en la base de datos
    idElementoRelacional = pimcBD.obtenerTablaId(elementoRelacional)
    elementoBD = consultarElemento(elementoRelacional, parametrosJSON)
    if 'fileName' not in parametrosJSON:
        raise ValueError('Parametros Incorrectos' + str(parametrosJSON))
    if not elementoBD:
        raise ValueError('Elemento no existente')
    # Obtenemos el nombre del archivo
    fileName = secure_filename(parametrosJSON['fileName'])
    idElemento = elementoBD[0][idElementoRelacional]
    pathCompleto = os.path.join(app.config['UPLOAD_FOLDER'],
                                elementoRelacional, str(idElemento), fileName)
    if os.path.exists(pathCompleto) and os.path.isfile(pathCompleto):
        return {
            'directorio': os.path.dirname(pathCompleto),
            'nombreArchivo': os.path.basename(pathCompleto)
        }
    raise ValueError('El archivo no existe')
Exemplo n.º 4
0
def archivosElementoRelacional(elementoRelacional, parametrosJSON):
    ''' Esta funcion permite revisar los archivos 
    que un elemento relacional tiene. Devuelve una 
    lista con cada uno de los archivos
    '''
    # Revisamos que el elemento exista en la base de datos
    idElementoRelacional = pimcBD.obtenerTablaId(elementoRelacional)
    elementoBD = consultarElemento(elementoRelacional, parametrosJSON)
    if not elementoBD:
        raise ValueError('Elemento no existente')
    # Obtenemos el nombre del archivo
    idElemento = elementoBD[0][idElementoRelacional]
    pathCompleto = os.path.join(app.config['UPLOAD_FOLDER'],
                                elementoRelacional, str(idElemento))
    if os.path.exists(pathCompleto):
        listaArchivos = [
            f for f in os.listdir(pathCompleto)
            if os.path.isfile(os.path.join(pathCompleto, f))
        ]
        return listaArchivos
    else:
        return []
    return
Exemplo n.º 5
0
def cargarArchivos(elementoRelacional, parametrosPOST):
    ''' Esta funcion permite cargar archivos de un
        elemento relacional en especifico
    '''
    # check if the post request has the file part
    if not parametrosPOST.files or 'file' not in parametrosPOST.files:
        raise ValueError('No se envió archivo adjunto')
    file = parametrosPOST.files['file']
    # if user does not select file, browser also
    # submit a empty part without filename
    if file.filename == '':
        raise ValueError('Nombre archivo incorrecto')
    if file and allowed_file(file.filename):
        # Revisamos que el elemento exista en la base de datos
        idElementoRelacional = pimcBD.obtenerTablaId(elementoRelacional)
        elementoBD = consultarElemento(elementoRelacional,
                                       parametrosPOST.form.to_dict())
        if not elementoBD:
            raise ValueError('Elemento no existente')
        filename = secure_filename(file.filename)
        pathCompleto = os.path.join(app.config['UPLOAD_FOLDER'],
                                    elementoRelacional,
                                    str(elementoBD[0][idElementoRelacional]),
                                    filename)
        # Creamos los folderes si es necesario
        directory = os.path.dirname(pathCompleto)
        if not os.path.exists(directory):
            os.makedirs(directory)
        # Guardamos el archivo en la base de datos
        file.save(pathCompleto)
        return {
            "status": "Success",
            "message": "Archivo agregado satisfactoriamente"
        }
    else:
        raise ValueError('Nombre archivo incorrecto')
Exemplo n.º 6
0
 def consultarElemento(self, elementoRelacional, parametrosJSON):
     consultarElemento(elementoRelacional, parametrosJSON)