This repository has been archived on 2025-03-30. You can view files and clone it, but cannot push or open issues or pull requests.
bactdb/datastore/users.go
2014-09-30 15:13:36 -08:00

34 lines
837 B
Go

package datastore
import "github.com/thermokarst/bactdb/models"
func init() {
DB.AddTableWithName(models.User{}, "users").SetKeys(false, "Id")
createSQL = append(createSQL,
`CREATE UNIQUE INDEX username_idx ON users (username);`,
)
}
type usersStore struct {
*Datastore
}
func (s *usersStore) Get(id int64) (*models.User, error) {
var users []*models.User
if err := s.dbh.Select(&users, `SELECT * FROM users WHERE id=$1;`, id); err != nil {
return nil, err
}
if len(users) == 0 {
return nil, models.ErrUserNotFound
}
return users[0], nil
}
func (s *usersStore) List(opt *models.UserListOptions) ([]*models.User, error) {
var users []*models.User
err := s.dbh.Select(&users, `SELECT * FROM users LIMIT $1 OFFSET $2;`, opt.PerPageOrDefault(), opt.Offset())
if err != nil {
return nil, err
}
return users, nil
}