package service import ( "github.com/google/uuid" "github.com/pkg/errors" "gorm.io/gorm" "net/http" "sghgogs.com/micro/common/errorcode" pb "sghgogs.com/micro/shopping-service/proto" ) func (svc *Service) CreateUserGroup(data *pb.CreateUserGroupRequest) error { uid := uuid.New() if len(data.Code) == 0 { data.Code = uid.String() } if err := svc.Repository.CreateUserGroup(data); err != nil { return errorcode.New(svc.Namespace, err.Error(), http.StatusBadRequest) } return nil } func (svc *Service) GetUserGroup(query *pb.GetUserGroupRequest) (pb.UserGroup, error) { group, err := svc.Repository.GetUserGroup(query) if err != nil { if errors.Is(err, gorm.ErrRecordNotFound) { return pb.UserGroup{}, errorcode.New(svc.Namespace, "Invalid group code", 500) } else { return pb.UserGroup{}, errorcode.New(svc.Namespace, err.Error(), 500) } } return pb.UserGroup{ Id: group.ID, Name: group.Name, Code: group.Code, }, err }