Config for URLS prod
This commit is contained in:
@@ -748,7 +748,7 @@ def get_recent_signup_office():
|
|||||||
def get_recent_account_office():
|
def get_recent_account_office():
|
||||||
# Call the dashboard service
|
# Call the dashboard service
|
||||||
filters = {}
|
filters = {}
|
||||||
result = OfficeDashboardService.get_recent_signup_data(filters)
|
result = OfficeDashboardService.get_recent_account_data(filters)
|
||||||
return jsonify(result)
|
return jsonify(result)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ from app.utils.logger import logger
|
|||||||
from app.api.services.base_service import BaseService
|
from app.api.services.base_service import BaseService
|
||||||
from sqlalchemy import func, desc
|
from sqlalchemy import func, desc
|
||||||
from app.models import MembersProducts, Products, Payments, Members, CustomTemplates, ProductsTemplates, MembersProfile, \
|
from app.models import MembersProducts, Products, Payments, Members, CustomTemplates, ProductsTemplates, MembersProfile, \
|
||||||
ProductsDetails, MembersWebfiles
|
ProductsDetails, MembersWebfiles, Signup
|
||||||
|
|
||||||
|
|
||||||
class OfficeDashboardService(BaseService):
|
class OfficeDashboardService(BaseService):
|
||||||
@@ -622,7 +622,7 @@ class OfficeDashboardService(BaseService):
|
|||||||
return jsonify({"message": "Internal Server Error"}), 500
|
return jsonify({"message": "Internal Server Error"}), 500
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_recent_signup_data(filters):
|
def get_recent_account_data(filters):
|
||||||
try:
|
try:
|
||||||
if filters is None:
|
if filters is None:
|
||||||
filters = {}
|
filters = {}
|
||||||
@@ -671,3 +671,55 @@ class OfficeDashboardService(BaseService):
|
|||||||
except Exception as e:
|
except Exception as e:
|
||||||
logger.error(f"An error occurred while getting dashboard data: {str(e)}", exc_info=True)
|
logger.error(f"An error occurred while getting dashboard data: {str(e)}", exc_info=True)
|
||||||
return jsonify({"message": "Internal Server Error"}), 500
|
return jsonify({"message": "Internal Server Error"}), 500
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def get_recent_signup_data(filters):
|
||||||
|
try:
|
||||||
|
if filters is None:
|
||||||
|
filters = {}
|
||||||
|
|
||||||
|
# Extract pagination parameters
|
||||||
|
page = int(filters.get('page', 1))
|
||||||
|
limit = int(filters.get('limit', 20))
|
||||||
|
email = filters.get('email')
|
||||||
|
firstname = filters.get('firstname')
|
||||||
|
lastname = filters.get('lastname')
|
||||||
|
|
||||||
|
# Ensure page and limit are valid
|
||||||
|
if page < 1:
|
||||||
|
page = 1
|
||||||
|
if limit < 1 or limit > 100:
|
||||||
|
limit = 20
|
||||||
|
|
||||||
|
membersList, total_count = Signup.get_all_start_signup(email, firstname, lastname, page, limit)
|
||||||
|
# Convert loans to dictionary format
|
||||||
|
member_data = []
|
||||||
|
for member in membersList:
|
||||||
|
member_data.append({
|
||||||
|
'id': member.id,
|
||||||
|
'email': member.email,
|
||||||
|
'firstname': member.firstname,
|
||||||
|
'lastname': member.lastname,
|
||||||
|
'member_uid': member.uid,
|
||||||
|
'status': member.status,
|
||||||
|
"added": member.added,
|
||||||
|
})
|
||||||
|
|
||||||
|
response_data = {
|
||||||
|
'members': member_data,
|
||||||
|
'count': 30,
|
||||||
|
'pagination': {
|
||||||
|
'total_count': total_count,
|
||||||
|
'total_pages': 1,
|
||||||
|
'current_page': page,
|
||||||
|
'limit': limit,
|
||||||
|
'has_next': page < 1,
|
||||||
|
'has_prev': page > 1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return response_data
|
||||||
|
|
||||||
|
except Exception as e:
|
||||||
|
logger.error(f"An error occurred while getting dashboard data: {str(e)}", exc_info=True)
|
||||||
|
return jsonify({"message": "Internal Server Error"}), 500
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ from app.utils.logger import logger
|
|||||||
from app.api.services.base_service import BaseService
|
from app.api.services.base_service import BaseService
|
||||||
from marshmallow import ValidationError
|
from marshmallow import ValidationError
|
||||||
from app.extensions import db
|
from app.extensions import db
|
||||||
from app.models import MembersPending, Members, Country
|
from app.models import MembersPending, Members, Country, Signup
|
||||||
from app.api.helpers.response_helper import ResponseHelper
|
from app.api.helpers.response_helper import ResponseHelper
|
||||||
from werkzeug.security import generate_password_hash, check_password_hash
|
from werkzeug.security import generate_password_hash, check_password_hash
|
||||||
|
|
||||||
@@ -178,6 +178,9 @@ class RegisterService(BaseService):
|
|||||||
lastname = validated_data.get('lastname')
|
lastname = validated_data.get('lastname')
|
||||||
email = str(validated_data.get('email')).lower()
|
email = str(validated_data.get('email')).lower()
|
||||||
|
|
||||||
|
# Keep a record on signup table
|
||||||
|
Signup.add_signup(firstname, lastname, email)
|
||||||
|
|
||||||
if RegisterService.ALLOWED_SIGNUP_EMAIL_RESUSE== '0':
|
if RegisterService.ALLOWED_SIGNUP_EMAIL_RESUSE== '0':
|
||||||
logger.info(f"RegisterService.ALLOWED_SIGNUP_EMAIL_RESUSE=0")
|
logger.info(f"RegisterService.ALLOWED_SIGNUP_EMAIL_RESUSE=0")
|
||||||
if Members.get_member_by_email(email) != None:
|
if Members.get_member_by_email(email) != None:
|
||||||
|
|||||||
@@ -59,3 +59,29 @@ class Signup(db.Model):
|
|||||||
return signup_data
|
return signup_data
|
||||||
|
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def get_all_start_signup(cls, email=None, firstname=None, lastname=None, page=1, limit=20):
|
||||||
|
|
||||||
|
query = cls.query
|
||||||
|
logger.info(f"Get all customer back")
|
||||||
|
|
||||||
|
if firstname:
|
||||||
|
query = query.filter(cls.firstname == firstname)
|
||||||
|
|
||||||
|
if lastname:
|
||||||
|
query = query.filter(cls.lastname == lastname)
|
||||||
|
|
||||||
|
if email:
|
||||||
|
query = query.filter(cls.email == email)
|
||||||
|
|
||||||
|
# Order by created_at descending (newest first)
|
||||||
|
query = query.order_by(cls.added.desc())
|
||||||
|
|
||||||
|
# Get total count before pagination
|
||||||
|
total_count = query.count()
|
||||||
|
|
||||||
|
# Apply pagination
|
||||||
|
offset = (page - 1) * limit
|
||||||
|
query = query.limit(limit).offset(offset)
|
||||||
|
|
||||||
|
return query.all(), total_count
|
||||||
|
|||||||
Reference in New Issue
Block a user