package service

import (
	"errors"
	"strings"

	"github.com/gin-gonic/gin"
)

func RequestUserFromContext(c *gin.Context) (string, string, error) {
	if c == nil {
		return "", "", errors.New("unauthorized")
	}

	email := normalizeEmail(c.GetString("request_user_email"))
	if email == "" {
		return "", "", errors.New("unauthorized")
	}

	name := strings.TrimSpace(c.GetString("request_user_name"))
	if name == "" {
		name = strings.Split(email, "@")[0]
	}

	return email, name, nil
}

func RequestUserEmailFromContext(c *gin.Context) (string, error) {
	email, _, err := RequestUserFromContext(c)
	if err != nil {
		return "", err
	}
	return email, nil
}
