def delete(self, id=None):
        if id:
            try:
                item = AplicacoesModel.return_by_id(id)
            except:
                return {'mensagem': 'Ocorreu um erro interno'}, 500

            try:
                if item:
                    aplicacoes = ImagensAplicacoesModel.return_all_by_aplicacao_id(item.id)
                    for aplicacao in aplicacoes:
                        aplicacao.delete()
                        delete_from_s3('del-vetro', 'imagens/' + aplicacao.imagem.split('/')[-1])
                        os.remove(os.getcwd() + aplicacao.imagem)

                    item.delete()
                    delete_from_s3('del-vetro', 'imagens/' + item.imagem.split('/')[-1])
                    os.remove(os.getcwd() + item.imagem)

                    return {'mensagem': 'Item deletado'}, 200
            except:
                return {'mensagem': 'Ocorreu um erro interno'}, 500

            return {'mensagem': 'Item não encontrado'}, 404
        else:
            return {'mensagem': 'Informe um id na requisição'}, 400
    def put(self, id, id_ap=None):
        #esse condicional serve apenas para salvar novas posições, nada a ser mexido
        # id_ap deveria ser posição, mas devido a um erro do flask de endereçamento, tive que manter esse nome
        if id_ap:
            try:
                item = ImagensAplicacoesModel.return_by_id(id)
                item.posicao = id_ap
                item.commit()
            except:
                return {'mensagem': 'Ocorreu um erro interno'}, 500
        else:
            try:
                corpo = request.get_json(force=True)
                item = ImagensAplicacoesModel.return_by_id(id)

                imagem_old = item.imagem
                item.imagem = corpo['imagem']

                item.commit()
                delete_from_s3('del-vetro', 'imagens/' + imagem_old)
                upload_to_s3(os.getcwd() + UPLOAD_FOLDER + '/' + filename, 'del-vetro', 'imagens/' + filename)
                os.remove(os.path.join(os.getcwd() + UPLOAD_FOLDER, imagem_old))
                return {
                    'message': 'item alterado',
                }, 201
            except:
                return {'mensagem': 'Ocorreu um erro interno'}, 500
示例#3
0
    def put(self, id, posicao=None):
        #esse condicional serve apenas para salvar novas posições, nada a ser mexido
        if posicao:
            try:
                item = ProdutosModel.return_by_id(id)
                item.posicao = posicao
                item.commit()
            except:
                return {'mensagem': 'Ocorreu um erro interno'}, 500
        else:
            try:
                item = ProdutosModel.return_by_id(id)
                item.titulo = request.form['titulo']
                item.texto = request.form['texto']

                files = request.files.getlist('files')

                if len(files) != 0:
                    if len(files) != 1:
                        resp = jsonify({'mensagem' : 'É necessário enviar apenas uma imagem'})
                        resp.status_code = 400
                        return resp

                    errors = {}
                    caminho = ""

                    for file in files:		
                        if file and allowed_file(file.filename):
                            filename = secure_filename(str(datetime.now()).replace(".","_")) + ".jpg"
                            caminho = os.path.join(os.getcwd() + UPLOAD_FOLDER, filename)
                            while os.path.isfile(caminho):
                                filename = secure_filename(str(datetime.now()).replace(".","_")) + ".jpg"
                                caminho = os.path.join(os.getcwd() + UPLOAD_FOLDER, filename)
                            file.save(caminho)
                        else:
                            errors[file.filename] = 'Tipo do arquivo não permitido'
                    
                    if errors:
                        errors['mensagem'] = 'Algo de errado não está certo'
                        resp = jsonify(errors)
                        resp.status_code = 500
                        return resp

                    imagem_old = item.imagem.split("/")[-1]
                    item.imagem = os.path.join(UPLOAD_FOLDER, filename)

                item.commit()
                delete_from_s3('del-vetro', 'imagens/' + imagem_old)
                upload_to_s3(os.getcwd() + UPLOAD_FOLDER + '/' + filename, 'del-vetro', 'imagens/' + filename)
                os.remove(os.path.join(os.getcwd() + UPLOAD_FOLDER, imagem_old))
                return {
                    'mensagem': 'item alterado',
                }, 201
            except:
                print("deu ruim")
                return {'mensagem': 'Ocorreu um erro interno'}, 500
示例#4
0
    def delete(self, id=None):
        if id:
            try:
                item = ProdutosModel.return_by_id(id)
            except:
                return {'mensagem': 'Ocorreu um erro interno'}, 500

            try:
                if item:
                    item.delete()
                    delete_from_s3('del-vetro', 'imagens/' + item.imagem.split('/')[-1])
                    os.remove(os.getcwd() + item.imagem)
                    return {'mensagem': 'Item deletado'}, 200
            except Exception as e:
                print(e)
                return {'mensagem': 'Ocorreu um erro interno'}, 500

            return {'mensagem': 'Item não encontrado'}, 404
        else:
            return {'mensagem': 'Informe um id na requisição'}, 400
示例#5
0
def delete_file_test():
    s3.delete_from_s3(s3_filepath)