webapp/api: remove dead code
This commit is contained in:
parent
459695b65a
commit
b3ec38bffe
1 changed files with 0 additions and 104 deletions
|
@ -71,90 +71,6 @@ def _public_api_method(path):
|
|||
return bp.route("/api/" + path + ".json", methods=["GET"])(wrapper_json)
|
||||
return decorator2
|
||||
|
||||
|
||||
def _private_api_method(path):
|
||||
"""A decorator that adds a private, HMACed, POST based method at /api/path.
|
||||
The JSON-decoded POSTbody is stored as request.decoded.
|
||||
The resulting data is also JSON-encoded.
|
||||
|
||||
It also that ensures that the request is authorized if 'private' is True.
|
||||
If so, it also adds a request.api_member object that points to a member if an
|
||||
API key should be limited to that member (for example, when handing over
|
||||
keys to normal members)."""
|
||||
def decorator(original):
|
||||
@wraps(original)
|
||||
def wrapper(*args, **kwargs):
|
||||
if request.data.count(",") != 1:
|
||||
abort(400)
|
||||
message64, mac64 = request.data.split(",")
|
||||
try:
|
||||
message = message64.decode("base64")
|
||||
mac = mac64.decode("base64")
|
||||
except:
|
||||
abort(400)
|
||||
|
||||
for key in models.APIKey.query.all():
|
||||
mac_verify = hmac.new(key.secret.encode("utf-8"))
|
||||
mac_verify.update(message)
|
||||
if mac_verify.digest() == mac:
|
||||
break
|
||||
else:
|
||||
abort(403)
|
||||
|
||||
if key.member:
|
||||
request.api_member = key.member
|
||||
else:
|
||||
request.api_member = None
|
||||
try:
|
||||
if request.data:
|
||||
request.decoded = json.loads(request.data.decode("base64"))
|
||||
else:
|
||||
request.decoded = {}
|
||||
except Exception:
|
||||
logger.exception('Request decode failed')
|
||||
abort(400)
|
||||
|
||||
return json.dumps(original(*args, **kwargs))
|
||||
return bp.route("/api/" + path, methods=["POST"])(wrapper)
|
||||
return decorator
|
||||
|
||||
@_private_api_method("list_members")
|
||||
def api_members():
|
||||
if request.api_member:
|
||||
abort(403)
|
||||
|
||||
members = [member.username for member in models.Member.query.all()]
|
||||
return members
|
||||
|
||||
|
||||
@_private_api_method("get_member_info")
|
||||
def api_member():
|
||||
mid = request.decoded["member"]
|
||||
if request.api_member and request.api_member.username != mid:
|
||||
abort(403)
|
||||
|
||||
member = models.Member.query.filter_by(username=mid).join(models.Member.transfers).\
|
||||
join(models.MemberTransfer.transfer).first()
|
||||
mts = member.transfers
|
||||
response = {}
|
||||
response["paid"] = []
|
||||
for mt in mts:
|
||||
t = {}
|
||||
t["year"] = mt.year
|
||||
t["month"] = mt.month
|
||||
transfer = {}
|
||||
transfer["uid"] = mt.transfer.uid
|
||||
transfer["amount"] = mt.transfer.amount
|
||||
transfer["title"] = mt.transfer.title
|
||||
transfer["account"] = mt.transfer.account_from
|
||||
transfer["from"] = mt.transfer.name_from
|
||||
t["transfer"] = transfer
|
||||
response["paid"].append(t)
|
||||
response["months_due"] = member.get_months_due()
|
||||
response["membership"] = member.type
|
||||
|
||||
return response
|
||||
|
||||
@cache.memoize()
|
||||
def _stats_for_month(year, month):
|
||||
# TODO: export this to the config
|
||||
|
@ -173,13 +89,6 @@ def api_month(year=None, month=None):
|
|||
money_required, money_paid = _stats_for_month(year, month)
|
||||
return dict(required=money_required, paid=money_paid)
|
||||
|
||||
@_public_api_method("mana")
|
||||
def api_manamana():
|
||||
"""To-odee doo-dee-doo!"""
|
||||
now = datetime.datetime.now()
|
||||
money_required, money_paid = _stats_for_month(now.year, now.month)
|
||||
return dict(required=money_required, paid=money_paid)
|
||||
|
||||
@_public_api_method("judgement/<membername>")
|
||||
def api_judgement(membername):
|
||||
member = models.Member.query.filter_by(username=membername).first()
|
||||
|
@ -203,16 +112,3 @@ def api_months_due(membername):
|
|||
raise APIError("No longer a member.", 410)
|
||||
due = member.get_months_due()
|
||||
return due
|
||||
|
||||
@_public_api_method("cashflow/<int:year>/<int:month>")
|
||||
@cache.memoize()
|
||||
def api_cashflow(year, month):
|
||||
start = datetime.date(year=year, month=month, day=1)
|
||||
month += 1
|
||||
if month > 12:
|
||||
month = 1
|
||||
year += 1
|
||||
end = datetime.date(year=year, month=month, day=1)
|
||||
transfers = models.Transfer.query.filter(and_(models.Transfer.date >= start, models.Transfer.date < end, models.Transfer.ignore == False)).all()
|
||||
amount_in = sum(t.amount for t in transfers)
|
||||
return {"in": amount_in/100, "out": -1}
|
||||
|
|
Loading…
Reference in a new issue