From c4b9a81c0907a71fa43976f1aaef0e076ca81982 Mon Sep 17 00:00:00 2001 From: Son NK Date: Sun, 17 Nov 2019 11:41:54 +0100 Subject: [PATCH] fix user re-subscribes --- server.py | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/server.py b/server.py index f1868874..580e24be 100644 --- a/server.py +++ b/server.py @@ -285,17 +285,31 @@ def setup_paddle_callback(app: Flask): else: plan = PlanEnum.yearly - Subscription.create( - user_id=user.id, - cancel_url=request.form.get("cancel_url"), - update_url=request.form.get("update_url"), - subscription_id=request.form.get("subscription_id"), - event_time=arrow.now(), - next_bill_date=arrow.get( + sub = Subscription.get_by(user_id=user.id) + + if not sub: + LOG.d("create a new sub") + Subscription.create( + user_id=user.id, + cancel_url=request.form.get("cancel_url"), + update_url=request.form.get("update_url"), + subscription_id=request.form.get("subscription_id"), + event_time=arrow.now(), + next_bill_date=arrow.get( + request.form.get("next_bill_date"), "YYYY-MM-DD" + ).date(), + plan=plan, + ) + else: + LOG.d("update existing sub %s", sub) + sub.cancel_url = request.form.get("cancel_url") + sub.update_url = request.form.get("update_url") + sub.subscription_id = request.form.get("subscription_id") + sub.event_time = arrow.now() + sub.next_bill_date = arrow.get( request.form.get("next_bill_date"), "YYYY-MM-DD" - ).date(), - plan=plan, - ) + ).date() + sub.plan = plan LOG.debug("User %s upgrades!", user) notify_admin(f"User {user.email} upgrades!")