Files
Authentication/services/users.go
T
2026-01-06 09:11:28 +08:00

74 lines
1.4 KiB
Go

package services
import (
"authentication/db"
"log"
)
func GetUserID(email string) (string, error) {
log.Print(email)
query := `SELECT user_id FROM users WHERE email_address = ? AND is_deleted = 0 LIMIT 1;`
var id string
err := db.DB.QueryRow(query, email).Scan(&id)
if err != nil {
return "", err
}
return id, nil
}
func CheckEmailInDB(email string) (bool, error) {
var exists bool
query := `SELECT EXISTS (
SELECT 1 FROM users WHERE email_address = ? AND is_deleted = 0);`
err := db.DB.QueryRow(query, email).Scan(&exists)
if err != nil {
return false, err
}
return exists, nil
}
func GetUserIDFromEmail(email string) (string, error) {
log.Print(email)
query := `SELECT user_id
FROM (
SELECT user_id, 1 AS priority
FROM users
WHERE email_address = ?
AND is_deleted = 0
) t
ORDER BY priority ASC
LIMIT 1;
`
var id string
err := db.DB.QueryRow(query, email).Scan(&id)
if err != nil {
log.Println("Hello")
return "", err
}
return id, nil
}
func GetRoleIDFromEmail(email string) (string, error) {
log.Print(email)
query := `SELECT role_id
FROM (
SELECT r.id AS role_id, 1 AS priority
FROM roles r
JOIN users u ON u.role_id = r.id
WHERE u.email_address = ?
AND u.is_deleted = 0
) t
ORDER BY priority ASC
LIMIT 1;
`
var roleID string
err := db.DB.QueryRow(query, email).Scan(&roleID)
if err != nil {
return "", err
}
return roleID, nil
}