def api_insert_pagina(): conn = app.config.get('mongo_transito') try: numero_dta, filename, npagina = form_dta_filename_pagina( request.form) file = request.files.get('file') if not file: return jsonify({'msg': 'Arquivo vazio'}), 500 validfile, mensagem = \ valid_file(file, extensions=['png']) if not validfile: print('Não é válido %s' % mensagem) return jsonify({'msg': mensagem}), 500 # content = file.read() logger.info('Chamar processa_pdf_bytes') _id, exists = insert_pagina(conn, file.read(), numero_dta, filename, npagina) if exists: return jsonify({ 'msg': 'Página %s já existente.' % npagina + ' id: %s' % str(_id) }), 201 except Exception as err: logger.error(str(err), exc_info=True) return jsonify({'msg': 'Erro: %s' % str(err)}), 500 return jsonify({ 'msg': 'Página %s incluída com sucesso.' % npagina + ' id: %s' % str(_id) }), 201
def api_get_npaginas(): conn = app.config.get('mongo_transito') try: npaginas = form_dta_filename(request, get_npaginas, conn) except Exception as err: logger.error(str(err), exc_info=True) return jsonify({'msg': 'Erro: %s' % str(err)}), 500 return jsonify({'npaginas': npaginas}), 200
def api_get_paginas(): conn = app.config.get('mongo_transito') try: lista_paginas = form_dta_filename(request, get_paginas, conn) lista_paginas = [str(item['_id']) for item in lista_paginas] except Exception as err: logger.error(str(err), exc_info=True) return jsonify({'msg': 'Erro: %s' % str(err)}), 500 return jsonify({'paginas': lista_paginas}), 200
def api_get_documentos(numero_dta): conn = app.config.get('mongo_transito') lista_documentos = [] try: lista_documentos = get_documentos(conn, numero_dta) except Exception as err: logger.error(str(err), exc_info=True) return jsonify({'msg': 'Erro: %s' % str(err)}), 500 return jsonify({'documentos': lista_documentos}), 200
def dta_anexo(): session = app.config.get('sqlsession') try: anexo_form = AnexoForm(request.form) anexo_form.validate() anexo = edita_anexo(session, dict(anexo_form.data.items())) except Exception as err: flash(err) logger.error(err, exc_info=True) return redirect(url_for('avalia', dta_id=anexo.dta_id))
def api_get_pagina(): conn = app.config.get('mongo_transito') req_data = request.json if req_data is None: req_data = request.args try: numero_dta, filename, npagina = form_dta_filename_pagina(req_data) image = get_pagina(conn, numero_dta, filename, npagina) except Exception as err: logger.error(str(err), exc_info=True) return 'Erro: %s' % str(err), 500 mimetype = 'image/png' return Response(response=image, mimetype=mimetype)
def form_dta_filename(arequest, afunction, conn): req_data = arequest.json if req_data is None: req_data = arequest.form numero_dta = req_data.get('numero_dta') if numero_dta is None: logger.error('Informe o parâmetro numero_dta') raise KeyError('Informe o parâmetro numero_dta') filename = req_data.get('filename') if filename is None: logger.error('Informe o parâmetro filename') raise KeyError('Informe o parâmetro filename') return afunction(conn, numero_dta, filename)
def lista_documentos(base_url, numero_dta): print('Fazendo request') print(base_url + '/api/get_documentos/%s' % numero_dta) rv = requests.get(base_url + '/api/get_documentos/%s' % numero_dta, verify=False) print(rv.text) try: result = rv.json()['documentos'] return result except Exception as err: logger.error(err) logger.error('Status code: %s Msg: %s' % (rv.status_code, rv.text)) raise Exception(rv.text)
def get_paginas(base_url, numero_dta, filename): rv = requests.post(base_url + '/api/get_paginas', data={ 'numero_dta': numero_dta, 'filename': os.path.basename(filename) }, verify=False) try: result = rv.json() return result except Exception as err: logger.error(err) logger.error('Status code: %s Msg: %s' % (rv.status_code, rv.text)) raise Exception(rv.text)
def avalia(): session = app.config.get('sqlsession') dta_id = request.args.get('dta_id', 1) anexo_id = request.args.get('item_id') oform = AnexoForm() listaanexos = [] try: listaanexos = lista_anexos(session, dta_id) if anexo_id and anexo_id is not None: anexo = get_anexo(session, anexo_id) oform = AnexoForm(**anexo.__dict__) except Exception as err: flash(err) logger.error(err, exc_info=True) return render_template('dta_anexos.html', listaanexos=listaanexos, oform=oform)
def api_processa_pdf(): conn = app.config.get('mongo_transito') try: numero_dta = request.form.get('numero_dta') if numero_dta is None: logger.error('Informe o parâmetro numero_dta') return jsonify({'msg': 'Informe o parâmetro numero_dta'}), 500 file = request.files.get('file') if not file: return jsonify({'msg': 'Arquivo vazio'}), 500 validfile, mensagem = \ valid_file(file, extensions=['pdf']) if not validfile: print('Não é válido %s' % mensagem) return jsonify({'msg': mensagem}), 500 npaginas = processa_pdf_stream(conn, numero_dta=numero_dta, file=file) except Exception as err: logger.error(str(err), exc_info=True) return jsonify({'msg': 'Erro: %s' % str(err)}), 500 return jsonify({'msg': 'PDF incluído com %s páginas.' % npaginas}), 201
def avalia_api(): conn = app.config.get('mongo_transito') numero_dta = request.args.get('numero_dta') filename = request.args.get('filename') npagina = request.args.get('npagina', 1) maxpaginas = 0 listaanexos = [] try: listaanexos = get_documentos(conn, numero_dta) if filename: maxpaginas = get_npaginas(conn, numero_dta, filename) if not npagina: npagina = 1 print(listaanexos, type(listaanexos)) except Exception as err: flash(err) logger.error(err) # , exc_info=True) return render_template('dta_anexos_api.html', numero_dta=numero_dta, filename=filename, npagina=npagina, maxpaginas=maxpaginas, listaanexos=listaanexos)
def form_dta_filename_pagina(req_data): numero_dta = req_data.get('numero_dta') if numero_dta is None: logger.error('Informe o parâmetro numero_dta') raise KeyError('Informe o parâmetro numero_dta') filename = req_data.get('filename') if filename is None: logger.error('Informe o parâmetro filename') raise KeyError('Informe o parâmetro filename') npagina = req_data.get('npagina') if npagina is None: logger.error('Informe o parâmetro npagina') raise KeyError('Informe o parâmetro npagina') try: npagina = int(npagina) except ValueError: raise ValueError( 'npagina tem que ser um número inteiro. Recebi %s' % npagina) return numero_dta, filename, npagina