db

package
v0.0.0-...-a9cc36f Latest Latest
Warning

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

Go to latest
Published: Mar 11, 2022 License: AGPL-3.0 Imports: 18 Imported by: 0

Documentation

Overview

Package db contains the database implementation for legato.

Index

Constants

View Source
const (
	GuildKindGuild = iota
	GuildKindRoom
	GuildKindDM
)
View Source
const (
	ChannelKindNormal = iota
	ChannelKindVoice
	ChannelKindCategory
)

Variables

View Source
var Migrations embed.FS

Functions

func TryWrap

func TryWrap(e error, msg string, args ...interface{}) error

func Wrap

func Wrap(e error, msg string, args ...interface{}) error

Types

type ChannelKind

type ChannelKind int16

type DB

type DB struct {
	Rdb      *redis.Client
	Postgres *pgxpool.Pool
	// contains filtered or unexported fields
}

DB is the database structure.

func New

func New(ctx context.Context, cfg *config.Config) (*DB, error)

New creates a new DB instance.

func (*DB) CreateChannel

func (db *DB) CreateChannel(ctx context.Context, guildID uint64, name string, kind ChannelKind) (models.Channel, error)

func (*DB) CreateGuild

func (db *DB) CreateGuild(ctx context.Context, name string, picture *string, ownerID uint64, type_ GuildKind) (models.Guild, error)

func (*DB) CreateUser

func (db *DB) CreateUser(ctx context.Context, email string, username string, passwordHash []byte) (uint64, error)

CreateUser saves a user to the database.

func (*DB) GetAuthStep

func (db *DB) GetAuthStep(ctx context.Context, sessionID string) (int, error)

func (*DB) GetChannel

func (db *DB) GetChannel(ctx context.Context)

func (*DB) GetChannelList

func (db *DB) GetChannelList(ctx context.Context, guildID uint64) ([]models.Channel, error)

func (*DB) GetGuildList

func (db *DB) GetGuildList(ctx context.Context, userID uint64) ([]models.GetGuildListRow, error)

func (*DB) GetGuildMember

func (db *DB) GetGuildMember(ctx context.Context)

func (*DB) GetGuildMembers

func (db *DB) GetGuildMembers(ctx context.Context, guildID uint64) ([]models.GetGuildMembersRow, error)

func (*DB) GetGuildsById

func (db *DB) GetGuildsById(ctx context.Context, guildIds []uint64) ([]models.Guild, error)

func (*DB) GetUserByEmail

func (db *DB) GetUserByEmail(ctx context.Context, email string) (models.GetUserByEmailRow, error)

func (*DB) GetUserByID

func (db *DB) GetUserByID(ctx context.Context, id uint64) (models.User, error)

func (*DB) GetUserForSession

func (db *DB) GetUserForSession(ctx context.Context, sessionID string) (uint64, error)

func (*DB) HasSharedGuilds

func (db *DB) HasSharedGuilds(ctx context.Context, user1 uint64, user2 uint64) (bool, error)

func (*DB) IsGuildMember

func (db *DB) IsGuildMember(ctx context.Context)

func (*DB) PublishAuth

func (db *DB) PublishAuth(ctx context.Context, sessionID string, event *gen.AuthMessage) error

func (*DB) PublishChatEvent

func (db *DB) PublishChatEvent(ctx context.Context, guildID uint64, event *chatv1.StreamEvent) error

func (*DB) PublishUserEvent

func (db *DB) PublishUserEvent(ctx context.Context, userID uint64, event *chatv1.StreamEvent) error

func (*DB) RemoveGuildFromList

func (db *DB) RemoveGuildFromList(ctx context.Context)

func (*DB) RemoveGuildMember

func (db *DB) RemoveGuildMember(ctx context.Context, guildID uint64, userID uint64, reason chatv1.LeaveReason) error

func (*DB) SaveSession

func (db *DB) SaveSession(ctx context.Context, sessionID string, token string, userID uint64) error

func (*DB) SetAuthStep

func (db *DB) SetAuthStep(ctx context.Context, sessionID string, step int) error

SetAuthStep saves to redis the auth session and step the user is on.

func (*DB) StreamChatEvents

func (db *DB) StreamChatEvents(ctx context.Context, userID uint64, guilds []uint64) chan *chatv1.StreamEvent

func (*DB) StreamUserSteps

func (db *DB) StreamUserSteps(ctx context.Context, sessionID string) chan *gen.AuthMessage

func (*DB) SubscribeStream

func (db *DB) SubscribeStream(ctx context.Context, userID uint64, topics ...string) error

SubscribeStream publishes a new command to subscribe a user to new topics.

type GuildKind

type GuildKind int16

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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