gear-orders/flask/api.py

42 lines
931 B
Python

from flask import Blueprint, jsonify, abort
from flask_login import current_user
from db.queries import user_get, domsubusers_list, orders_pool_list
api = Blueprint('api', __name__)
@api.route('/subs')
def subs():
return jsonify(
[
{"sub_username": dsu.sub.telegram_username}
for dsu
in domsubusers_list(current_user.db_user)
]
)
@api.route('/subs/<username>/orders')
def sub_orders(username):
try:
sub = user_get(username)
except:
abort(500)
return
if sub.telegram_username not in [dsu.sub.telegram_username for dsu in domsubusers_list(current_user.db_user)]:
abort(500)
return
return jsonify([
{
'id': op.id,
'name': op.name,
'orders': [{
'id': order.id,
'name': order.name,
'weight': order.weight,
'repeat': order.repeat
} for order in op.orders]
}
for op
in orders_pool_list(sub.id)
])