remove date filter in risk stats

pull/21891/head
ytqh 1 year ago
parent 32601f34b5
commit 90cb9aaf0d

@ -20,19 +20,6 @@ class RiskStats(Resource):
description: Get counts of users at different risk levels and their changes
security:
- ApiKeyAuth: []
parameters:
- name: start_date
in: query
type: string
format: date
required: true
description: Start date of the statistics period (YYYY-MM-DD)
- name: end_date
in: query
type: string
format: date
required: true
description: End date of the statistics period (YYYY-MM-DD)
responses:
200:
description: Risk statistics retrieved successfully
@ -59,23 +46,8 @@ class RiskStats(Resource):
description: Invalid date parameters
"""
try:
# Parse date parameters
start_date_str = request.args.get('start_date')
end_date_str = request.args.get('end_date')
if not start_date_str or not end_date_str:
raise BadRequest("start_date and end_date are required")
try:
end_date = datetime.strptime(end_date_str, '%Y-%m-%d')
start_date = datetime.strptime(start_date_str, '%Y-%m-%d')
except ValueError:
raise BadRequest("Invalid date format. Use YYYY-MM-DD")
# Get risk statistics from service
risk_stats = StatsService.get_risk_stats(
start_date=start_date,
end_date=end_date,
app_id=app_model.id,
organization_id=account.current_organization_id,
)

@ -8,9 +8,7 @@ from sqlalchemy import and_, distinct, func
class StatsService:
@staticmethod
def get_risk_stats(
start_date: datetime, end_date: datetime, app_id: Optional[str] = None, organization_id: Optional[str] = None
) -> Dict[str, Any]:
def get_risk_stats(app_id: Optional[str] = None, organization_id: Optional[str] = None) -> Dict[str, Any]:
"""
Get statistics about high risk users
@ -24,10 +22,8 @@ class StatsService:
Dictionary containing high risk user count and changes
"""
# Build query with filters
high_risk_query = db.session.query(EndUser).filter(
EndUser.health_status == 'critical', EndUser.updated_at >= start_date, EndUser.updated_at <= end_date
)
total_query = db.session.query(EndUser).filter(EndUser.updated_at >= start_date, EndUser.updated_at <= end_date)
high_risk_query = db.session.query(EndUser).filter(EndUser.health_status == 'critical')
total_query = db.session.query(EndUser)
# Apply app_id filter if provided
if app_id:
@ -43,7 +39,7 @@ class StatsService:
total_count = total_query.count()
# Get yesterday's count
yesterday = end_date - timedelta(days=1)
yesterday = datetime.now() - timedelta(days=1)
yesterday_query = db.session.query(EndUser).filter(
EndUser.health_status == 'critical', EndUser.updated_at <= yesterday
)
@ -59,7 +55,7 @@ class StatsService:
yesterday_high_risk_count = yesterday_query.count()
# Get last week's count
last_week = end_date - timedelta(days=7)
last_week = datetime.now() - timedelta(days=7)
last_week_query = db.session.query(EndUser).filter(
EndUser.health_status == 'critical', EndUser.updated_at <= last_week
)

Loading…
Cancel
Save