Add user db search

- Search user by email

Signed-off-by: Asai Neko <sugar@sne.moe>
This commit is contained in:
2025-12-19 18:10:04 +08:00
parent dc128c0392
commit 0fb5c8b758
5 changed files with 65 additions and 0 deletions

39
data/data.go Normal file
View File

@@ -0,0 +1,39 @@
package data
import (
"nixcn-cms/config"
"nixcn-cms/data/drivers"
log "github.com/sirupsen/logrus"
)
var Database *drivers.DBClient
func Init() {
// Init database
dbType := config.Get("database.type").(string)
exDSN := drivers.ExternalDSN{
Host: config.Get("database.host").(string),
Name: config.Get("database.name").(string),
Username: config.Get("database.username").(string),
Password: config.Get("database.password").(string),
}
if dbType != "postgres" {
log.Fatal("[Database] Only support postgras db!")
}
// Conect to db
db, err := drivers.Postgres(exDSN)
if err != nil {
log.Fatal("[Database] Error connecting to db!")
}
// Auto migrate
err = db.DB.AutoMigrate(&User{})
if err != nil {
log.Error("[Database] Error migrating database: ", err)
}
Database = db
}

21
data/user.go Normal file
View File

@@ -0,0 +1,21 @@
package data
import "github.com/google/uuid"
type User struct {
Id uint `json:"id" gorm:"primarykey;autoincrement"`
UUID uuid.UUID `json:"uuid" gorm:"type:uuid;uniqueindex;not null"`
UserId string `json:"user_id" gorm:"size:8;uniqueindex;not null"`
Email string `json:"email" gorm:"uniqueindex;not null"`
Nickname string `json:"nickname" gorm:"not null"`
Type string `json:"type" gorm:"not null"`
Subtitle string `json:"subtitle" gorm:"not null"`
Avatar string `json:"avatar" gorm:"not null"`
}
func (self *User) GetByEmail(email string) error {
if err := Database.Where("email = ?", email).First(&self).Error; err != nil {
return err
}
return nil
}