Skip to content

Instantly share code, notes, and snippets.

@trongdth
Created November 3, 2019 13:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save trongdth/d8e3696f210f41300908be86e1030887 to your computer and use it in GitHub Desktop.
Save trongdth/d8e3696f210f41300908be86e1030887 to your computer and use it in GitHub Desktop.
package daos
import (
"github.com/jinzhu/gorm"
"github.com/pkg/errors"
"github.com/trongdth/go_microservices/entry-store/models"
)
// User : struct
type User struct {
}
// NewUser :
func NewUser() *User {
return &User{}
}
// Create : tx, user
func (u *User) Create(tx *gorm.DB, user *models.User) error {
return errors.Wrap(tx.Create(user).Error, "tx.Create")
}
// Update : tx, user
func (u *User) Update(tx *gorm.DB, user *models.User) error {
return errors.Wrap(tx.Save(user).Error, "tx.Save")
}
// FindByEmail : email
func (u *User) FindByEmail(email string) (*models.User, error) {
var user models.User
if err := db.Where("email = ?", email).First(&user).Error; err != nil {
return nil, errors.Wrap(err, "db.Where.First")
}
return &user, nil
}
// FindByID : id
func (u *User) FindByID(id uint) (*models.User, error) {
var user models.User
if err := db.First(&user, id).Error; err != nil {
return nil, errors.Wrap(err, "db.Where.First")
}
return &user, nil
}
// DeleteUser : userID
func (u *User) DeleteUser(tx *gorm.DB, userID uint) error {
user := models.User{}
err := tx.Where("id = ?", userID).Find(&user).Error
if err != nil {
return err
}
err = tx.Delete(&user).Error
if err != nil {
return err
}
return nil
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment