mirror of
https://codeberg.org/shroff/phylum.git
synced 2026-01-03 18:20:53 -06:00
44 lines
914 B
Go
44 lines
914 B
Go
package user
|
|
|
|
import (
|
|
"net/http"
|
|
|
|
"github.com/jackc/pgx/v5"
|
|
"github.com/shroff/phylum/server/internal/core/errors"
|
|
)
|
|
|
|
var ErrNotFound = errors.NewError(http.StatusNotFound, "user_not_found", "no such user")
|
|
|
|
func (m manager) AllUsers() ([]User, error) {
|
|
results, err := m.db.AllUsers(m.ctx)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
users := make([]User, len(results))
|
|
for i, r := range results {
|
|
users[i] = User{
|
|
Username: r.Username,
|
|
DisplayName: r.DisplayName,
|
|
Root: r.Root,
|
|
Home: r.Home,
|
|
}
|
|
}
|
|
return users, nil
|
|
}
|
|
|
|
func (m manager) UserByEmail(email string) (User, error) {
|
|
result, err := m.db.UserByUsername(m.ctx, email)
|
|
if err != nil {
|
|
if errors.Is(err, pgx.ErrNoRows) {
|
|
err = ErrNotFound
|
|
}
|
|
return User{}, err
|
|
}
|
|
return User{
|
|
Username: result.Username,
|
|
DisplayName: result.DisplayName,
|
|
Root: result.Root,
|
|
Home: result.Home,
|
|
}, nil
|
|
}
|