backend/pkg/member/usecase/account.go

58 lines
1.4 KiB
Go
Raw Normal View History

2025-10-01 16:30:27 +00:00
package usecase
import (
2025-11-04 09:47:36 +00:00
errs "backend/pkg/library/errors"
2025-10-01 16:30:27 +00:00
"backend/pkg/member/domain/config"
"backend/pkg/member/domain/repository"
"backend/pkg/member/domain/usecase"
2025-11-04 09:47:36 +00:00
repo "backend/pkg/member/repository"
2025-10-22 13:40:31 +00:00
"context"
2025-11-04 09:47:36 +00:00
"errors"
2025-10-01 16:30:27 +00:00
)
type MemberUseCaseParam struct {
Account repository.AccountRepository
User repository.UserRepository
AccountUID repository.AccountUIDRepository
VerifyCodeModel repository.VerifyCodeRepository
GenerateUID repository.AutoIDRepository
Config config.Config
2025-11-04 09:47:36 +00:00
Logger errs.Logger
2025-10-01 16:30:27 +00:00
}
type MemberUseCase struct {
MemberUseCaseParam
}
func MustMemberUseCase(param MemberUseCaseParam) usecase.AccountUseCase {
return &MemberUseCase{
param,
}
}
2025-10-22 13:40:31 +00:00
func (use *MemberUseCase) FindLoginIDByUID(ctx context.Context, uid string) (usecase.BindingUser, error) {
data, err := use.AccountUID.FindOneByUID(ctx, uid)
if err != nil {
2025-11-04 09:47:36 +00:00
if errors.Is(err, repo.ErrNotFound) {
e := errs.ResNotFoundError("failed to find user by uid: " + uid)
return usecase.BindingUser{}, e
}
e := errs.DBErrorErrorL(use.Logger,
[]errs.LogField{
{Key: "uid", Val: uid},
{Key: "func", Val: "AccountUID.FindOneByUID"},
{Key: "err", Val: err.Error()},
},
"failed to use database")
return usecase.BindingUser{}, e
2025-10-22 13:40:31 +00:00
}
return usecase.BindingUser{
UID: data.UID,
LoginID: data.LoginID,
}, nil
}