add user crud interface in impl

This commit is contained in:
2025-12-18 10:49:56 +02:00
parent 603f007c63
commit 53761db1e0
5 changed files with 190 additions and 0 deletions

View File

@@ -0,0 +1,50 @@
package user
import (
"fmt"
"gorm.io/gorm"
)
type GormUserStore struct {
db *gorm.DB
}
func NewGormUserStore(db *gorm.DB) (*GormUserStore, error) {
if db == nil {
return nil, fmt.Errorf("db is nil")
}
return &GormUserStore{
db: db,
}, nil
}
func (s *GormUserStore) Create(user *User) error {
return s.db.Create(user).Error
}
func (s *GormUserStore) GetByID(id int64) (*User, error) {
var user User
err := s.db.First(&user, id).Error
if err != nil {
return nil, err
}
return &user, nil
}
func (s *GormUserStore) GetByUsername(username string) (*User, error) {
var user User
err := s.db.Where("username = ?", username).First(&user).Error
if err != nil {
return nil, err
}
return &user, nil
}
func (s *GormUserStore) Update(user *User) error {
return s.db.Save(user).Error
}
func (s *GormUserStore) Delete(id int64) error {
return s.db.Delete(&User{}, id).Error
}