47 lines
1.7 KiB
Go
47 lines
1.7 KiB
Go
// Package logic builds GET /v1/meta/enums from entity consts and i18n labels.
|
|
package logic
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"spark-server/internal/module/meta/entity"
|
|
"spark-server/internal/pkg/i18n"
|
|
)
|
|
|
|
// Catalog returns every closed set, with labels in the request language.
|
|
func Catalog(lang i18n.Lang) *entity.Catalog {
|
|
return &entity.Catalog{
|
|
Gender: gender(lang),
|
|
UserStatus: userStatus(lang),
|
|
ConversationType: conversationType(lang),
|
|
MessageKind: messageKind(lang),
|
|
MessageType: messageType(lang),
|
|
MessageStatus: messageStatus(lang),
|
|
RelationKind: relationKind(lang),
|
|
FriendRequestStatus: friendRequestStatus(lang),
|
|
FriendSource: friendSource(lang),
|
|
ReportReason: reportReason(lang),
|
|
GroupStatus: groupStatus(lang),
|
|
GroupRole: groupRole(lang),
|
|
MailboxEventType: mailboxEventType(lang),
|
|
TCPCommand: tcpCommand(lang),
|
|
EnvelopeCode: envelopeCode(lang),
|
|
DeviceType: deviceType(lang),
|
|
Language: language(lang),
|
|
UploadPurpose: uploadPurpose(lang),
|
|
SystemKind: systemKind(lang),
|
|
MomentKind: momentKind(lang),
|
|
MomentVisibility: momentVisibility(lang),
|
|
MomentStatus: momentStatus(lang),
|
|
MomentNoticeKind: momentNoticeKind(lang),
|
|
MomentVisibleDays: momentVisibleDays(lang),
|
|
VerificationPurpose: verificationPurpose(lang),
|
|
PhoneCarrier: phoneCarrier(lang),
|
|
}
|
|
}
|
|
|
|
func item(lang i18n.Lang, set, name string, value any) entity.Item {
|
|
key := "enum." + set + "." + strings.NewReplacer(".", "_", "-", "_").Replace(name)
|
|
return entity.Item{Value: value, Name: name, Label: i18n.T(lang, key, nil)}
|
|
}
|