Documentation
¶
Index ¶
- type Channel
- func (c *Channel) AddParticipant(user User)
- func (c *Channel) Category() ChannelCategory
- func (c *Channel) Description() string
- func (c *Channel) ID() string
- func (c *Channel) Memberships() []Membership
- func (c *Channel) Messages() []Message
- func (c *Channel) Name() string
- func (c *Channel) NewMessage(text string, senderID string, timestamp time.Time) (*Message, *[]Membership, error)
- func (c *Channel) SendMessage(message Message)
- func (c *Channel) SetCategory(category ChannelCategory)
- func (c *Channel) SetDescription(description string)
- func (c *Channel) SetID(id string)
- func (c *Channel) SetMemberships(memberships []Membership)
- func (c *Channel) SetMessages(messages []Message)
- func (c *Channel) SetName(name string)
- func (c *Channel) SetState(state ChannelState)
- func (c *Channel) State() ChannelState
- func (c *Channel) ValidateMembership(uid string) (User, error)
- type ChannelCategory
- type ChannelConfig
- type ChannelState
- type Factory
- func (f Factory) NewChannel() Channel
- func (f Factory) NewMessage() Message
- func (f Factory) NewUser(name string) User
- func (f Factory) UnmarshalChannelFromDatabase(id string, description string, name string, state ChannelState, ...) (*Channel, error)
- func (f Factory) UnmarshalMembershipFromDatabase(id string, role MembershipRole, status MembershipStatus, channel Channel, ...) (*Membership, error)
- func (f Factory) UnmarshalUserFromDatabase(id string, name string) (*User, error)
- type Membership
- func (m *Membership) CanReceiveMessage() bool
- func (m *Membership) Channel() Channel
- func (m *Membership) ID() string
- func (m *Membership) Role() MembershipRole
- func (m *Membership) SetChannel(channel Channel)
- func (m *Membership) SetID(id string)
- func (m *Membership) SetRole(role MembershipRole)
- func (m *Membership) SetStatus(status MembershipStatus)
- func (m *Membership) SetUser(user User)
- func (m *Membership) Status() MembershipStatus
- func (m *Membership) User() User
- type MembershipRole
- type MembershipStatus
- type Message
- type MessageContent
- type MessageHeaders
- type Recipient
- func (a *Recipient) MessageID() string
- func (a *Recipient) SetMessageID(id string)
- func (a *Recipient) SetStatus(status string)
- func (a *Recipient) SetStatusAt(time time.Time)
- func (a *Recipient) SetUserID(id string)
- func (a *Recipient) Status() string
- func (a *Recipient) StatusAt() time.Time
- func (a *Recipient) User() User
- func (a *Recipient) UserID() string
- type Repository
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Channel ¶
type Channel struct {
// contains filtered or unexported fields
}
func (*Channel) AddParticipant ¶
func (*Channel) Category ¶
func (c *Channel) Category() ChannelCategory
func (*Channel) Description ¶
func (*Channel) Memberships ¶
func (c *Channel) Memberships() []Membership
func (*Channel) NewMessage ¶
func (c *Channel) NewMessage(text string, senderID string, timestamp time.Time) (*Message, *[]Membership, error)
New Message receives a text. It returns the new message and the memberships that should receive it
func (*Channel) SendMessage ¶
func (*Channel) SetCategory ¶
func (c *Channel) SetCategory(category ChannelCategory)
func (*Channel) SetDescription ¶
func (*Channel) SetMemberships ¶
func (c *Channel) SetMemberships(memberships []Membership)
func (*Channel) SetMessages ¶
func (*Channel) SetState ¶
func (c *Channel) SetState(state ChannelState)
func (*Channel) State ¶
func (c *Channel) State() ChannelState
type ChannelCategory ¶
type ChannelCategory string
ChannelCategory is an enum of channel categories.
const ( // ChannelCategoryP2P is a a value denoting 'p2p channel. // PEER is only between two people ChannelCategoryP2P ChannelCategory = "PEER" // ChannelCategoryGroup is a a value denoting group channel. // Group is where users can send messages to each other ChannelCategoryGroup ChannelCategory = "GROUP" // ChannelCategoryChannel is a a value denoting group channel. // Channel is where only approved users can send messages ChannelCategoryChannel ChannelCategory = "CHANNEL" )
func (ChannelCategory) String ¶
func (t ChannelCategory) String() string
type ChannelConfig ¶
type ChannelConfig struct {
// contains filtered or unexported fields
}
func (*ChannelConfig) Flag ¶
func (c *ChannelConfig) Flag() bool
func (*ChannelConfig) MaxMessageLength ¶
func (c *ChannelConfig) MaxMessageLength() int
func (*ChannelConfig) Reactions ¶
func (c *ChannelConfig) Reactions() bool
func (*ChannelConfig) Replies ¶
func (c *ChannelConfig) Replies() bool
func (*ChannelConfig) Threads ¶
func (c *ChannelConfig) Threads() bool
func (*ChannelConfig) TypingEvents ¶
func (c *ChannelConfig) TypingEvents() bool
func (*ChannelConfig) Uploads ¶
func (c *ChannelConfig) Uploads() bool
type ChannelState ¶
type ChannelState string
ChannelState represents information on channel state, such as an indication Channel is suspended/soft-deleted.
const ( // StateOK indicates normal channel. StateOK ChannelState = "OK" // StateSuspended indicates suspended channel. StateSuspended ChannelState = "SUSPENDED" // StateDeleted indicates soft-deleted channel. StateDeleted ChannelState = "DELETED" // StateUndefined indicates state which has not been set explicitly. StateUndefined ChannelState = "UNDEFINED" )
func (ChannelState) String ¶
func (o ChannelState) String() string
type Factory ¶
type Factory struct{}
func NewFactory ¶
func (Factory) NewChannel ¶
func (Factory) NewMessage ¶
func (Factory) UnmarshalChannelFromDatabase ¶
func (f Factory) UnmarshalChannelFromDatabase( id string, description string, name string, state ChannelState, category ChannelCategory, ) (*Channel, error)
func (Factory) UnmarshalMembershipFromDatabase ¶
func (f Factory) UnmarshalMembershipFromDatabase( id string, role MembershipRole, status MembershipStatus, channel Channel, user User, ) (*Membership, error)
type Membership ¶
type Membership struct {
// contains filtered or unexported fields
}
func (*Membership) CanReceiveMessage ¶
func (m *Membership) CanReceiveMessage() bool
func (*Membership) Channel ¶
func (m *Membership) Channel() Channel
func (*Membership) ID ¶
func (m *Membership) ID() string
func (*Membership) Role ¶
func (m *Membership) Role() MembershipRole
func (*Membership) SetChannel ¶
func (m *Membership) SetChannel(channel Channel)
func (*Membership) SetID ¶
func (m *Membership) SetID(id string)
func (*Membership) SetRole ¶
func (m *Membership) SetRole(role MembershipRole)
func (*Membership) SetStatus ¶
func (m *Membership) SetStatus(status MembershipStatus)
func (*Membership) SetUser ¶
func (m *Membership) SetUser(user User)
func (*Membership) Status ¶
func (m *Membership) Status() MembershipStatus
func (*Membership) User ¶
func (m *Membership) User() User
type MembershipRole ¶
type MembershipRole string
const ( MembershipRoleAdmin MembershipRole = "ADMIN" MembershipRoleModerator MembershipRole = "MODERATOR" MembershipRoleOwner MembershipRole = "OWNER" )
func (MembershipRole) String ¶
func (m MembershipRole) String() string
type MembershipStatus ¶
type MembershipStatus string
const ( MembershipStatusOk MembershipStatus = "OK" MembershipStatusBanned MembershipStatus = "BANNED" )
type Message ¶
type Message struct {
// contains filtered or unexported fields
}
func (*Message) Content ¶
func (m *Message) Content() MessageContent
func (*Message) Headers ¶
func (m *Message) Headers() MessageHeaders
func (*Message) Recipients ¶
type MessageContent ¶
type MessageContent struct {
// contains filtered or unexported fields
}
func (MessageContent) Text ¶
func (m MessageContent) Text() string
type MessageHeaders ¶
type MessageHeaders struct{}
type Recipient ¶
type Recipient struct {
// contains filtered or unexported fields
}
func (*Recipient) SetMessageID ¶
func (*Recipient) SetStatusAt ¶
type Repository ¶
type Repository interface {
CreateUser(ctx context.Context, user *User) error
GetUser(ctx context.Context, id string) (*User, error)
GetUsers(ctx context.Context) (*[]User, error)
CreateChannel(ctx context.Context, channel *Channel) error
GetChannel(ctx context.Context, id string, preload bool) (*Channel, error)
GetChannels(ctx context.Context) (*[]Channel, error)
UpdateChannel(
ctx context.Context,
cid string,
updateFn func(h *Channel) (*Channel, error),
) error
GetAllMemberships(ctx context.Context) ([]string, error)
CreateMembership(ctx context.Context, membership *Membership) error
GetMembership(ctx context.Context, id string, preload bool) (*Membership, error)
GetUserMemberships(ctx context.Context, userID string) (*[]Membership, error)
GetUserChannelMembership(ctx context.Context, userID, channelID string) (*Membership, error)
UpdateMembership(
ctx context.Context,
cid string,
updateFn func(h *Membership) (*Membership, error),
) error
CreateMessage(ctx context.Context, message *Message, userID, channelID string) error
CreateRecipient(ctx context.Context, resp *Recipient) error
}
Click to show internal directories.
Click to hide internal directories.