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
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
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
def delete_file_test(): s3.delete_from_s3(s3_filepath)