add user crud interface in impl
This commit is contained in:
50
internal/user/gorm_store.go
Normal file
50
internal/user/gorm_store.go
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user