def getfile(): db_session = current_app.config['db_session'] try: IDEvento = request.form.get('IDEvento') tipoevento = request.form.get('tipoevento') nomearquivo = request.form.get('nomearquivo') if not tipoevento: raise Exception('Parâmetro tipoevento é obrigatório.') try: aclass = getattr(orm, tipoevento) except AttributeError: raise AttributeError('tipoevento "%s" não existente' % tipoevento) except TypeError: raise AttributeError('tipoevento "%s": erro ao processar parâmetro' % tipoevento) evento = db_session.query(aclass).filter( aclass.IDEvento == IDEvento ).one_or_none() if evento is None: return jsonify(_response('Evento não encontrado.', 404)), 404 oanexo = UseCases.get_anexo(evento, nomearquivo) basepath = current_app.config.get('UPLOAD_FOLDER') oanexo.load_file(basepath) print(oanexo.content) return Response(response=oanexo.content, mimetype=oanexo.contentType ), 200 except Exception as err: logging.error(err, exc_info=True) return jsonify(_response(err, 400)), 400
def geteventosnovos(): usecase = create_usecases() try: try: IDEvento = int(request.form.get('IDEvento')) except TypeError: IDEvento = None try: dataevento = parse(request.form.get('dataevento')) except Exception: if IDEvento is None: return jsonify(_response('IDEvento e dataevento invalidos, ' 'ao menos um dos dois e necessario', 400)), 400 dataevento = None tipoevento = request.form.get('tipoevento') aclass = getattr(orm, tipoevento) fields = request.form.get('fields') eventos = usecase.load_eventosnovos(aclass, IDEvento, dataevento, fields) if eventos is None: if dataevento is None: return jsonify(_response('Sem eventos com ID maior que %d.' % IDEvento, 404)), 404 return jsonify(_response('Sem eventos com dataevento maior que %s.' % dataevento, 404)), 404 return dump_eventos(eventos), 200 except Exception as err: logging.error(err, exc_info=True) return jsonify(_response(err, 400)), 400
def uploadfile(): """Função simplificada para upload de arquivo para um Evento.""" db_session = current_app.config['db_session'] usecase = create_usecases() try: file = request.files.get('file') IDEvento = request.form.get('IDEvento') tipoevento = request.form.get('tipoevento') nomearquivo = request.form.get('nomearquivo') tipoanexo = request.form.get('tipoanexo') validfile, mensagem = usecase.valid_file(file) if not validfile: return jsonify(_response(mensagem, 400)), 400 aclass = getattr(orm, tipoevento) evento = db_session.query(aclass).filter( aclass.IDEvento == IDEvento).one_or_none() if evento is None: return jsonify(_response('Evento não encontrado.', 404)), 404 db_session.add(evento) oanexo = UseCases.get_anexo(evento, nomearquivo) if oanexo is None: classeanexo = getattr(orm, tipoanexo) oanexo = classeanexo.create(evento) basepath = current_app.config.get('UPLOAD_FOLDER') oanexo.save_file(basepath, file.read(), file.filename) db_session.add(oanexo) return jsonify(_commit(evento)), 201 except Exception as err: logger.error(str(err), exc_info=True) return jsonify(_response(err, 400)), 400
def recriatedb(): # pragma: no cover # db_session = current_app.config['db_session'] engine = current_app.config['engine'] try: orm.Base.metadata.drop_all(bind=engine) orm.Base.metadata.create_all(bind=engine) except Exception as err: return jsonify(_response(err, 405)), 405 return jsonify(_response('Banco recriado!!!', 201)), 201
def before_request(): if request.path in ['/', '/openapi.json', '/auth', '/privatekey']: return if 'site' in request.path or '/ui' in request.path: return sucesso, err_msg = valida_token_e_assinatura(request) if sucesso is False: return jsonify( _response('Token inválido ou Assinatura inválida: %s' % err_msg, 401) ), 401
def getfile(): db_session = current_app.config['db_session'] try: IDEvento = request.form.get('IDEvento') tipoevento = request.form.get('tipoevento') nomearquivo = request.form.get('nomearquivo') aclass = getattr(orm, tipoevento) evento = db_session.query(aclass).filter( aclass.IDEvento == IDEvento).one_or_none() if evento is None: return jsonify(_response('Evento não encontrado.', 404)), 404 oanexo = UseCases.get_anexo(evento, nomearquivo) basepath = current_app.config.get('UPLOAD_FOLDER') oanexo.load_file(basepath) print(oanexo.content) return Response(response=oanexo.content, mimetype=oanexo.contentType), 200 except Exception as err: logging.error(err, exc_info=True) return jsonify(_response(err, 400)), 400
def get_private_key(): recinto = request.json.get('recinto') try: private_key_pem, assinado = UseCases.gera_chaves_recinto( current_app.config['db_session'], recinto ) return jsonify({'pem': private_key_pem.decode('utf-8'), 'assinado': b85encode(assinado).decode('utf-8')}), 200 except Exception as err: logging.error(err, exc_info=True) return jsonify(_response(err, 400)), 400