kurjerzy-labelifier/kurjerzy_labelifier.py
2020-05-20 19:42:08 +02:00

37 lines
1.2 KiB
Python

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)))