package logic import ( friendentity "spark-server/internal/module/friend/entity" groupentity "spark-server/internal/module/group/entity" "spark-server/internal/module/meta/entity" uploadentity "spark-server/internal/module/upload/entity" userentity "spark-server/internal/module/user/entity" "spark-server/internal/pkg/errs" "spark-server/internal/pkg/i18n" "spark-server/internal/transport/tcp/protocol" ) func tcpCommand(lang i18n.Lang) []entity.Item { return []entity.Item{ item(lang, "tcp_command", "auth", int(protocol.CmdAuth)), item(lang, "tcp_command", "heartbeat", int(protocol.CmdHeartbeat)), item(lang, "tcp_command", "generate_msg_id", int(protocol.CmdGenerateMsgID)), item(lang, "tcp_command", "send_message", int(protocol.CmdSendMessage)), item(lang, "tcp_command", "send_ack", int(protocol.CmdSendAck)), item(lang, "tcp_command", "message", int(protocol.CmdMessage)), item(lang, "tcp_command", "push_ack", int(protocol.CmdPushAck)), item(lang, "tcp_command", "read", int(protocol.CmdReadMessage)), item(lang, "tcp_command", "recall", int(protocol.CmdRecallMessage)), item(lang, "tcp_command", "sync_inbox", int(protocol.CmdSyncInbox)), item(lang, "tcp_command", "sync_inbox_finish", int(protocol.CmdSyncInboxFinish)), item(lang, "tcp_command", "sync_messages", int(protocol.CmdSyncMessages)), item(lang, "tcp_command", "sync_messages_finish", int(protocol.CmdSyncMessagesFinish)), item(lang, "tcp_command", "kick", int(protocol.CmdKick)), item(lang, "tcp_command", "delete_message", int(protocol.CmdDeleteMessage)), } } func envelopeCode(lang i18n.Lang) []entity.Item { return []entity.Item{ code(lang, "ok", errs.OK), code(lang, "invalid_argument", errs.ErrInvalidArgument), code(lang, "frame_too_large", errs.ErrFrameTooLarge), code(lang, "invalid_frame", errs.ErrInvalidFrame), code(lang, "invalid_proxy_header", errs.ErrProxyHeader), code(lang, "media_oversized", errs.ErrMediaOversized), code(lang, "unauthorized", errs.ErrUnauthorized), code(lang, "not_authenticated", errs.ErrNotAuthenticated), code(lang, "verify_code_invalid", errs.ErrVerifyCodeInvalid), code(lang, "forbidden", errs.ErrForbidden), code(lang, "content_blocked", errs.ErrContentBlocked), code(lang, "send_muted", errs.ErrSendMuted), code(lang, "not_found", errs.ErrNotFound), code(lang, "media_expired", errs.ErrMediaExpired), code(lang, "duplicate", errs.ErrDuplicate), code(lang, "busy", errs.ErrBusy), code(lang, "rate_limited", errs.ErrRateLimited), code(lang, "outbound_dropped", errs.ErrOutboundDropped), code(lang, "connection_closed", errs.ErrClosed), code(lang, "internal", errs.ErrInner), code(lang, "operation_failed", errs.ErrOperatFail), code(lang, "clock_rewind", errs.ErrClockRewind), code(lang, "unavailable", errs.ErrAvailable), code(lang, "timeout", errs.ErrTimeout), } } func code(lang i18n.Lang, name string, err *errs.AppError) entity.Item { return entity.Item{Value: err.Code, Name: name, Label: i18n.ErrorMsg(lang, err.Code)} } func language(lang i18n.Lang) []entity.Item { return strSet(lang, "language", string(i18n.ZhCN), string(i18n.En), string(i18n.ZhTW)) } func uploadPurpose(lang i18n.Lang) []entity.Item { return strSet(lang, "upload_purpose", uploadentity.PurposeAvatar, uploadentity.PurposeGroupAvatar, uploadentity.PurposeChatImage, uploadentity.PurposeChatVoice, uploadentity.PurposeChatVideo, uploadentity.PurposeChatGIF, uploadentity.PurposeChatFile, uploadentity.PurposeMomentImage, uploadentity.PurposeMomentVideo, uploadentity.PurposeMomentCover, ) } func systemKind(lang i18n.Lang) []entity.Item { return strSet(lang, "system_kind", friendentity.SystemKindBecameFriends, userentity.SystemKindWelcome, groupentity.SystemKindCreated, groupentity.SystemKindInvite, groupentity.SystemKindLeave, groupentity.SystemKindKick, groupentity.SystemKindDissolve, groupentity.SystemKindTransfer, ) } func strSet(lang i18n.Lang, set string, values ...string) []entity.Item { out := make([]entity.Item, 0, len(values)) for _, v := range values { out = append(out, item(lang, set, v, v)) } return out }