import jwt
from flask import request, current_app, jsonify

from events.sse import send_event_to_user


def sanitize_email(email):
    return email.replace('@', '_at_').replace('.', '_dot_')

def get_current_user_id():
    token = request.cookies.get('token')
    if not token:
        return None
    try:
        payload = jwt.decode(token, current_app.config['SECRET_KEY'], algorithms=['HS256'])
        email = payload.get('email')
        if not email:
            return None
        return sanitize_email(email)
    except jwt.InvalidTokenError:
        return None

def send_event_for_current_user(event):
    user_id = get_current_user_id()
    if not user_id:
        return jsonify({'error': 'Unauthorized'}), 401
    send_event_to_user(user_id, event)
    return None