Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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
Ejemplo n.º 5
0
 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
Ejemplo n.º 6
0
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
Ejemplo n.º 7
0
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