merch-api/internal/user/service.go
2026-04-01 18:35:08 +03:00

65 lines
1.5 KiB
Go

package user
import (
"context"
"errors"
log "github.com/sirupsen/logrus"
"merch-api/internal/common"
"merch-api/pkg/utils"
)
const serviceLogHeader string = "service |"
type service struct {
repo Repository
utils utils.Utils
authDP common.AuthDataProvider
}
func newService(repo Repository, utils utils.Utils, adp common.AuthDataProvider) *service {
return &service{
repo: repo,
utils: utils,
authDP: adp,
}
}
func (s *service) GetUserId(ctx context.Context, userUuid string) (int64, error) {
if userUuid == "" {
return 0, errors.New("user uuid is empty")
}
return s.repo.getUserId(ctx, userUuid)
}
func (s *service) createUser(ctx context.Context, userUuid string) error {
now := s.utils.TimeNowUTC()
return s.repo.addUser(ctx, &userModel{
CreatedAt: now,
UpdatedAt: s.utils.NullTimeFromNow(now),
DeletedAt: s.utils.DeletedNullTime(),
Uuid: userUuid,
})
}
func (s *service) deleteUser(ctx context.Context, userUuid string) error {
return s.repo.deleteUser(ctx, userUuid, s.utils.NullTimeNowUTC())
}
func (s *service) getUser(ctx context.Context, userUuid string) (*MeDTO, error) {
if userUuid == "" {
return nil, errors.New("user uuid is empty")
}
return s.repo.getUser(ctx, userUuid)
}
func (s *service) getPersonalData(ctx context.Context, userUuid string) (*common.PersonalDTO, error) {
if userUuid == "" {
return nil, errors.New("user uuid is empty")
}
log.WithField("user_uuid", userUuid).Debugf("%v %v get personal data", pkgLogHeader, serviceLogHeader)
return s.authDP.GetPersonalData(ctx, userUuid)
}