import datetime from flask_weasyprint import HTML, render_pdf from flask import Flask, redirect, url_for, render_template, session, request, jsonify from kurjerzy import Kurjerzy from environs import Env env = Env() env.read_env() app = Flask(__name__) app.config.update({ 'SECRET_KEY': env.str('SECRET_KEY', default='notasecret'), }) @app.route('/') def index(): return render_template('login.html') @app.route('/login', methods=['POST']) def login(): k = Kurjerzy(app) session['token'] = k.login(request.form['email'], request.form['password']) if session['token']: return redirect(url_for('print_')) return 'invalid password' @app.route('/print') def print_(): k = Kurjerzy(app) k.set_token(session['token']) shipments = k.send_query(r'query($dateFrom: Date, $dateTo: Date) { shipments(dateFrom: $dateFrom, dateTo: $dateTo) { id, labelSource } }', { 'dateFrom': (datetime.datetime.now(datetime.timezone.utc)).date().isoformat(), 'dateTo': (datetime.datetime.now(datetime.timezone.utc) + datetime.timedelta(days=1)).date().isoformat(), })['data']['shipments'] return render_pdf(HTML(string=render_template('shipping_label.html', shipments=shipments)))