usecase

package
v0.0.0-...-785b97d Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 15, 2026 License: Apache-2.0 Imports: 53 Imported by: 0

Documentation

Index

Constants

View Source
const (
	AttachmentTypeUnknown  = 0
	AttachmentTypeImage    = 1
	AttachmentTypeDocument = 2
	AttachmentTypeVideo    = 3
	AttachmentTypeAudio    = 4
)

Variables

View Source
var ErrUsernameTaken = domain.ErrUsernameTaken

Functions

This section is empty.

Types

type AssembleFilePart

type AssembleFilePart = domain.AssembleFilePart

type AuthUseCase

type AuthUseCase struct {
	Conf                *config.Config
	Locale              locale.ILocale
	Email               *email.Email
	SmsCache            *redisRepo.SmsCacheRepository
	GroupChatMemberRepo *postgresRepo.GroupChatMemberRepository
	UserRepo            *postgresRepo.UserRepository
	UserSessionRepo     *postgresRepo.UserSessionRepository
	AuthCodeLogRepo     *postgresRepo.AuthCodeLogRepository
	JwtTokenCacheRepo   *redisRepo.JwtTokenCacheRepository
	JWTService          *service.JWTService
}

func NewAuthUseCase

func NewAuthUseCase(
	conf *config.Config,
	locale locale.ILocale,
	email *email.Email,
	smsCache *redisRepo.SmsCacheRepository,
	groupChatMember *postgresRepo.GroupChatMemberRepository,
	userRepo *postgresRepo.UserRepository,
	userSessionRepo *postgresRepo.UserSessionRepository,
	authCodeLogRepo *postgresRepo.AuthCodeLogRepository,
	jwtTokenCacheRepository *redisRepo.JwtTokenCacheRepository,
	jwtService *service.JWTService,
) *AuthUseCase

func (*AuthUseCase) BlacklistToken

func (a *AuthUseCase) BlacklistToken(ctx context.Context, token string, ttl time.Duration) error

func (*AuthUseCase) CodeTemplate

func (a *AuthUseCase) CodeTemplate(data map[string]string) (string, error)

func (*AuthUseCase) Delete

func (a *AuthUseCase) Delete(ctx context.Context, channel string, token string) error

func (*AuthUseCase) GetDevices

func (a *AuthUseCase) GetDevices(ctx context.Context, userId int) ([]*domain.TokenDevice, error)

func (*AuthUseCase) GetSessionByToken

func (a *AuthUseCase) GetSessionByToken(ctx context.Context, token string) (*postgresModel.UserSession, error)

func (*AuthUseCase) Login

func (a *AuthUseCase) Login(ctx context.Context, guard string, _email string) (*string, error)

func (*AuthUseCase) Logout

func (a *AuthUseCase) Logout(ctx context.Context, userId int) error

func (*AuthUseCase) LogoutByAccessToken

func (a *AuthUseCase) LogoutByAccessToken(ctx context.Context, token string) error

func (*AuthUseCase) RefreshToken

func (a *AuthUseCase) RefreshToken(ctx context.Context, refreshToken string) (string, string, error)

func (*AuthUseCase) Register

func (a *AuthUseCase) Register(ctx context.Context, email string) (*postgresModel.User, error)

func (*AuthUseCase) RequestEmailChange

func (a *AuthUseCase) RequestEmailChange(ctx context.Context, userID int, newEmail string) (string, error)

func (*AuthUseCase) RequestEmailLogin

func (a *AuthUseCase) RequestEmailLogin(ctx context.Context, email string) (string, int64, error)

func (*AuthUseCase) RevokeDevice

func (a *AuthUseCase) RevokeDevice(ctx context.Context, userId int, deviceId int) error

func (*AuthUseCase) Send

func (a *AuthUseCase) Send(ctx context.Context, channel string, _email string, token string) (*string, error)

func (*AuthUseCase) ValidateToken

func (a *AuthUseCase) ValidateToken(ctx context.Context, token string) (*domain.User, error)

func (*AuthUseCase) Verify

func (a *AuthUseCase) Verify(ctx context.Context, channel string, token string, code string) bool

func (*AuthUseCase) VerifyEmailChange

func (a *AuthUseCase) VerifyEmailChange(ctx context.Context, token, code string) error

func (*AuthUseCase) VerifyEmailLogin

func (a *AuthUseCase) VerifyEmailLogin(ctx context.Context, verificationToken, code string) (*domain.User, string, string, error)

type BotCreateOpt

type BotCreateOpt = domain.BotCreateOpt

type BotUseCase

type BotUseCase struct {
	Conf     *config.Config
	Locale   locale.ILocale
	Source   *infrastructure.Source
	BotRepo  *postgresRepo.BotRepository
	UserRepo *postgresRepo.UserRepository
	Minio    minio.IMinio
	// contains filtered or unexported fields
}

func NewBotUseCase

func NewBotUseCase(
	conf *config.Config,
	locale locale.ILocale,
	source *infrastructure.Source,
	botRepo *postgresRepo.BotRepository,
	userRepo *postgresRepo.UserRepository,
	minio minio.IMinio,
) *BotUseCase

func (*BotUseCase) Chats

func (b *BotUseCase) Chats(ctx context.Context, botId int) ([]*entity.SearchChat, error)

func (*BotUseCase) Create

func (b *BotUseCase) Create(ctx context.Context, opt *BotCreateOpt) (*string, error)

func (*BotUseCase) CreateBot

func (b *BotUseCase) CreateBot(ctx context.Context, ownerId int, name, username string) (token string, err error)

func (*BotUseCase) DeleteBot

func (b *BotUseCase) DeleteBot(ctx context.Context, ownerId int, botUsername string) error

func (*BotUseCase) FileDocumentUpload

func (b *BotUseCase) FileDocumentUpload(ctx context.Context, file *multipart.FileHeader) (*string, error)

func (*BotUseCase) FileUpload

func (b *BotUseCase) FileUpload(ctx context.Context, file *multipart.FileHeader) (*string, error)

func (*BotUseCase) GetBotByToken

func (b *BotUseCase) GetBotByToken(ctx context.Context, token string) (*postgresModel.Bot, error)

func (*BotUseCase) GetByBotUserId

func (b *BotUseCase) GetByBotUserId(ctx context.Context, botUserId int) (*domain.UserBot, error)

func (*BotUseCase) GetByToken

func (b *BotUseCase) GetByToken(ctx context.Context, token string) (*domain.UserBot, error)

func (*BotUseCase) GetLoginBot

func (b *BotUseCase) GetLoginBot(ctx context.Context) (*postgresModel.Bot, error)

func (*BotUseCase) List

func (b *BotUseCase) List(ctx context.Context, uid int) ([]*postgresModel.Bot, error)

func (*BotUseCase) ListBots

func (b *BotUseCase) ListBots(ctx context.Context, ownerId int) ([]*domain.UserBot, error)

func (*BotUseCase) RegenerateToken

func (b *BotUseCase) RegenerateToken(ctx context.Context, ownerId int, botUsername string) (newToken string, err error)

type ChatDisturbOpt

type ChatDisturbOpt = domain.ChatDisturbOpt

type ChatFolderUseCase

type ChatFolderUseCase struct {
	Locale         locale.ILocale
	Source         *infrastructure.Source
	ChatRepo       *postgresRepo.ChatRepository
	ChatFolderRepo *postgresRepo.ChatFolderRepository
}

func NewChatFolderUseCase

func NewChatFolderUseCase(
	locale locale.ILocale,
	source *infrastructure.Source,
	chatRepo *postgresRepo.ChatRepository,
	chatFolderRepo *postgresRepo.ChatFolderRepository,
) *ChatFolderUseCase

func (*ChatFolderUseCase) Delete

func (c *ChatFolderUseCase) Delete(ctx context.Context, id int, uid int) error

func (*ChatFolderUseCase) ListFolders

func (c *ChatFolderUseCase) ListFolders(ctx context.Context, uid int) ([]*postgresModel.ChatFolder, error)

func (*ChatFolderUseCase) SaveFolderLayout

func (c *ChatFolderUseCase) SaveFolderLayout(ctx context.Context, uid int, inserts, updates []*postgresModel.ChatFolder, keepExistingIds map[int]struct{}) error

func (*ChatFolderUseCase) SetPeerFolder

func (c *ChatFolderUseCase) SetPeerFolder(ctx context.Context, uid int, peerType, peerId, folderId int) error

type ChatTopOpt

type ChatTopOpt = domain.ChatTopOpt

type ChatUseCase

type ChatUseCase struct {
	Locale                 locale.ILocale
	Source                 *infrastructure.Source
	ChatRepo               *postgresRepo.ChatRepository
	GroupChatMemberRepo    *postgresRepo.GroupChatMemberRepository
	RedisLockRepo          *infraRedis.RedisLockCacheRepository
	ClientCacheRepo        *infraRedis.ClientCacheRepository
	MessageCacheRepo       *infraRedis.MessageCacheRepository
	UnreadCacheRepo        *infraRedis.UnreadCacheRepository
	MessageExtraRepo       *postgresRepo.MessageExtraRepository
	ChatGroupRepo          domain.ChatGroupRepository
	ChatMessageRepo        domain.ChatMessageRepository
	MessageReadRepo        domain.MessageReadRepository
	MessageDeletedRepo     domain.MessageDeletedRepository
	UserRepo               domain.UserRepository
	Redis                  *redis.Client
	Nats                   nats.INatsClient
	ServerCacheRepo        *infraRedis.ServerCacheRepository
	StorageUseCase         *StorageUseCase
	FileRepo               domain.FileRepository
	MessageAttachmentRepo  domain.MessageAttachmentRepository
	CallbackQueryRepo      domain.BotCallbackQueryRepository
	PollRepo               domain.PollRepository
	MessageReactionRepo    domain.MessageReactionRepository
	GroupTopicRepo         *postgresRepo.GroupChatTopicRepository
	ConversationPinnedRepo *postgresRepo.ConversationPinnedMessageRepository
	// contains filtered or unexported fields
}

func NewChatUseCase

func NewChatUseCase(
	locale locale.ILocale,
	source *infrastructure.Source,
	chatRepo *postgresRepo.ChatRepository,
	groupChatMemberRepo *postgresRepo.GroupChatMemberRepository,
	redisLockRepo *infraRedis.RedisLockCacheRepository,
	clientCacheRepo *infraRedis.ClientCacheRepository,
	messageCacheRepo *infraRedis.MessageCacheRepository,
	unreadCacheRepository *infraRedis.UnreadCacheRepository,
	messageExtraRepo *postgresRepo.MessageExtraRepository,
	chatGroupRepo domain.ChatGroupRepository,
	chatMessageRepo domain.ChatMessageRepository,
	messageReadRepo domain.MessageReadRepository,
	messageDeletedRepo domain.MessageDeletedRepository,
	userRepo domain.UserRepository,
	redisClient *redis.Client,
	natsClient nats.INatsClient,
	serverCache *infraRedis.ServerCacheRepository,
	storageUseCase *StorageUseCase,
	fileRepo domain.FileRepository,
	messageAttachmentRepo domain.MessageAttachmentRepository,
	callbackQueryRepo domain.BotCallbackQueryRepository,
	pollRepo domain.PollRepository,
	messageReactionRepo domain.MessageReactionRepository,
	groupTopicRepo *postgresRepo.GroupChatTopicRepository,
	conversationPinnedRepo *postgresRepo.ConversationPinnedMessageRepository,
) *ChatUseCase

func (*ChatUseCase) AcquireLock

func (c *ChatUseCase) AcquireLock(ctx context.Context, key string, seconds int) bool

func (*ChatUseCase) AddGroupMembers

func (c *ChatUseCase) AddGroupMembers(ctx context.Context, uid int, groupId int, userIds []int) error

func (*ChatUseCase) AssertPrivateMessagingNotBlocked

func (c *ChatUseCase) AssertPrivateMessagingNotBlocked(ctx context.Context, fromUserId, toUserId int) error

func (*ChatUseCase) BatchAddList

func (c *ChatUseCase) BatchAddList(ctx context.Context, uid int, values map[string]int)

func (*ChatUseCase) ClearHistory

func (c *ChatUseCase) ClearHistory(ctx context.Context, uid int, peerType int, peerId int) error

func (*ChatUseCase) Collect

func (c *ChatUseCase) Collect(ctx context.Context, uid int, messageId int64) error

func (*ChatUseCase) ComposeDisabledForPeer

func (c *ChatUseCase) ComposeDisabledForPeer(ctx context.Context, peerType, peerId int) int32

func (*ChatUseCase) Create

func (c *ChatUseCase) Create(ctx context.Context, opt *CreateChatOpt) (*postgresModel.Chat, error)

func (*ChatUseCase) CreateChat

func (c *ChatUseCase) CreateChat(ctx context.Context, uid int, userId int) (*event.Chat, *event.User, error)

func (*ChatUseCase) CreateGroupChat

func (c *ChatUseCase) CreateGroupChat(ctx context.Context, uid int, title string, userIds []int) (*event.Chat, *event.ChatGroup, error)

func (*ChatUseCase) CreatePoll

func (c *ChatUseCase) CreatePoll(ctx context.Context, uid int, peerType int, peerId int, question string, options []string, anonymous bool, multipleChoice bool) (*event.Message, error)

func (*ChatUseCase) Delete

func (c *ChatUseCase) Delete(ctx context.Context, uid int, id int) error

func (*ChatUseCase) DeleteChat

func (c *ChatUseCase) DeleteChat(ctx context.Context, uid int, peerType int, peerId int) error

func (*ChatUseCase) DeleteMessage

func (c *ChatUseCase) DeleteMessage(ctx context.Context, uid int, messageId int64) error

func (*ChatUseCase) DeleteMessages

func (c *ChatUseCase) DeleteMessages(ctx context.Context, uid int, messageIds []int64, forEveryone bool) error

func (*ChatUseCase) DeleteRecordList

func (c *ChatUseCase) DeleteRecordList(ctx context.Context, opt *RemoveRecordListOpt) error

func (*ChatUseCase) Disturb

func (c *ChatUseCase) Disturb(ctx context.Context, opt *ChatDisturbOpt) error

func (*ChatUseCase) EditMessage

func (c *ChatUseCase) EditMessage(ctx context.Context, uid int, peerType int, peerId int, messageId int64, content string) (*event.Message, error)

func (*ChatUseCase) FindGroupSessionID

func (c *ChatUseCase) FindGroupSessionID(uid int, groupID int) int

func (*ChatUseCase) FindPrivateSessionID

func (c *ChatUseCase) FindPrivateSessionID(uid int, receiverId int) int

func (*ChatUseCase) GetAllUnread

func (c *ChatUseCase) GetAllUnread(ctx context.Context, uid int) map[string]int

func (*ChatUseCase) GetAllUserIds

func (c *ChatUseCase) GetAllUserIds(ctx context.Context, uid int) []int64

func (*ChatUseCase) GetCachedMessage

func (c *ChatUseCase) GetCachedMessage(ctx context.Context, chatType int, uid int, receiverID int) (*entity.MessageItem, error)

func (*ChatUseCase) GetCallbackQueriesForBot

func (c *ChatUseCase) GetCallbackQueriesForBot(ctx context.Context, botUserId int, afterId int64, limit int) ([]*event.BotCallbackQuery, error)

func (*ChatUseCase) GetChats

func (c *ChatUseCase) GetChats(ctx context.Context, uid int) ([]*event.Chat, []*event.User, []*event.ChatGroup, error)

func (*ChatUseCase) GetGroupInfo

func (c *ChatUseCase) GetGroupInfo(ctx context.Context, uid int, groupId int) (*event.ChatGroup, []*event.ChatGroupMember, []*event.User, error)

func (*ChatUseCase) GetHistory

func (c *ChatUseCase) GetHistory(ctx context.Context, uid int, peerUserId int64, messageId int64, limit int64) ([]*event.Message, []*event.User, error)

func (*ChatUseCase) GetHistoryByPeer

func (c *ChatUseCase) GetHistoryByPeer(ctx context.Context, uid int, peerType int, peerId int, messageId int64, limit int32, topicId int64) ([]*event.Message, []*event.User, error)

func (*ChatUseCase) GetIncomingForBot

func (c *ChatUseCase) GetIncomingForBot(ctx context.Context, botUserId int, afterId int64, limit int) ([]*event.Message, error)

func (*ChatUseCase) GetMessageById

func (c *ChatUseCase) GetMessageById(ctx context.Context, messageId int64) (*event.Message, error)

func (*ChatUseCase) GetNotifySettings

func (c *ChatUseCase) GetNotifySettings(ctx context.Context, chatType int, uid int, chatId int64) (*entity.NotifySettings, error)

func (*ChatUseCase) GetTotalUnreadCount

func (c *ChatUseCase) GetTotalUnreadCount(ctx context.Context, uid int) (int, error)

func (*ChatUseCase) GetUnread

func (c *ChatUseCase) GetUnread(ctx context.Context, chatType int, receiverID int, uid int) int

func (*ChatUseCase) GroupMemberIDs

func (c *ChatUseCase) GroupMemberIDs(ctx context.Context, groupID int) ([]int, error)

func (*ChatUseCase) IsDisturb

func (c *ChatUseCase) IsDisturb(uid int, receiverID int, chatType int) bool

func (*ChatUseCase) IsOnline

func (c *ChatUseCase) IsOnline(ctx context.Context, channel string, uid int) bool

func (*ChatUseCase) List

func (c *ChatUseCase) List(ctx context.Context, uid int) ([]*entity.SearchChat, error)

func (*ChatUseCase) ListPinnedMessageIDs

func (c *ChatUseCase) ListPinnedMessageIDs(ctx context.Context, uid int, peerType, peerId int, topicID int64) ([]int64, error)

func (*ChatUseCase) PinMessage

func (c *ChatUseCase) PinMessage(ctx context.Context, uid int, peerType, peerId int, topicID, messageID int64) error

func (*ChatUseCase) PublishMessageDeleted

func (c *ChatUseCase) PublishMessageDeleted(ctx context.Context, peerId, fromPeerId int, messageIds []int64) error

func (*ChatUseCase) PublishMessageRead

func (c *ChatUseCase) PublishMessageRead(ctx context.Context, readerUID, peerID int, lastReadMessageID int64) error

func (*ChatUseCase) PublishNewMessage

func (c *ChatUseCase) PublishNewMessage(ctx context.Context, msg *event.Message) error

func (*ChatUseCase) PublishTyping

func (c *ChatUseCase) PublishTyping(ctx context.Context, typerUID, peerType, peerRoomID int) error

func (*ChatUseCase) ReleaseLock

func (c *ChatUseCase) ReleaseLock(ctx context.Context, key string)

func (*ChatUseCase) RemoveGroupMembers

func (c *ChatUseCase) RemoveGroupMembers(ctx context.Context, uid int, groupId int, userIds []int) error

func (*ChatUseCase) ReportInlineCallback

func (c *ChatUseCase) ReportInlineCallback(ctx context.Context, fromUserId int, peerType int, peerId int, messageId int64, callbackData string) error

func (*ChatUseCase) ResetUnread

func (c *ChatUseCase) ResetUnread(ctx context.Context, chatType int, receiverID int, uid int)

func (*ChatUseCase) SearchChatMessagesByPeer

func (c *ChatUseCase) SearchChatMessagesByPeer(ctx context.Context, uid int, peerType int, peerId int, query string, limit int32, topicId int64) ([]*event.Message, []*event.User, error)

func (*ChatUseCase) SendCodeToPeer

func (c *ChatUseCase) SendCodeToPeer(ctx context.Context, uid int, peerType int, peerId int, lang, code string, replyToMessageId int64, randomId int64) (*event.Message, error)

func (*ChatUseCase) SendLocationToPeer

func (c *ChatUseCase) SendLocationToPeer(ctx context.Context, uid int, peerType int, peerId int, latitude, longitude, description string, replyToMessageId int64, randomId int64) (*event.Message, error)

func (*ChatUseCase) SendMessage

func (c *ChatUseCase) SendMessage(ctx context.Context, uid int, peerUserId int, content string, replyToMessageId int64, forwarded bool, forwardedFromMessageId int64) (*event.Message, error)

func (*ChatUseCase) SendMessageToPeer

func (c *ChatUseCase) SendMessageToPeer(ctx context.Context, uid int, peerType int, peerId int, content string, replyToMessageId int64, forwarded bool, forwardedFromMessageId int64, attachments []domain.AttachmentUpload, replyMarkup *event.ReplyMarkup, mention *entity.Mention, topicId int64, randomId int64) (*event.Message, error)

func (*ChatUseCase) SendStickerToPeer

func (c *ChatUseCase) SendStickerToPeer(ctx context.Context, uid int, peerType int, peerId int, stickerId int64, replyToMessageId int64, randomId int64) (*event.Message, error)

func (*ChatUseCase) SetChatNotifications

func (c *ChatUseCase) SetChatNotifications(ctx context.Context, uid int, peerType int, peerID int, muted bool) error

func (*ChatUseCase) SetGroupMemberRole

func (c *ChatUseCase) SetGroupMemberRole(ctx context.Context, uid int, groupId int, targetUserId int, role int) error

func (*ChatUseCase) SetGroupTopicPinnedMessage

func (c *ChatUseCase) SetGroupTopicPinnedMessage(ctx context.Context, uid, groupID int, topicID int64, messageID int64) (*entity.GroupTopic, error)

func (*ChatUseCase) SetLoginBot

func (c *ChatUseCase) SetLoginBot(h *bot.Handler, botUserID int)

func (*ChatUseCase) SetMessageReaction

func (c *ChatUseCase) SetMessageReaction(ctx context.Context, uid int, peerType int, peerId int, messageId int64, emoji string) error

func (*ChatUseCase) SetPeerBlock

func (c *ChatUseCase) SetPeerBlock(ctx context.Context, uid int, peerType int, peerID int, blocked bool) error

func (*ChatUseCase) Top

func (c *ChatUseCase) Top(ctx context.Context, opt *ChatTopOpt) error

func (*ChatUseCase) TouchGroupChatsAfterGroupUpdate

func (c *ChatUseCase) TouchGroupChatsAfterGroupUpdate(ctx context.Context, groupId int)

func (*ChatUseCase) UnpinMessage

func (c *ChatUseCase) UnpinMessage(ctx context.Context, uid int, peerType, peerId int, topicID, messageID int64) error

func (*ChatUseCase) UpdateNotifySettings

func (c *ChatUseCase) UpdateNotifySettings(ctx context.Context, chatType int, uid int, chatId int64, data *entity.NotifySettings) error

func (*ChatUseCase) UploadGroupPhoto

func (c *ChatUseCase) UploadGroupPhoto(ctx context.Context, uid int, groupId int, fileId int64) (avatarFileID int64, err error)

func (*ChatUseCase) UserMayReadFile

func (c *ChatUseCase) UserMayReadFile(ctx context.Context, uid int, fileID int64) error

func (*ChatUseCase) VotePoll

func (c *ChatUseCase) VotePoll(ctx context.Context, uid int, peerType int, peerId int, messageId int64, optionId int64) error

type ContactUseCase

type ContactUseCase struct {
	Locale      locale.ILocale
	Source      *infrastructure.Source
	ContactRepo *postgresRepo.ContactRepository
}

func NewContactUseCase

func NewContactUseCase(
	locale locale.ILocale,
	source *infrastructure.Source,
	contactRepo *postgresRepo.ContactRepository,
) *ContactUseCase

func (*ContactUseCase) AddContact

func (c *ContactUseCase) AddContact(ctx context.Context, uid, friendId int) error

func (*ContactUseCase) Delete

func (c *ContactUseCase) Delete(ctx context.Context, uid, friendId int) error

func (*ContactUseCase) GetContactIds

func (c *ContactUseCase) GetContactIds(ctx context.Context, uid int) []int64

func (*ContactUseCase) GetFriendStatus

func (c *ContactUseCase) GetFriendStatus(ctx context.Context, uid, friendId int) (int32, error)

func (*ContactUseCase) HasContact

func (c *ContactUseCase) HasContact(ctx context.Context, uid, friendId int) bool

func (*ContactUseCase) IsFriend

func (c *ContactUseCase) IsFriend(ctx context.Context, uid, friendId int, useCache bool) bool

func (*ContactUseCase) List

func (c *ContactUseCase) List(ctx context.Context, uid int) ([]*entity.ContactListItem, error)

type CreateChatOpt

type CreateChatOpt = domain.CreateChatOpt

type GroupChatMemberUseCase

type GroupChatMemberUseCase struct {
	Locale     locale.ILocale
	Source     *infrastructure.Source
	MemberRepo *postgresRepo.GroupChatMemberRepository
}

func NewGroupChatMemberUseCase

func NewGroupChatMemberUseCase(
	locale locale.ILocale,
	source *infrastructure.Source,
	memberRepo *postgresRepo.GroupChatMemberRepository,
) *GroupChatMemberUseCase

func (*GroupChatMemberUseCase) FindMasterByGroup

func (g *GroupChatMemberUseCase) FindMasterByGroup(ctx context.Context, gid int) (*postgresModel.GroupChatMember, error)

func (*GroupChatMemberUseCase) GetLeaderGroupIds

func (g *GroupChatMemberUseCase) GetLeaderGroupIds(ctx context.Context, uid int) ([]int, error)

func (*GroupChatMemberUseCase) GetUserGroupIds

func (g *GroupChatMemberUseCase) GetUserGroupIds(ctx context.Context, uid int) []int

func (*GroupChatMemberUseCase) Handover

func (g *GroupChatMemberUseCase) Handover(ctx context.Context, groupId int, userId int, memberId int) error

func (*GroupChatMemberUseCase) IsLeader

func (g *GroupChatMemberUseCase) IsLeader(ctx context.Context, gid, uid int) bool

func (*GroupChatMemberUseCase) IsMaster

func (g *GroupChatMemberUseCase) IsMaster(ctx context.Context, gid, uid int) bool

func (*GroupChatMemberUseCase) IsMember

func (g *GroupChatMemberUseCase) IsMember(ctx context.Context, gid, uid int, cache bool) bool

func (*GroupChatMemberUseCase) SetLeaderStatus

func (g *GroupChatMemberUseCase) SetLeaderStatus(ctx context.Context, groupId int, userId int, leader int) error

func (*GroupChatMemberUseCase) SetMuteStatus

func (g *GroupChatMemberUseCase) SetMuteStatus(ctx context.Context, groupId int, userId int, status int) error

type GroupChatRequestUseCase

type GroupChatRequestUseCase struct {
	Locale                locale.ILocale
	Source                *infrastructure.Source
	GroupChatRequestRepo  *postgresRepo.GroupChatRequestRepository
	GroupRequestCacheRepo *redisRepo.GroupChatRequestCacheRepository
	Nats                  nats.INatsClient
}

func NewGroupChatRequestUseCase

func NewGroupChatRequestUseCase(
	locale locale.ILocale,
	source *infrastructure.Source,
	groupChatRequestRepo *postgresRepo.GroupChatRequestRepository,
	groupRequestCacheRepo *redisRepo.GroupChatRequestCacheRepository,
	nc nats.INatsClient,
) *GroupChatRequestUseCase

func (*GroupChatRequestUseCase) Auth

func (g *GroupChatRequestUseCase) Auth(ctx context.Context, id, userId int) bool

func (*GroupChatRequestUseCase) Create

func (*GroupChatRequestUseCase) Delete

func (g *GroupChatRequestUseCase) Delete(ctx context.Context, id, userId int) error

func (*GroupChatRequestUseCase) FindByGroupAndStatus

func (g *GroupChatRequestUseCase) FindByGroupAndStatus(ctx context.Context, groupId, status int) (*postgresModel.GroupChatRequest, error)

func (*GroupChatRequestUseCase) FindByID

func (*GroupChatRequestUseCase) GetUnread

func (g *GroupChatRequestUseCase) GetUnread(ctx context.Context, uid int) int

func (*GroupChatRequestUseCase) IncrementUnread

func (g *GroupChatRequestUseCase) IncrementUnread(ctx context.Context, uid int)

func (*GroupChatRequestUseCase) List

func (g *GroupChatRequestUseCase) List(ctx context.Context, groupIds []int) ([]*entity.GroupApplyList, error)

func (*GroupChatRequestUseCase) PublishNewRequest

func (g *GroupChatRequestUseCase) PublishNewRequest(ctx context.Context, groupId, userId int)

func (*GroupChatRequestUseCase) ResetUnread

func (g *GroupChatRequestUseCase) ResetUnread(ctx context.Context, uid int)

func (*GroupChatRequestUseCase) Touch

func (g *GroupChatRequestUseCase) Touch(ctx context.Context, id int) error

func (*GroupChatRequestUseCase) UpdateStatus

func (g *GroupChatRequestUseCase) UpdateStatus(ctx context.Context, id, status int) error

type GroupChatUseCase

func (*GroupChatUseCase) AcquireLock

func (g *GroupChatUseCase) AcquireLock(ctx context.Context, key string, seconds int) bool

func (*GroupChatUseCase) ApplyGroupPhotoID

func (g *GroupChatUseCase) ApplyGroupPhotoID(ctx context.Context, uid, groupId int, fileID int64) error

func (*GroupChatUseCase) CountGroupMemberNum

func (g *GroupChatUseCase) CountGroupMemberNum(ids []int) ([]*domain.CountGroupMember, error)

func (*GroupChatUseCase) Create

func (g *GroupChatUseCase) Create(ctx context.Context, opt *GroupCreateOpt) (int, error)

func (*GroupChatUseCase) CreateGroupTopic

func (g *GroupChatUseCase) CreateGroupTopic(ctx context.Context, uid, groupID int, name string) (*entity.GroupTopic, error)

func (*GroupChatUseCase) Dismiss

func (g *GroupChatUseCase) Dismiss(ctx context.Context, groupId int, uid int) error

func (*GroupChatUseCase) FindByID

func (g *GroupChatUseCase) FindByID(ctx context.Context, id int) (*postgresModel.GroupChat, error)

func (*GroupChatUseCase) GetGroupApplyNotificationData

func (g *GroupChatUseCase) GetGroupApplyNotificationData(ctx context.Context, groupId, applicantUserId int) (leaderUserId int, groupName, applicantUsername string, err error)

func (*GroupChatUseCase) GetGroupNamesByIDs

func (g *GroupChatUseCase) GetGroupNamesByIDs(ctx context.Context, groupIDs []int) (map[int]string, error)

func (*GroupChatUseCase) GetGroupTopics

func (g *GroupChatUseCase) GetGroupTopics(ctx context.Context, uid, groupID int) ([]*entity.GroupTopic, error)

func (*GroupChatUseCase) GetMemberIDs

func (g *GroupChatUseCase) GetMemberIDs(ctx context.Context, groupID int) []int

func (*GroupChatUseCase) GetMembers

func (g *GroupChatUseCase) GetMembers(ctx context.Context, groupID int) []*entity.MemberItem

func (*GroupChatUseCase) Invite

func (g *GroupChatUseCase) Invite(ctx context.Context, opt *GroupInviteOpt) error

func (*GroupChatUseCase) List

func (g *GroupChatUseCase) List(userId int) ([]*entity.GroupItem, error)

func (*GroupChatUseCase) ReleaseLock

func (g *GroupChatUseCase) ReleaseLock(ctx context.Context, key string)

func (*GroupChatUseCase) RemoveMember

func (g *GroupChatUseCase) RemoveMember(ctx context.Context, opt *GroupRemoveMembersOpt) error

func (*GroupChatUseCase) SearchOvertList

func (*GroupChatUseCase) Secede

func (g *GroupChatUseCase) Secede(ctx context.Context, groupId int, uid int) error

func (*GroupChatUseCase) SetGroupTopicCreationPolicy

func (g *GroupChatUseCase) SetGroupTopicCreationPolicy(ctx context.Context, uid, groupID int, policy int) error

func (*GroupChatUseCase) SetGroupTopicsEnabled

func (g *GroupChatUseCase) SetGroupTopicsEnabled(ctx context.Context, uid, groupID int, enabled bool) error

func (*GroupChatUseCase) Update

func (g *GroupChatUseCase) Update(ctx context.Context, opt *GroupUpdateOpt) error

func (*GroupChatUseCase) UpdateByID

func (g *GroupChatUseCase) UpdateByID(ctx context.Context, id int, data map[string]any) (int, error)

func (*GroupChatUseCase) UpdateGroupProfile

func (g *GroupChatUseCase) UpdateGroupProfile(ctx context.Context, uid, groupID int, title, description string) error

type GroupCreateOpt

type GroupCreateOpt = domain.GroupCreateOpt

type GroupInviteOpt

type GroupInviteOpt = domain.GroupInviteOpt

type GroupInviteUseCase

type GroupInviteUseCase struct {
	Source        *infrastructure.Source
	Invites       *postgresRepo.GroupInviteRepository
	ChatGroupRepo domain.ChatGroupRepository
}

func NewGroupInviteUseCase

func NewGroupInviteUseCase(
	source *infrastructure.Source,
	invites *postgresRepo.GroupInviteRepository,
	chatGroupRepo domain.ChatGroupRepository,
) *GroupInviteUseCase

func (*GroupInviteUseCase) EnsureInvite

func (u *GroupInviteUseCase) EnsureInvite(ctx context.Context, uid int, groupID int) (*domain.GroupInviteEnsureResult, error)

func (*GroupInviteUseCase) ResolveInvite

func (u *GroupInviteUseCase) ResolveInvite(ctx context.Context, uid int, token string) (*domain.GroupInviteResolveResult, error)

type GroupRemoveMembersOpt

type GroupRemoveMembersOpt = domain.GroupRemoveMembersOpt

type GroupUpdateOpt

type GroupUpdateOpt = domain.GroupUpdateOpt

type IpAddressResponse

type IpAddressResponse struct {
	Status   string `json:"status"`
	Message  string `json:"message,omitempty"`
	Country  string `json:"country,omitempty"`
	Province string `json:"province,omitempty"`
	City     string `json:"city,omitempty"`
	Isp      string `json:"isp,omitempty"`
}

type IpAddressUseCase

type IpAddressUseCase struct {
	Conf       *config.Config
	Locale     locale.ILocale
	Source     *infrastructure.Source
	HttpClient *httputil.HttpClient
}

func NewIpAddressUseCase

func NewIpAddressUseCase(
	conf *config.Config,
	locale locale.ILocale,
	source *infrastructure.Source,
	httpClient *httputil.HttpClient,
) *IpAddressUseCase

func (*IpAddressUseCase) FindAddress

func (i *IpAddressUseCase) FindAddress(ip string) (string, error)

type MessageExtraMapper

type MessageExtraMapper struct{}

func NewMessageExtraMapper

func NewMessageExtraMapper() *MessageExtraMapper

func (*MessageExtraMapper) AudioFromMap

func (m *MessageExtraMapper) AudioFromMap(extra map[string]any) *entity.MessageExtraAudio

func (*MessageExtraMapper) CodeFromMap

func (m *MessageExtraMapper) CodeFromMap(extra map[string]any) *entity.MessageExtraCode

func (*MessageExtraMapper) FileFromMap

func (m *MessageExtraMapper) FileFromMap(extra map[string]any) *entity.MessageExtraFile

func (*MessageExtraMapper) ForwardFromMap

func (m *MessageExtraMapper) ForwardFromMap(extra map[string]any) *entity.MessageExtraForward

func (*MessageExtraMapper) GroupMutedFromMap

func (m *MessageExtraMapper) GroupMutedFromMap(extra map[string]any) (ownerId int, ownerName string)

func (*MessageExtraMapper) ImageFromMap

func (m *MessageExtraMapper) ImageFromMap(extra map[string]any) *entity.MessageExtraImage

func (*MessageExtraMapper) LocationFromMap

func (m *MessageExtraMapper) LocationFromMap(extra map[string]any) *entity.MessageExtraLocation

func (*MessageExtraMapper) LoginFromMap

func (m *MessageExtraMapper) LoginFromMap(extra map[string]any) *entity.MessageExtraLogin

func (*MessageExtraMapper) MentionFromExtraMap

func (m *MessageExtraMapper) MentionFromExtraMap(extra map[string]any) *entity.Mention

func (*MessageExtraMapper) ReplyFromExtra

func (m *MessageExtraMapper) ReplyFromExtra(extra map[string]any) *entity.Reply

func (*MessageExtraMapper) VideoFromMap

func (m *MessageExtraMapper) VideoFromMap(extra map[string]any) *entity.MessageExtraVideo

type MessageUseCase

func (*MessageUseCase) GetForwardMessages

func (m *MessageUseCase) GetForwardMessages(ctx context.Context, uid int, messageId int64) ([]*entity.MessageItem, error)

func (*MessageUseCase) GetHistory

func (*MessageUseCase) GetMessage

func (m *MessageUseCase) GetMessage(ctx context.Context, messageId int64) (*entity.MessageItem, error)

func (*MessageUseCase) GetMessageActions

func (m *MessageUseCase) GetMessageActions(ctx context.Context, uid int, messageId int64, chatType, receiverId int) (*entity.MessageActions, error)

func (*MessageUseCase) GetMessageAttachmentStorage

func (m *MessageUseCase) GetMessageAttachmentStorage(ctx context.Context, messageId int, msgType int) (*entity.MessageAttachmentStorage, error)

func (*MessageUseCase) GetMessageByMessageId

func (m *MessageUseCase) GetMessageByMessageId(ctx context.Context, messageId int64) (*postgresModel.Message, error)

func (*MessageUseCase) GetMessageFileExtra

func (m *MessageUseCase) GetMessageFileExtra(ctx context.Context, messageId int) (*entity.MessageExtraFile, error)

func (*MessageUseCase) HandleMessages

func (m *MessageUseCase) HandleMessages(ctx context.Context, items []*entity.QueryMessageItem) ([]*entity.MessageItem, error)

func (*MessageUseCase) IsAccess

func (m *MessageUseCase) IsAccess(ctx context.Context, opt *entity.MessageAccess) error

func (*MessageUseCase) PersistPrivateReadReceipts

func (m *MessageUseCase) PersistPrivateReadReceipts(ctx context.Context, readerUserId, receiverId int, messageIDs []string) error

func (*MessageUseCase) Revoke

func (m *MessageUseCase) Revoke(ctx context.Context, uid int, messageId string) error

func (*MessageUseCase) SendAudio

func (m *MessageUseCase) SendAudio(ctx context.Context, uid int, req *entity.SendAudio) error

func (*MessageUseCase) SendBotFile

func (m *MessageUseCase) SendBotFile(ctx context.Context, uid int, req *entity.SendBotFile) error

func (*MessageUseCase) SendCode

func (m *MessageUseCase) SendCode(ctx context.Context, uid int, req *dto.CodeMessageRequest) error

func (*MessageUseCase) SendFile

func (m *MessageUseCase) SendFile(ctx context.Context, uid int, req *entity.SendFile) error

func (*MessageUseCase) SendForward

func (m *MessageUseCase) SendForward(ctx context.Context, uid int, req *dto.ForwardMessageRequest) error

func (*MessageUseCase) SendImage

func (m *MessageUseCase) SendImage(ctx context.Context, uid int, req *entity.SendImage) error

func (*MessageUseCase) SendLocation

func (m *MessageUseCase) SendLocation(ctx context.Context, uid int, req *dto.LocationMessageRequest) error

func (*MessageUseCase) SendLogin

func (m *MessageUseCase) SendLogin(ctx context.Context, uid int, req *entity.SendLogin) error

func (*MessageUseCase) SendSticker

func (m *MessageUseCase) SendSticker(ctx context.Context, uid int, req *dto.StickerMessageRequest) error

func (*MessageUseCase) SendSysOther

func (m *MessageUseCase) SendSysOther(ctx context.Context, data *postgresModel.Message, extraContent string) error

func (*MessageUseCase) SendSystemText

func (m *MessageUseCase) SendSystemText(ctx context.Context, uid int, req *entity.TextMessageRequest) error

func (*MessageUseCase) SendText

func (m *MessageUseCase) SendText(ctx context.Context, uid int, req *entity.SendText) error

func (*MessageUseCase) SendVideo

func (m *MessageUseCase) SendVideo(ctx context.Context, uid int, req *entity.SendVideo) error

func (*MessageUseCase) SendVote

func (m *MessageUseCase) SendVote(ctx context.Context, uid int, req *dto.VoteMessageRequest) error

func (*MessageUseCase) Vote

func (m *MessageUseCase) Vote(ctx context.Context, uid int, messageId int64, optionsValue string) (*domain.VoteStatistics, error)

type MultipartInitiateOpt

type MultipartInitiateOpt = domain.MultipartInitiateOpt

type MultipartUploadOpt

type MultipartUploadOpt = domain.MultipartUploadOpt

type RemoveRecordListOpt

type RemoveRecordListOpt = domain.RemoveRecordListOpt

type Session

type Session struct {
	PeerId    int  `gorm:"column:peer_id" json:"peer_id"`
	IsDisturb bool `gorm:"column:is_disturb" json:"is_disturb"`
}

type StickerUseCase

type StickerUseCase struct {
	Locale             locale.ILocale
	Source             *infrastructure.Source
	StickerRepo        *postgresRepo.StickerRepository
	IMinio             minio.IMinio
	RedisLockCacheRepo *redisRepo.RedisLockCacheRepository
	Conf               *config.Config
	FileRepo           domain.FileRepository
	Storage            domain.IStorageUseCase
}

func NewStickerUseCase

func NewStickerUseCase(
	locale locale.ILocale,
	source *infrastructure.Source,
	stickerRepo *postgresRepo.StickerRepository,
	minio minio.IMinio,
	redisLockCacheRepo *redisRepo.RedisLockCacheRepository,
	conf *config.Config,
	fileRepo domain.FileRepository,
	storage domain.IStorageUseCase,
) *StickerUseCase

func (*StickerUseCase) AcquireLock

func (s *StickerUseCase) AcquireLock(ctx context.Context, key string, seconds int) bool

func (*StickerUseCase) AddUserSysSticker

func (s *StickerUseCase) AddUserSysSticker(uid int, stickerId int) error

func (*StickerUseCase) CreateCustomStickerItem

func (s *StickerUseCase) CreateCustomStickerItem(ctx context.Context, uid int, url, fileSuffix string, fileSize int, description string) (*model.StickerItem, error)

func (*StickerUseCase) CreateStickerFromUploadedFileID

func (s *StickerUseCase) CreateStickerFromUploadedFileID(ctx context.Context, uid int, fileID int64) (*model.StickerItem, error)

func (*StickerUseCase) DeleteCollect

func (s *StickerUseCase) DeleteCollect(uid int, ids []int) error

func (*StickerUseCase) FindByID

func (s *StickerUseCase) FindByID(ctx context.Context, id int) (*model.Sticker, error)

func (*StickerUseCase) FindByIDs

func (s *StickerUseCase) FindByIDs(ctx context.Context, ids []int) ([]*model.Sticker, error)

func (*StickerUseCase) GetDetailsAll

func (s *StickerUseCase) GetDetailsAll(stickerID int, uid int) ([]*model.StickerItem, error)

func (*StickerUseCase) GetSystemStickerList

func (s *StickerUseCase) GetSystemStickerList(ctx context.Context) ([]*model.Sticker, error)

func (*StickerUseCase) GetUserInstallIDs

func (s *StickerUseCase) GetUserInstallIDs(uid int) []int

func (*StickerUseCase) ReleaseLock

func (s *StickerUseCase) ReleaseLock(ctx context.Context, key string)

func (*StickerUseCase) RemoveUserSysSticker

func (s *StickerUseCase) RemoveUserSysSticker(uid int, stickerId int) error

type StorageUseCase

type StorageUseCase struct {
	Locale   locale.ILocale
	Minio    minio.IMinio
	Conf     *config.Config
	FileRepo domain.FileRepository
}

func NewStorageUseCase

func NewStorageUseCase(
	locale locale.ILocale,
	minio minio.IMinio,
	conf *config.Config,
	fileRepo domain.FileRepository,
) *StorageUseCase

func (*StorageUseCase) AbortMultipartUpload

func (s *StorageUseCase) AbortMultipartUpload(ctx context.Context, objectKey, uploadID string) error

func (*StorageUseCase) AbortResumableMultipartUpload

func (s *StorageUseCase) AbortResumableMultipartUpload(ctx context.Context, uid int, fileID int64, objectKey, uploadID string) error

func (*StorageUseCase) BeginResumableMultipartUpload

func (s *StorageUseCase) BeginResumableMultipartUpload(ctx context.Context, uid int, filename, mimeType string, totalBytes int64) (fileID int64, uploadID, objectKey string, minPartBytes int64, err error)

func (*StorageUseCase) CompleteMultipartUpload

func (s *StorageUseCase) CompleteMultipartUpload(ctx context.Context, objectKey, uploadID string, fileID int64, filename, mimeType, scope, scopeID string, totalSize int64, parts []minio.ObjectPart) (*domain.File, error)

func (*StorageUseCase) CompleteResumableMultipartUpload

func (s *StorageUseCase) CompleteResumableMultipartUpload(ctx context.Context, uid int, fileID int64, objectKey, uploadID, filename, mimeType string, totalBytes int64) (*domain.File, error)

func (*StorageUseCase) GetFileContent

func (s *StorageUseCase) GetFileContent(ctx context.Context, fileID int64) ([]byte, string, error)

func (*StorageUseCase) GetObject

func (s *StorageUseCase) GetObject(bucketName string, objectName string) (io.ReadCloser, error)

func (*StorageUseCase) GetObjectRange

func (s *StorageUseCase) GetObjectRange(bucketName string, objectName string, start, endInclusive int64) (io.ReadCloser, error)

func (*StorageUseCase) PublicURL

func (s *StorageUseCase) PublicURL(bucketName string, objectName string) string

func (*StorageUseCase) PutPart

func (s *StorageUseCase) PutPart(ctx context.Context, objectKey, uploadID string, partNumber int, data []byte) (minio.ObjectPart, error)

func (*StorageUseCase) RegisterStoredObject

func (s *StorageUseCase) RegisterStoredObject(ctx context.Context, scope, scopeID, fileName, mimeType string, size int64, storagePath string) (*domain.File, error)

func (*StorageUseCase) ResumableMultipartProgress

func (s *StorageUseCase) ResumableMultipartProgress(ctx context.Context, uid int, fileID int64, objectKey, uploadID string) (uploadedBytes int64, nextPart int32, partsCount int32, err error)

func (*StorageUseCase) SaveAttachment

func (s *StorageUseCase) SaveAttachment(ctx context.Context, scope, scopeID, fileName, mimeType string, content []byte) (*domain.File, error)

func (*StorageUseCase) SendResumableMultipartPart

func (s *StorageUseCase) SendResumableMultipartPart(ctx context.Context, uid int, fileID int64, objectKey, uploadID string, partNumber int, data []byte, totalBytes int64) (uploadedBytes int64, err error)

func (*StorageUseCase) StartMultipartUpload

func (s *StorageUseCase) StartMultipartUpload(ctx context.Context, scope, scopeID, fileName, mimeType string) (fileID int64, uploadID, objectKey string, err error)

func (*StorageUseCase) Stat

func (s *StorageUseCase) Stat(bucketName string, objectName string) (*minio.FileStatInfo, error)

func (*StorageUseCase) WriteObject

func (s *StorageUseCase) WriteObject(bucketName string, objectName string, content []byte) error

type UploadUseCase

type UploadUseCase struct {
	Conf          *config.Config
	Locale        locale.ILocale
	Source        *infrastructure.Source
	FileRepo      *postgresRepo.FileRepository
	FileSplitRepo *postgresRepo.FileSplitRepository
	Minio         minio.IMinio
}

func NewUploadUseCase

func NewUploadUseCase(
	conf *config.Config,
	locale locale.ILocale,
	source *infrastructure.Source,
	fileRepo *postgresRepo.FileRepository,
	fileSplitRepo *postgresRepo.FileSplitRepository,
	minio minio.IMinio,
) *UploadUseCase

func (*UploadUseCase) AssembleFileParts

func (u *UploadUseCase) AssembleFileParts(ctx context.Context, uid int, fileId int64, totalParts int32, originalName string, fileExt string) (*AssembleFilePart, error)

func (*UploadUseCase) GetFile

func (u *UploadUseCase) GetFile(ctx context.Context, fileId int64, offset int64, limit int32) ([]byte, error)

func (*UploadUseCase) InitiateMultipartUpload

func (u *UploadUseCase) InitiateMultipartUpload(ctx context.Context, params *MultipartInitiateOpt) (*postgresModel.FileSplit, error)

func (*UploadUseCase) MultipartUpload

func (u *UploadUseCase) MultipartUpload(ctx context.Context, opt *MultipartUploadOpt) error

func (*UploadUseCase) RetrySaveFilePart

func (u *UploadUseCase) RetrySaveFilePart(uid int, maxRetries int, fileId int64, filePart int32, data []byte) error

type UserUseCase

type UserUseCase struct {
	Conf            *config.Config
	Locale          locale.ILocale
	Source          *infrastructure.Source
	UserRepo        *postgresRepo.UserRepository
	UserSessionRepo *postgresRepo.UserSessionRepository
	PushTokenRepo   *postgresRepo.PushTokenRepository
	Minio           minio.IMinio
	FileRepo        domain.FileRepository
	StorageUseCase  *StorageUseCase
	FileReadAccess  domain.IFileReadAccess
	// contains filtered or unexported fields
}

func NewUserUseCase

func NewUserUseCase(
	conf *config.Config,
	locale locale.ILocale,
	source *infrastructure.Source,
	userRepo *postgresRepo.UserRepository,
	userSessionRepo *postgresRepo.UserSessionRepository,
	pushTokenRepo *postgresRepo.PushTokenRepository,
	minio minio.IMinio,
	fileRepo domain.FileRepository,
	storageUseCase *StorageUseCase,
	fileReadAccess domain.IFileReadAccess,
) *UserUseCase

func (*UserUseCase) ApplyUserPhotoID

func (u *UserUseCase) ApplyUserPhotoID(ctx context.Context, uid int, fileID int64) error

func (*UserUseCase) CreateWebSession

func (u *UserUseCase) CreateWebSession(ctx context.Context, session *model.UserSession) error

func (*UserUseCase) DevicePushInit

func (u *UserUseCase) DevicePushInit(ctx context.Context, uid int64, sessionId int64, tokenType int32, token string) error

func (*UserUseCase) GetByID

func (u *UserUseCase) GetByID(ctx context.Context, uid int) (*model.User, error)

func (*UserUseCase) GetConfidentialitySettings

func (u *UserUseCase) GetConfidentialitySettings(ctx context.Context, uid int) (*entity.ConfidentialitySettings, error)

func (*UserUseCase) GetFileContentForSessionUser

func (u *UserUseCase) GetFileContentForSessionUser(ctx context.Context, uid int, fileID int64) ([]byte, string, error)

func (*UserUseCase) GetNotifySettings

func (u *UserUseCase) GetNotifySettings(ctx context.Context, notifyType int, uid int) (*entity.NotifySettings, error)

func (*UserUseCase) GetPushNotificationSettings

func (u *UserUseCase) GetPushNotificationSettings(ctx context.Context, uid int) (bool, error)

func (*UserUseCase) GetUserProfile

func (u *UserUseCase) GetUserProfile(ctx context.Context, uid int) (*model.User, error)

func (*UserUseCase) SearchUsers

func (u *UserUseCase) SearchUsers(ctx context.Context, query string, page, pageSize int32) ([]*domain.User, int32, error)

func (*UserUseCase) SearchUsersByQuery

func (u *UserUseCase) SearchUsersByQuery(ctx context.Context, query string, uid int, limit int) ([]*model.User, error)

func (*UserUseCase) StatFileForSessionUser

func (u *UserUseCase) StatFileForSessionUser(ctx context.Context, uid int, fileID int64) (bucket string, objectKey string, stat *minio.FileStatInfo, filename string, err error)

func (*UserUseCase) UpdateAccountPersonal

func (u *UserUseCase) UpdateAccountPersonal(ctx context.Context, uid int, fields map[string]any) error

func (*UserUseCase) UpdateAccountUsername

func (u *UserUseCase) UpdateAccountUsername(ctx context.Context, uid int, username string) error

func (*UserUseCase) UpdateConfidentialitySettings

func (u *UserUseCase) UpdateConfidentialitySettings(ctx context.Context, uid int, data *entity.ConfidentialitySettings) error

func (*UserUseCase) UpdateNotifySettings

func (u *UserUseCase) UpdateNotifySettings(ctx context.Context, notifyType int, uid int, data *entity.NotifySettings) error

func (*UserUseCase) UpdatePushNotificationSettings

func (u *UserUseCase) UpdatePushNotificationSettings(ctx context.Context, uid int, enabled bool) error

func (*UserUseCase) UploadProfilePhoto

func (u *UserUseCase) UploadProfilePhoto(ctx context.Context, userId int, fileID int64) (int64, error)

func (*UserUseCase) WebPushInit

func (u *UserUseCase) WebPushInit(ctx context.Context, uid int64, sessionId int64, webPush *entity.WebPush) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL