48 lines
1.1 KiB
Go
48 lines
1.1 KiB
Go
|
|
package member
|
||
|
|
|
||
|
|
import (
|
||
|
|
"haixun-backend/internal/library/storage"
|
||
|
|
"haixun-backend/internal/model/member/domain/entity"
|
||
|
|
"haixun-backend/internal/types"
|
||
|
|
)
|
||
|
|
|
||
|
|
func normalizeAvatarRef(bucket, ref string) string {
|
||
|
|
return storage.NormalizeObjectKey(bucket, ref)
|
||
|
|
}
|
||
|
|
|
||
|
|
func optionalNormalizedAvatar(bucket, value string) *string {
|
||
|
|
if value == "" {
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
normalized := normalizeAvatarRef(bucket, value)
|
||
|
|
return &normalized
|
||
|
|
}
|
||
|
|
|
||
|
|
func optionalNormalizedAvatarPtr(bucket string, value *string) *string {
|
||
|
|
if value == nil {
|
||
|
|
return nil
|
||
|
|
}
|
||
|
|
return optionalNormalizedAvatar(bucket, *value)
|
||
|
|
}
|
||
|
|
|
||
|
|
func toMemberMeDataWithAvatar(member *entity.Member, bucket string) *types.MemberMeData {
|
||
|
|
data := toMemberMeData(member)
|
||
|
|
if data == nil || bucket == "" {
|
||
|
|
return data
|
||
|
|
}
|
||
|
|
data.Avatar = normalizeAvatarRef(bucket, data.Avatar)
|
||
|
|
return data
|
||
|
|
}
|
||
|
|
|
||
|
|
func toMemberMeDataListWithAvatar(members []*entity.Member, bucket string) []types.MemberMeData {
|
||
|
|
list := make([]types.MemberMeData, 0, len(members))
|
||
|
|
for _, item := range members {
|
||
|
|
data := toMemberMeDataWithAvatar(item, bucket)
|
||
|
|
if data == nil {
|
||
|
|
continue
|
||
|
|
}
|
||
|
|
list = append(list, *data)
|
||
|
|
}
|
||
|
|
return list
|
||
|
|
}
|