readmodel package - github.com/Southclaws/cj/admin/readmodel - Go Packages

readmodel

package
v0.0.0-...-095e728 Latest Latest
Warning

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

Go to latest
Published: Jul 27, 2026 License: GPL-3.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrChatFilterRequired = errors.New("a userId or a search query is required to browse chat history")
View Source
var ErrDiscordNotReady = errors.New("discord session is not ready")
View Source
var ErrMemberCacheNotReady = errors.New("the member cache has not been populated yet")

Functions

This section is empty.

Types

type ActionRunsProvider

type ActionRunsProvider struct {
	// contains filtered or unexported fields
}

func NewActionRunsProvider

func NewActionRunsProvider(storer storage.Storer) *ActionRunsProvider

func (*ActionRunsProvider) Get

func (*ActionRunsProvider) List

func (p *ActionRunsProvider) List(limit int) ([]storage.ActionRun, error)

type AuditLogEntry

type AuditLogEntry struct {
	ID         string    `json:"id"`
	ActionType int       `json:"actionType"`
	ActionName string    `json:"actionName"`
	TargetID   string    `json:"targetId,omitempty"`
	UserID     string    `json:"userId,omitempty"`
	User       PersonRef `json:"user"`
	Reason     string    `json:"reason,omitempty"`
}

type Channel

type Channel struct {
	ID       string `json:"id"`
	Name     string `json:"name"`
	Type     string `json:"type"`
	Position int    `json:"position"`
}

type ChannelCategory

type ChannelCategory struct {
	ID       string    `json:"id"`
	Name     string    `json:"name"`
	Position int       `json:"position"`
	Channels []Channel `json:"channels"`
}

type ChatLogWithPerson

type ChatLogWithPerson struct {
	storage.ChatLog
	Person PersonRef `json:"person"`
}

type ChatProvider

type ChatProvider struct {
	// contains filtered or unexported fields
}

func NewChatProvider

func NewChatProvider(storer storage.Storer, discord *DiscordProvider) *ChatProvider

func (*ChatProvider) GetByID

func (p *ChatProvider) GetByID(messageID string) (ChatLogWithPerson, bool, error)

func (*ChatProvider) Messages

func (p *ChatProvider) Messages(discordUserID, query string) ([]ChatLogWithPerson, error)

type CommandsProvider

type CommandsProvider struct {
	// contains filtered or unexported fields
}

func NewCommandsProvider

func NewCommandsProvider(manager *commands.CommandManager) *CommandsProvider

func (*CommandsProvider) List

func (p *CommandsProvider) List() []string

type ConfigField

type ConfigField struct {
	Name string `json:"name"`
	Set  bool   `json:"set"`
}

type ConfigStatus

type ConfigStatus struct {
	DatabaseEnabled bool          `json:"databaseEnabled"`
	Fields          []ConfigField `json:"fields"`
}

type ConfigStatusProvider

type ConfigStatusProvider struct {
	// contains filtered or unexported fields
}

func NewConfigStatusProvider

func NewConfigStatusProvider(cfg *types.Config) *ConfigStatusProvider

func (*ConfigStatusProvider) Status

func (p *ConfigStatusProvider) Status() ConfigStatus

type DiscordProvider

type DiscordProvider struct {
	// contains filtered or unexported fields
}

func NewDiscordProvider

func NewDiscordProvider(session *discord.Session) *DiscordProvider

func (*DiscordProvider) AuditLog

func (p *DiscordProvider) AuditLog(limit int) ([]AuditLogEntry, error)

func (*DiscordProvider) Channels

func (p *DiscordProvider) Channels() ([]ChannelCategory, error)

func (*DiscordProvider) Guild

func (p *DiscordProvider) Guild() (Guild, error)

func (*DiscordProvider) MatchMembers

func (p *DiscordProvider) MatchMembers(query string, max int) []PersonRef

func (*DiscordProvider) Member

func (p *DiscordProvider) Member(id string) (Member, error)

func (*DiscordProvider) MemberPermissions

func (p *DiscordProvider) MemberPermissions(id string) (MemberPermissions, error)

func (*DiscordProvider) Members

func (p *DiscordProvider) Members(query string, limit, offset int) (MembersPage, error)

func (*DiscordProvider) PersonRef

func (p *DiscordProvider) PersonRef(id string) PersonRef

func (*DiscordProvider) Roles

func (p *DiscordProvider) Roles() ([]Role, error)

type Guild

type Guild struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	OwnerID     string `json:"ownerId"`
	MemberCount int    `json:"memberCount"`
	Icon        string `json:"icon,omitempty"`
}

type JobsProvider

type JobsProvider struct {
	// contains filtered or unexported fields
}

func NewJobsProvider

func NewJobsProvider(hb *heartbeat.Heartbeat) *JobsProvider

func (*JobsProvider) List

func (p *JobsProvider) List() []heartbeat.JobStatus

type LeaderboardsProvider

type LeaderboardsProvider struct {
	// contains filtered or unexported fields
}

func NewLeaderboardsProvider

func NewLeaderboardsProvider(storer storage.Storer, discord *DiscordProvider) *LeaderboardsProvider

func (*LeaderboardsProvider) TopMessages

func (p *LeaderboardsProvider) TopMessages(limit int) ([]TopMessagesEntry, error)

func (*LeaderboardsProvider) TopReactions

func (p *LeaderboardsProvider) TopReactions(limit int, reaction string) ([]TopReactionsEntry, error)

func (*LeaderboardsProvider) UserRank

func (p *LeaderboardsProvider) UserRank(discordUserID string) (int, error)

type Member

type Member struct {
	ID         string   `json:"id"`
	Username   string   `json:"username"`
	Nickname   string   `json:"nickname,omitempty"`
	AvatarURL  string   `json:"avatarUrl,omitempty"`
	Roles      []string `json:"roles"`
	JoinedAt   string   `json:"joinedAt,omitempty"`
	CJCanActOn bool     `json:"cjCanActOn"`
	Reasons    []string `json:"reasons,omitempty"`
}

type MemberPermissions

type MemberPermissions struct {
	MemberID        string   `json:"memberId"`
	Permissions     []string `json:"permissions"`
	IsAdministrator bool     `json:"isAdministrator"`
}

type MembersPage

type MembersPage struct {
	Members  []Member `json:"members"`
	Total    int      `json:"total"`
	Limit    int      `json:"limit"`
	Offset   int      `json:"offset"`
	CachedAt string   `json:"cachedAt"`
}

type PersonRef

type PersonRef struct {
	ID        string `json:"id"`
	Username  string `json:"username,omitempty"`
	Nickname  string `json:"nickname,omitempty"`
	AvatarURL string `json:"avatarUrl,omitempty"`
	Known     bool   `json:"known"`
}

type Profile

type Profile struct {
	DiscordUserID  string             `json:"discordUserId"`
	Member         *Member            `json:"member,omitempty"`
	Permissions    *MemberPermissions `json:"permissions,omitempty"`
	User           *storage.User      `json:"user,omitempty"`
	RecentMessages []ProfileMessage   `json:"recentMessages"`
	MessageCount   int                `json:"messageCount"`
	Rank           int                `json:"rank"`
}

type ProfileMessage

type ProfileMessage struct {
	Timestamp   int64  `json:"timestamp"`
	ChannelID   string `json:"channelId"`
	ChannelName string `json:"channelName"`
	Message     string `json:"message"`
	MessageID   string `json:"messageId"`
}

type ProfileProvider

type ProfileProvider struct {
	// contains filtered or unexported fields
}

func NewProfileProvider

func NewProfileProvider(storer storage.Storer, discord *DiscordProvider, users *UsersProvider, leaderboards *LeaderboardsProvider) *ProfileProvider

func (*ProfileProvider) Get

func (p *ProfileProvider) Get(discordUserID string) (Profile, bool, error)

type Role

type Role struct {
	ID          string   `json:"id"`
	Name        string   `json:"name"`
	Color       int      `json:"color"`
	Position    int      `json:"position"`
	Managed     bool     `json:"managed"`
	MemberCount int      `json:"memberCount"`
	Permissions []string `json:"permissions"`
	CJCanManage bool     `json:"cjCanManage"`
	Reasons     []string `json:"reasons,omitempty"`
}

type ServiceStatus

type ServiceStatus struct {
	Name   string `json:"name"`
	Status string `json:"status"`
	Detail string `json:"detail,omitempty"`
}

type ServicesProvider

type ServicesProvider struct {
	// contains filtered or unexported fields
}

func NewServicesProvider

func NewServicesProvider(cfg *types.Config, storer storage.Storer, session *discord.Session) *ServicesProvider

func (*ServicesProvider) Check

func (p *ServicesProvider) Check(name string) (ServiceStatus, error)

func (*ServicesProvider) List

func (p *ServicesProvider) List() []ServiceStatus

type SettingsProvider

type SettingsProvider struct {
	// contains filtered or unexported fields
}

func NewSettingsProvider

func NewSettingsProvider(storer storage.Storer) *SettingsProvider

func (*SettingsProvider) Get

func (*SettingsProvider) Set

type Status

type Status struct {
	Version   string    `json:"version"`
	StartedAt time.Time `json:"startedAt"`
	Uptime    string    `json:"uptime"`
}

type StatusProvider

type StatusProvider struct {
	// contains filtered or unexported fields
}

func NewStatusProvider

func NewStatusProvider(version string, startedAt time.Time) *StatusProvider

func (*StatusProvider) Status

func (p *StatusProvider) Status() Status

type TopMessagesEntry

type TopMessagesEntry struct {
	Person   PersonRef `json:"person"`
	Messages int       `json:"messages"`
}

type TopReactionsEntry

type TopReactionsEntry struct {
	Person   PersonRef `json:"person"`
	Counter  int       `json:"counter"`
	Reaction string    `json:"reaction"`
}

type UserWithPerson

type UserWithPerson struct {
	storage.User
	Person PersonRef `json:"person"`
}

type UsersPage

type UsersPage struct {
	Users  []UserWithPerson `json:"users"`
	Total  int              `json:"total"`
	Limit  int              `json:"limit"`
	Offset int              `json:"offset"`
}

type UsersProvider

type UsersProvider struct {
	// contains filtered or unexported fields
}

func NewUsersProvider

func NewUsersProvider(storer storage.Storer, discord *DiscordProvider) *UsersProvider

func (*UsersProvider) Get

func (p *UsersProvider) Get(discordUserID string) (storage.User, bool, error)

func (*UsersProvider) List

func (p *UsersProvider) List(query string, limit, offset int) (UsersPage, error)

Jump to

Keyboard shortcuts

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