for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
package user
import (
"github.com/memnix/memnix-rest/domain"
"github.com/rs/zerolog/log"
"gorm.io/gorm"
)
type SqlRepository struct {
DBConn *gorm.DB
}
func NewRepository(dbConn *gorm.DB) IRepository {
return &SqlRepository{DBConn: dbConn}
// GetName returns the name of the user.
func (r *SqlRepository) GetName(id uint) string {
var user domain.User
r.DBConn.First(&user, id)
log.Info().Msgf("user: %v", user)
return user.Username
// GetByID returns the user with the given id.
func (r *SqlRepository) GetByID(id uint) (domain.User, error) {
err := r.DBConn.First(&user, id).Error
return user, err
// GetByEmail returns the user with the given email.
func (r *SqlRepository) GetByEmail(email string) (domain.User, error) {
err := r.DBConn.Where("email = ?", email).First(&user).Error
// Create creates a new user.
func (r *SqlRepository) Create(user *domain.User) error {
return r.DBConn.Create(&user).Error