haixunMaster/haixun-backend/internal/logic/member/mapper.go

58 lines
1.8 KiB
Go

package member
import (
"context"
"haixun-backend/internal/library/authctx"
app "haixun-backend/internal/library/errors"
"haixun-backend/internal/library/errors/code"
"haixun-backend/internal/model/member/domain/entity"
placementusecase "haixun-backend/internal/model/placement/usecase"
"haixun-backend/internal/types"
)
func actorFrom(ctx context.Context) (tenantID, uid string, err error) {
actor, ok := authctx.ActorFromContext(ctx)
if !ok {
return "", "", app.For(code.Auth).AuthUnauthorized("missing actor")
}
return actor.TenantID, actor.UID, nil
}
func toPlacementSettingsData(settings *placementusecase.Settings) types.MemberPlacementSettingsData {
if settings == nil {
return types.MemberPlacementSettingsData{}
}
return types.MemberPlacementSettingsData{
BraveAPIKey: settings.BraveAPIKey,
BraveAPIKeyConfigured: settings.BraveAPIKeyConfigured,
BraveCountry: settings.BraveCountry,
BraveSearchLang: settings.BraveSearchLang,
}
}
func toMemberMeData(member *entity.Member) *types.MemberMeData {
if member == nil {
return nil
}
return &types.MemberMeData{
TenantID: member.TenantID,
UID: member.UID,
Email: member.Email,
DisplayName: member.DisplayName,
Avatar: member.Avatar,
Phone: member.Phone,
Language: member.Language,
Currency: member.Currency,
Status: string(member.Status),
Origin: string(member.Origin),
Roles: member.Roles,
BusinessEmail: member.BusinessEmail,
BusinessEmailVerified: member.BusinessEmailVerified,
BusinessPhone: member.BusinessPhone,
BusinessPhoneVerified: member.BusinessPhoneVerified,
CreateAt: member.CreateAt,
UpdateAt: member.UpdateAt,
}
}