owner_get.go: clean up SQL
This commit is contained in:
parent
d6e7507b2c
commit
f6d6a1f77f
@ -2,20 +2,38 @@ package main
|
||||
|
||||
import ()
|
||||
|
||||
var ownersRowColumns string = `
|
||||
owners.ownerHex,
|
||||
owners.email,
|
||||
owners.name,
|
||||
owners.confirmedEmail,
|
||||
owners.joinDate
|
||||
`
|
||||
|
||||
func ownersRowScan(s sqlScanner, o *owner) error {
|
||||
return s.Scan(
|
||||
&o.OwnerHex,
|
||||
&o.Email,
|
||||
&o.Name,
|
||||
&o.ConfirmedEmail,
|
||||
&o.JoinDate,
|
||||
)
|
||||
}
|
||||
|
||||
func ownerGetByEmail(email string) (owner, error) {
|
||||
if email == "" {
|
||||
return owner{}, errorMissingField
|
||||
}
|
||||
|
||||
statement := `
|
||||
SELECT ownerHex, email, name, confirmedEmail, joinDate
|
||||
SELECT ` + ownersRowColumns + `
|
||||
FROM owners
|
||||
WHERE email=$1;
|
||||
`
|
||||
row := db.QueryRow(statement, email)
|
||||
|
||||
var o owner
|
||||
if err := row.Scan(&o.OwnerHex, &o.Email, &o.Name, &o.ConfirmedEmail, &o.JoinDate); err != nil {
|
||||
if err := ownersRowScan(row, &o); err != nil {
|
||||
// TODO: Make sure this is actually no such email.
|
||||
return owner{}, errorNoSuchEmail
|
||||
}
|
||||
@ -29,17 +47,17 @@ func ownerGetByOwnerToken(ownerToken string) (owner, error) {
|
||||
}
|
||||
|
||||
statement := `
|
||||
SELECT ownerHex, email, name, confirmedEmail, joinDate
|
||||
SELECT ` + ownersRowColumns + `
|
||||
FROM owners
|
||||
WHERE ownerHex IN (
|
||||
SELECT ownerHex FROM ownerSessions
|
||||
WHERE ownerToken = $1
|
||||
WHERE owners.ownerHex IN (
|
||||
SELECT ownerSessions.ownerHex FROM ownerSessions
|
||||
WHERE ownerSessions.ownerToken = $1
|
||||
);
|
||||
`
|
||||
row := db.QueryRow(statement, ownerToken)
|
||||
|
||||
var o owner
|
||||
if err := row.Scan(&o.OwnerHex, &o.Email, &o.Name, &o.ConfirmedEmail, &o.JoinDate); err != nil {
|
||||
if err := ownersRowScan(row, &o); err != nil {
|
||||
logger.Errorf("cannot scan owner: %v\n", err)
|
||||
return owner{}, errorInternal
|
||||
}
|
||||
@ -53,14 +71,14 @@ func ownerGetByOwnerHex(ownerHex string) (owner, error) {
|
||||
}
|
||||
|
||||
statement := `
|
||||
SELECT ownerHex, email, name, confirmedEmail, joinDate
|
||||
SELECT ` + ownersRowColumns + `
|
||||
FROM owners
|
||||
WHERE ownerHex = $1;
|
||||
`
|
||||
row := db.QueryRow(statement, ownerHex)
|
||||
|
||||
var o owner
|
||||
if err := row.Scan(&o.OwnerHex, &o.Email, &o.Name, &o.ConfirmedEmail, &o.JoinDate); err != nil {
|
||||
if err := ownersRowScan(row, &o); err != nil {
|
||||
logger.Errorf("cannot scan owner: %v\n", err)
|
||||
return owner{}, errorInternal
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user