mirror of
https://github.com/krau/SaveAny-Bot.git
synced 2026-05-10 17:52:44 +08:00
42 lines
995 B
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
|
|
}
|