pwndrop/storage/db_user.go
2020-04-15 10:22:22 +02:00

60 lines
992 B
Go

package storage
import (
"strings"
)
type DbUser struct {
ID int `json:"id" storm:"id,increment"`
Name string `json:"name"`
SearchName string `json:"search_name" storm:"unique"`
Password string `json:"password"`
}
func UserCreate(o *DbUser) (*DbUser, error) {
o.SearchName = strings.ToLower(o.Name)
err := db.Save(o)
if err != nil {
return nil, err
}
return o, nil
}
func UserList() ([]DbUser, error) {
var os []DbUser
err := db.All(&os)
if err != nil {
return nil, err
}
return os, nil
}
func UserGet(id int) (*DbUser, error) {
var o DbUser
err := db.One("ID", id, &o)
if err != nil {
return nil, err
}
return &o, nil
}
func UserGetByName(username string) (*DbUser, error) {
var o DbUser
err := db.One("SearchName", strings.ToLower(username), &o)
if err != nil {
return nil, err
}
return &o, nil
}
func UserDelete(id int) error {
o := &DbUser{
ID: id,
}
err := db.DeleteStruct(o)
if err != nil {
return err
}
return nil
}