cpularp-manager-api/src/lib/database/commands/commands.go

100 lines
2.4 KiB
Go
Raw Normal View History

2025-04-24 13:58:05 -05:00
package databasecommands
2025-04-21 23:05:50 -05:00
import (
"errors"
2025-04-21 23:05:50 -05:00
"log"
2025-04-24 13:58:05 -05:00
databasemodels "example.com/database/models"
2025-04-21 23:05:50 -05:00
"gorm.io/driver/sqlite"
"gorm.io/gorm"
)
func InitializeDatabase() *gorm.DB {
2025-04-24 13:58:05 -05:00
db, err := gorm.Open(sqlite.Open("../db/main.db"), &gorm.Config{})
2025-04-21 23:05:50 -05:00
if err != nil {
log.Fatal("Failed to connect to database.")
}
2025-04-24 13:58:05 -05:00
db.AutoMigrate(&databasemodels.User{})
db.AutoMigrate(&databasemodels.Group{})
2025-04-21 23:05:50 -05:00
return db
}
func GetDatabaseUserToken(db *gorm.DB, id string) string {
2025-04-24 13:58:05 -05:00
var dbUser databasemodels.User
result := db.Where("id = ?", id).Select("login_token").Take(&dbUser)
if errors.Is(result.Error, gorm.ErrRecordNotFound) {
return ""
} else {
return dbUser.LoginToken
}
}
func GetDatabaseUserExists(db *gorm.DB, id string) bool {
2025-04-24 13:58:05 -05:00
var queryUser databasemodels.User
result := db.Where("id = ?", id).Take(&queryUser)
if errors.Is(result.Error, gorm.ErrRecordNotFound) {
return false
} else {
return true
}
}
func GetDatabaseUserLoggedIn(db *gorm.DB, oauthTokenJSON string) bool {
2025-04-24 13:58:05 -05:00
var queryUser databasemodels.User
result := db.Where("login_token = ?", oauthTokenJSON).Take(&queryUser)
2025-04-22 19:04:17 -05:00
if errors.Is(result.Error, gorm.ErrRecordNotFound) {
return false
} else {
log.Println(queryUser)
2025-04-22 19:04:17 -05:00
return queryUser.LoggedIn
}
}
2025-04-24 13:58:05 -05:00
func UpdateDatabaseUser(db *gorm.DB, user databasemodels.User) error {
result := db.Save(&user)
if result.Error != nil {
return result.Error
}
return nil
}
2025-04-24 13:58:05 -05:00
func CreateDatabaseUser(db *gorm.DB, user databasemodels.User) error {
result := db.Create(&user)
if result.Error != nil {
return result.Error
}
return nil
}
2025-04-22 19:04:17 -05:00
func LogoutDatabaseUser(db *gorm.DB, oauthToken string) {
2025-04-24 13:58:05 -05:00
db.Model(&databasemodels.User{}).Where("login_token = ?", oauthToken).Update("logged_in", false)
}
func CreateDatabaseGroup(db *gorm.DB, group databasemodels.Group) error {
result := db.Create(&group)
log.Println(group)
if result.Error != nil {
return result.Error
}
return nil
}
func GetDatabaseGroup(db *gorm.DB, inputGroup string) databasemodels.Group {
var outputGroup databasemodels.Group
result := db.Model(&databasemodels.Group{}).Where("name = ?", inputGroup).Take(&outputGroup)
if result.Error != nil {
return databasemodels.Group{}
}
return outputGroup
}
func GetDatabaseGroups(db *gorm.DB) []databasemodels.Group {
var outputGroup []databasemodels.Group
result := db.Find(&outputGroup)
if result.Error != nil {
return []databasemodels.Group{}
}
return outputGroup
2025-04-22 19:04:17 -05:00
}