database

package
v0.0.0-...-ee364c6 Latest Latest
Warning

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

Go to latest
Published: May 6, 2024 License: MPL-2.0 Imports: 8 Imported by: 0

Documentation

Index

Constants

View Source
const (
	NOTE         chatType = "note"
	PRIVATE_CHAT chatType = "private"
	GROUP_CHAT   chatType = "group"
)

Variables

View Source
var ChatUsers = make(map[int64]ChatUser)
View Source
var Chats = make(map[int64]Chat)
View Source
var Messages = make(map[int64]MessageDatabase)
View Source
var Sessions = make(map[string]Session)
View Source
var Users = make(map[int64]User)

Functions

func SetDummyConnection

func SetDummyConnection()

func Setup

func Setup(conn *MongoConnection)

Types

type Chat

type Chat struct {
	ID            int64     `json:"id"`
	Type          chatType  `json:"type"`
	Name          string    `json:"name"`
	CreatedAt     time.Time `json:"createdAt"`
	LastUpdatedAt time.Time `json:"lastUpdatedAt"`
}

type ChatUser

type ChatUser struct {
	ID        int64     `json:"id"`
	ChatID    int64     `json:"chatID"`
	UserID    int64     `json:"userID"`
	CreatedAt time.Time `json:"createdAt"`
}

type Connection

type Connection interface {
	GetChat(id, userID int64) (*Chat, error)
	GetChatsByUserID(userID int64) ([]Chat, error)
	GetPrivateChatByUserIDs(userID1, userID2 int64) (*Chat, error)
	SetChat(chat *Chat, userIDs ...int64) (*Chat, error)
	GetMessagesByChatID(chatID, fromMessageID, toMessageID int64, limit int) ([]Message, error)
	SetMessage(message *MessageDatabase) (*MessageDatabase, error)
	GetUser(id int64) (*User, error)
	GetUserByUsername(username string) (*User, error)
	GetUsersByChatID(chatID int64) ([]User, error)
	SetUser(user *User) (*User, error)
	SearchUsers(username string, searchUserID int64) ([]User, error)
	RenameUser(id int64, displayName string) error
	GetSession(id string) *Session
	GetSessionByUserID(userID int64) (*Session, error)
	SetSession(session Session)
	CheckSession(id string) (*Session, bool)
	DeleteSession(id string)
}

type Message

type Message struct {
	ID              int64     `json:"id"`
	UserID          int64     `json:"userID"`
	ChatID          int64     `json:"chatID"`
	Content         string    `json:"content"`
	CreatedAt       time.Time `json:"createdAt"`
	LastUpdatedAt   time.Time `json:"lastUpdatedAt"`
	UserDisplayName string    `json:"userDisplayName"`
}

type MessageDatabase

type MessageDatabase struct {
	ID            int64     `json:"id"`
	UserID        int64     `json:"userID"`
	ChatID        int64     `json:"chatID"`
	Content       string    `json:"content"`
	CreatedAt     time.Time `json:"createdAt"`
	LastUpdatedAt time.Time `json:"lastUpdatedAt"`
}

type MongoConnection

type MongoConnection struct {
	*sql.DB
}

func GetConnection

func GetConnection() (*MongoConnection, error)

func (*MongoConnection) CheckSession

func (conn *MongoConnection) CheckSession(id string) (*Session, bool)

func (*MongoConnection) DeleteSession

func (conn *MongoConnection) DeleteSession(id string)

func (*MongoConnection) GetChat

func (conn *MongoConnection) GetChat(id, userID int64) (*Chat, error)

func (*MongoConnection) GetChatsByUserID

func (conn *MongoConnection) GetChatsByUserID(userID int64) ([]Chat, error)

func (*MongoConnection) GetMessagesByChatID

func (conn *MongoConnection) GetMessagesByChatID(chatID, fromMessageID, toMessageID int64, limit int) ([]Message, error)

func (*MongoConnection) GetPrivateChatByUserIDs

func (conn *MongoConnection) GetPrivateChatByUserIDs(userID1, userID2 int64) (*Chat, error)

func (*MongoConnection) GetSession

func (conn *MongoConnection) GetSession(id string) *Session

func (*MongoConnection) GetSessionByUserID

func (conn *MongoConnection) GetSessionByUserID(userID int64) (*Session, error)

func (*MongoConnection) GetUser

func (conn *MongoConnection) GetUser(id int64) (*User, error)

func (*MongoConnection) GetUserByUsername

func (conn *MongoConnection) GetUserByUsername(username string) (*User, error)

func (*MongoConnection) GetUsersByChatID

func (conn *MongoConnection) GetUsersByChatID(chatID int64) ([]User, error)

func (*MongoConnection) RenameUser

func (conn *MongoConnection) RenameUser(id int64, displayName string) error

func (*MongoConnection) SearchUsers

func (conn *MongoConnection) SearchUsers(username string, searchUserID int64) ([]User, error)

func (*MongoConnection) SetChat

func (conn *MongoConnection) SetChat(chat *Chat, userIDs ...int64) (*Chat, error)

func (*MongoConnection) SetMessage

func (conn *MongoConnection) SetMessage(message *MessageDatabase) (*MessageDatabase, error)

func (*MongoConnection) SetSession

func (conn *MongoConnection) SetSession(session Session)

func (*MongoConnection) SetUser

func (conn *MongoConnection) SetUser(user *User) (*User, error)

type Session

type Session struct {
	ID         string    `json:"id"`
	UserID     int64     `json:"userID"`
	ExpiryDate time.Time `json:"expiryDate"`
}

type User

type User struct {
	ID            int64     `json:"id"`
	Username      string    `json:"username"`
	DisplayName   string    `json:"displayName"`
	Key           []byte    `json:"key"`
	CreatedAt     time.Time `json:"createdAt"`
	LastUpdatedAt time.Time `json:"LastUpdatedAt"`
}

Jump to

Keyboard shortcuts

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