Documentation
¶
Index ¶
- func NewRedisPool(options conf.RedisConf) *redis.Pool
- type Bus
- type Chat
- type ChatLog
- type MemberInfo
- type MongoChat
- func (c *MongoChat) AddMessage(message models.Message) (*models.Message, *conf.ApiError)
- func (c *MongoChat) AddReaction(profileID string, messageID string, reaction string) *conf.ApiError
- func (c *MongoChat) AddRoomMember(roomID string, memberID string) *conf.ApiError
- func (c *MongoChat) CreateMemberInfo(memberInfo models.MemberInfo) (*models.MemberInfo, *conf.ApiError)
- func (c *MongoChat) CreateRoom(room models.Room) (*models.Room, *conf.ApiError)
- func (c *MongoChat) DeleteAllMembersInfo(roomID string) *conf.ApiError
- func (c *MongoChat) DeleteMemberInfo(roomID string, memberID string) *conf.ApiError
- func (c *MongoChat) DeleteRoom(roomID string) *conf.ApiError
- func (c *MongoChat) EditMessage(profileID string, messageID string, body string) *conf.ApiError
- func (c *MongoChat) GetAllMembersInfo(roomID string) ([]models.MemberInfo, *conf.ApiError)
- func (c *MongoChat) GetAllRoomsInfo(memberID string) ([]models.MemberInfo, *conf.ApiError)
- func (c *MongoChat) GetMemberInfo(roomID string, memberID string) (*models.MemberInfo, *conf.ApiError)
- func (c *MongoChat) GetMessages(profileID string, roomID string, from time.Time, limit int) ([]models.Message, *conf.ApiError)
- func (c *MongoChat) GetRoom(memberID string, roomID string) (*models.Room, *conf.ApiError)
- func (c *MongoChat) GetRooms(memberID string) ([]models.Room, *conf.ApiError)
- func (c *MongoChat) GetRoomsIn(roomIDs []string) ([]models.Room, *conf.ApiError)
- func (c *MongoChat) IsRoomMember(roomID string, memberID string) *conf.ApiError
- func (c *MongoChat) OpenedRoomsCount(memberID string) (int, *conf.ApiError)
- func (c *MongoChat) RemoveRoomMember(roomID string, memberID string) *conf.ApiError
- func (c *MongoChat) TouchRoomMember(roomID string, memberID string) *conf.ApiError
- func (c *MongoChat) UpdateLastMessageRoomMember(roomID string, memberID string) *conf.ApiError
- func (c *MongoChat) UpdateLastReadTime(roomID string, memberID string) *conf.ApiError
- type RedisBus
- type RedisBusOptions
- type RedisCache
- type RedisCacheOptions
- type RoomCache
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Chat ¶
type Chat interface {
OpenedRoomsCount(memberID string) (int, *conf.ApiError)
CreateRoom(room models.Room) (*models.Room, *conf.ApiError)
GetRooms(memberID string) ([]models.Room, *conf.ApiError)
GetRoomsIn(roomIDs []string) ([]models.Room, *conf.ApiError)
GetRoom(memberID string, roomID string) (*models.Room, *conf.ApiError)
DeleteRoom(roomID string) *conf.ApiError
AddRoomMember(roomID string, memberID string) *conf.ApiError
RemoveRoomMember(roomID string, memberID string) *conf.ApiError
IsRoomMember(roomID string, memberID string) *conf.ApiError
}
type ChatLog ¶
type ChatLog interface {
AddMessage(message models.Message) (*models.Message, *conf.ApiError)
GetMessages(profileID string, roomID string, from time.Time, limit int) ([]models.Message, *conf.ApiError)
AddReaction(profileID string, messageID string, reaction string) *conf.ApiError
EditMessage(profileID string, messageID string, body string) *conf.ApiError
}
type MemberInfo ¶
type MemberInfo interface {
CreateMemberInfo(memberInfo models.MemberInfo) (*models.MemberInfo, *conf.ApiError)
GetMemberInfo(roomID string, memberID string) (*models.MemberInfo, *conf.ApiError)
GetAllMembersInfo(roomID string) ([]models.MemberInfo, *conf.ApiError)
UpdateLastReadTime(roomID string, memberID string) *conf.ApiError
DeleteMemberInfo(roomID string, memberID string) *conf.ApiError
DeleteAllMembersInfo(roomID string) *conf.ApiError
GetAllRoomsInfo(memberID string) ([]models.MemberInfo, *conf.ApiError)
}
type MongoChat ¶
type MongoChat struct {
// contains filtered or unexported fields
}
Chat Service manages chat rooms and their members.
func NewMongoChat ¶
Creates Chat Service. Initialises MongoDB connection.
func (*MongoChat) AddMessage ¶
Adds message to chat log to a given chat room by a given member.
func (*MongoChat) AddReaction ¶
func (*MongoChat) AddRoomMember ¶
Adds new member to a given chat room. Actual member info retrieved from account service. Additionally checks that current user is an owner of that room to update it.
func (*MongoChat) CreateMemberInfo ¶
func (c *MongoChat) CreateMemberInfo(memberInfo models.MemberInfo) (*models.MemberInfo, *conf.ApiError)
Creates Member Info and returns last version
func (*MongoChat) CreateRoom ¶
Save new RoomID into the MongoDB by setting current profile ID as an owner. Automatically adds current user to the chat room members.
func (*MongoChat) DeleteAllMembersInfo ¶
Cleanup Members Info by roomID
func (*MongoChat) DeleteMemberInfo ¶
Deletes Member Info by id
func (*MongoChat) DeleteRoom ¶
Deletes RoomID from the MongoDB by its owner.
func (*MongoChat) EditMessage ¶
func (*MongoChat) GetAllMembersInfo ¶
Returns all the members metadata by a given roomID
func (*MongoChat) GetAllRoomsInfo ¶
Returns all the rooms member metadata by a given memberID
func (*MongoChat) GetMemberInfo ¶
func (c *MongoChat) GetMemberInfo(roomID string, memberID string) (*models.MemberInfo, *conf.ApiError)
Returns current member info by id
func (*MongoChat) GetMessages ¶
func (c *MongoChat) GetMessages(profileID string, roomID string, from time.Time, limit int) ([]models.Message, *conf.ApiError)
Returns chat log page by a given start timestamp and limit. Additionally checks that current user is a member of that chat room.
func (*MongoChat) GetRoomsIn ¶
Returns all the ChatRooms by a given list of IDs
func (*MongoChat) IsRoomMember ¶
func (*MongoChat) OpenedRoomsCount ¶
Returns number of opened rooms for a given member
func (*MongoChat) RemoveRoomMember ¶
Updates current RoomID by removing a member with a specific id. Additionally checks that current user is an owner of that room to update it.
func (*MongoChat) TouchRoomMember ¶
Adds new member to a given chat room. Actual member info retrieved from account service. Additionally checks that current user is an owner of that room to update it.
func (*MongoChat) UpdateLastMessageRoomMember ¶
Adds new member to a given chat room. Actual member info retrieved from account service. Additionally checks that current user is an owner of that room to update it.
type RedisBus ¶
type RedisBus struct {
// contains filtered or unexported fields
}
func NewRedisBus ¶
func NewRedisBus(options RedisBusOptions) *RedisBus
func (*RedisBus) Unsubscribe ¶
type RedisBusOptions ¶
type RedisCache ¶
type RedisCache struct {
// contains filtered or unexported fields
}
func NewRedisCache ¶
func NewRedisCache(options RedisCacheOptions) *RedisCache
func (*RedisCache) EvictRoom ¶
func (c *RedisCache) EvictRoom(key string) error