65 lines
2.4 KiB
Python
65 lines
2.4 KiB
Python
from flask import Blueprint, jsonify, request
|
|
from flask_jwt_extended import jwt_required, get_jwt_identity
|
|
from datetime import datetime, timedelta
|
|
from models.subscription import Subscription
|
|
from models.user import Users
|
|
from datetime import datetime, timedelta
|
|
|
|
subscription_bp = Blueprint("subscription", __name__, url_prefix="/subscription")
|
|
|
|
@subscription_bp.route("/", methods=["GET"])
|
|
@jwt_required()
|
|
def get_subscription():
|
|
user_id = get_jwt_identity()
|
|
subscription_model = Subscription()
|
|
subscriptions = subscription_model.get_by_user_id(user_id)
|
|
return jsonify(subscriptions), 200
|
|
|
|
@subscription_bp.route("/first_2_months", methods=["POST"])
|
|
@jwt_required()
|
|
def first_2_months_subscription():
|
|
user_id = get_jwt_identity()
|
|
users_model = Users()
|
|
user = users_model.get_user_by_id(user_id)
|
|
|
|
subscription_model = Subscription()
|
|
existing_sub = subscription_model.get_first_2_months_subscription_for_register_number(user["register_number"])
|
|
|
|
if existing_sub:
|
|
return jsonify({"error": "First 2 months subscription already used for this company."}), 400
|
|
|
|
start_date = datetime.now()
|
|
end_date = start_date + timedelta(days=60)
|
|
subscription_model.create(user_id, "first_2_months", start_date.isoformat(), end_date.isoformat(), user["register_number"])
|
|
|
|
return jsonify({"message": "First 2 months subscription created."}), 201
|
|
|
|
@subscription_bp.route("/one_month", methods=["POST"])
|
|
@jwt_required()
|
|
def one_month_subscription():
|
|
user_id = get_jwt_identity()
|
|
start_date = datetime.now()
|
|
end_date = start_date + timedelta(days=30)
|
|
|
|
users_model = Users()
|
|
user = users_model.get_user_by_id(user_id)
|
|
|
|
subscription_model = Subscription()
|
|
subscription_model.create(user_id, "monthly", start_date.isoformat(), end_date.isoformat(), user["register_number"])
|
|
|
|
return jsonify({"message": "1 month subscription created."}), 201
|
|
|
|
@subscription_bp.route("/one_year", methods=["POST"])
|
|
@jwt_required()
|
|
def one_year_subscription():
|
|
user_id = get_jwt_identity()
|
|
start_date = datetime.now()
|
|
end_date = start_date + timedelta(days=365)
|
|
|
|
users_model = Users()
|
|
user = users_model.get_user_by_id(user_id)
|
|
|
|
subscription_model = Subscription()
|
|
subscription_model.create(user_id, "yearly", start_date.isoformat(), end_date.isoformat(), user["register_number"])
|
|
|
|
return jsonify({"message": "1 year subscription created."}), 201 |