package user import ( "git.0x7f.app/WOJ/woj-server/internal/e" "git.0x7f.app/WOJ/woj-server/internal/model" "github.com/jackc/pgtype" "go.uber.org/zap" "strings" ) type CreateData struct { UID pgtype.UUID NickName string } func (s *service) Create(data *CreateData) (*model.User, e.Status) { user := &model.User{ UID: data.UID, NickName: data.NickName, Role: model.RoleGeneral, IsEnabled: true, } err := s.db.Get().Create(user).Error if err != nil && strings.Contains(err.Error(), "duplicate key") { return nil, e.UserDuplicated } if err != nil { s.log.Warn("DatabaseError", zap.Error(err), zap.Any("user", user)) return nil, e.DatabaseError } return user, e.Success }