Files
SaveAny-Bot/dao/user.go

42 lines
995 B
Go

package dao
import (
"github.com/krau/SaveAny-Bot/types"
)
func CreateUser(chatID int64) error {
if _, err := GetUserByChatID(chatID); err == nil {
return nil
}
return db.Create(&types.User{ChatID: chatID}).Error
}
func GetAllUsers() ([]types.User, error) {
var users []types.User
err := db.Find(&users).Error
return users, err
}
// GetUserByUserID gets a user by their telegram user ID
//
// Return with active storages
func GetUserByChatID(chatID int64) (*types.User, error) {
var user types.User
err := db.Preload("Storages", "active = ?", true).Where("chat_id = ?", chatID).First(&user).Error
return &user, err
}
func GetUserWithAllStoragesByChatID(chatID int64) (*types.User, error) {
var user types.User
err := db.Preload("Storages").Where("chat_id = ?", chatID).First(&user).Error
return &user, err
}
func UpdateUser(user *types.User) error {
return db.Save(user).Error
}
func DeleteUser(user *types.User) error {
return db.Select("Storages").Delete(user).Error
}