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

63 lines
2.1 KiB
Go
Raw Normal View History

2026-06-23 09:54:27 +00:00
package member
import (
2026-06-24 10:02:42 +00:00
"context"
"haixun-backend/internal/library/authctx"
app "haixun-backend/internal/library/errors"
"haixun-backend/internal/library/errors/code"
2026-06-23 09:54:27 +00:00
"haixun-backend/internal/model/member/domain/entity"
2026-06-24 10:02:42 +00:00
placementusecase "haixun-backend/internal/model/placement/usecase"
2026-06-23 09:54:27 +00:00
"haixun-backend/internal/types"
)
2026-06-24 10:02:42 +00:00
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{
2026-06-25 08:20:03 +00:00
WebSearchProvider: settings.WebSearchProvider,
2026-06-24 10:02:42 +00:00
BraveAPIKey: settings.BraveAPIKey,
BraveAPIKeyConfigured: settings.BraveAPIKeyConfigured,
2026-06-25 08:20:03 +00:00
ExaAPIKey: settings.ExaAPIKey,
ExaAPIKeyConfigured: settings.ExaAPIKeyConfigured,
2026-06-24 10:02:42 +00:00
BraveCountry: settings.BraveCountry,
BraveSearchLang: settings.BraveSearchLang,
2026-06-25 08:20:03 +00:00
ExaUserLocation: settings.ExaUserLocation,
2026-06-24 16:48:56 +00:00
ExpandStrategy: settings.ExpandStrategy,
2026-06-24 10:02:42 +00:00
}
}
2026-06-23 09:54:27 +00:00
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,
}
}