Files
Authentication/services/users.go
T
2025-11-26 11:31:09 +08:00

67 lines
1.5 KiB
Go

package services
import (
"authentication/db"
"log"
)
func GetUser(email string) (string, *string, *string, string, error) {
log.Print(email)
query := `SELECT user_id, first_name, last_name, email_address FROM users WHERE email_address = ? AND is_deleted = 0 LIMIT 1;`
var id string
var firstName *string
var lastName *string
var emailAddress string
err := db.DB.QueryRow(query, email).Scan(&id, &firstName, &lastName, &emailAddress)
if err != nil {
return "", nil, nil, "", err
}
return id, firstName, lastName, emailAddress, nil
}
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
}