37 lines
1.2 KiB
Python
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)))
|