Documentation
¶
Index ¶
- func MigrateUserStoreFromJsonToDatabase(logger *zap.Logger) error
- type SQLiteWrapper
- type UserStoreDB
- func (udb *UserStoreDB) AddUser(user *models.UserData) error
- func (udb *UserStoreDB) Close() error
- func (udb *UserStoreDB) CreateTable() error
- func (udb *UserStoreDB) CreateWebUser(user *models.WebUser) error
- func (udb *UserStoreDB) CreateWebUsersTable() error
- func (udb *UserStoreDB) DeleteUser(user *models.UserData) error
- func (udb *UserStoreDB) DeleteWebUser(id string) error
- func (udb *UserStoreDB) GetAllVerifiedWebUsers() ([]*models.WebUser, error)
- func (udb *UserStoreDB) GetUser(chatID int64) (*models.UserData, error)
- func (udb *UserStoreDB) GetWebUserByEmail(email string) (*models.WebUser, error)
- func (udb *UserStoreDB) GetWebUserByID(id string) (*models.WebUser, error)
- func (udb *UserStoreDB) GetWebUserByLinkToken(token string) (*models.WebUser, error)
- func (udb *UserStoreDB) GetWebUserByResetToken(token string) (*models.WebUser, error)
- func (udb *UserStoreDB) GetWebUserByVerifyToken(token string) (*models.WebUser, error)
- func (udb *UserStoreDB) ReadUserStore() (*models.UserStore, error)
- func (udb *UserStoreDB) UpdateUser(user *models.UserData) error
- func (udb *UserStoreDB) UpdateWebUser(user *models.WebUser) error
- func (udb *UserStoreDB) WriteUserStore(userStore *models.UserStore) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func MigrateUserStoreFromJsonToDatabase ¶
Read user store and convert to sqlite database
Types ¶
type SQLiteWrapper ¶
type SQLiteWrapper struct {
*UserStoreDB // Embed the existing SQLite implementation
}
SQLiteWrapper wraps a UserStoreDB and implements the DatabaseIF interface. Note: We place this in the 'database' package to access UserStoreDB unexported fields if needed in future, but we need to be careful with package naming and imports.
func NewSQLiteWrapper ¶
func NewSQLiteWrapper(dbPath string, logger *zap.Logger) (*SQLiteWrapper, error)
NewSQLiteWrapper creates a new SQLiteWrapper, initializes the database, and creates the table if needed.
func (*SQLiteWrapper) Close ¶
func (sw *SQLiteWrapper) Close() error
Close the database connection. This implements the Close method required by DatabaseIF. It wraps the existing Close method from UserStoreDB which doesn't return an error.
func (*SQLiteWrapper) Ping ¶
func (sw *SQLiteWrapper) Ping() error
Ping checks if the database connection is still active. For SQLite, we check if a simple query executes without error.
type UserStoreDB ¶
func CreateDatabaseConnection ¶
func CreateDatabaseConnection(dbName string, logger *zap.Logger) (*UserStoreDB, error)
Connect to the database with connection pooling
func (*UserStoreDB) AddUser ¶
func (udb *UserStoreDB) AddUser(user *models.UserData) error
Add user to the database with retry mechanism
func (*UserStoreDB) CreateTable ¶
func (udb *UserStoreDB) CreateTable() error
Create *models.UserData table in database
func (*UserStoreDB) CreateWebUser ¶
func (udb *UserStoreDB) CreateWebUser(user *models.WebUser) error
CreateWebUser inserts a new web user record.
func (*UserStoreDB) CreateWebUsersTable ¶
func (udb *UserStoreDB) CreateWebUsersTable() error
CreateWebUsersTable creates the web_users table and migrates any missing columns/indexes.
func (*UserStoreDB) DeleteUser ¶
func (udb *UserStoreDB) DeleteUser(user *models.UserData) error
Delete user from the database with retry mechanism
func (*UserStoreDB) DeleteWebUser ¶
func (udb *UserStoreDB) DeleteWebUser(id string) error
DeleteWebUser removes a web user by UUID.
func (*UserStoreDB) GetAllVerifiedWebUsers ¶
func (udb *UserStoreDB) GetAllVerifiedWebUsers() ([]*models.WebUser, error)
GetAllVerifiedWebUsers returns all web users whose email has been verified.
func (*UserStoreDB) GetUser ¶
func (udb *UserStoreDB) GetUser(chatID int64) (*models.UserData, error)
Get user from the database by chat_id
func (*UserStoreDB) GetWebUserByEmail ¶
func (udb *UserStoreDB) GetWebUserByEmail(email string) (*models.WebUser, error)
GetWebUserByEmail retrieves a web user by email address.
func (*UserStoreDB) GetWebUserByID ¶
func (udb *UserStoreDB) GetWebUserByID(id string) (*models.WebUser, error)
GetWebUserByID retrieves a web user by UUID.
func (*UserStoreDB) GetWebUserByLinkToken ¶
func (udb *UserStoreDB) GetWebUserByLinkToken(token string) (*models.WebUser, error)
GetWebUserByLinkToken retrieves a web user by a non-expired Telegram link token.
func (*UserStoreDB) GetWebUserByResetToken ¶
func (udb *UserStoreDB) GetWebUserByResetToken(token string) (*models.WebUser, error)
GetWebUserByResetToken retrieves a web user by a non-expired password reset token.
func (*UserStoreDB) GetWebUserByVerifyToken ¶
func (udb *UserStoreDB) GetWebUserByVerifyToken(token string) (*models.WebUser, error)
GetWebUserByVerifyToken retrieves a web user by a non-expired email verification token.
func (*UserStoreDB) ReadUserStore ¶
func (udb *UserStoreDB) ReadUserStore() (*models.UserStore, error)
Read all users from the database
func (*UserStoreDB) UpdateUser ¶
func (udb *UserStoreDB) UpdateUser(user *models.UserData) error
Update user in the database with retry mechanism
func (*UserStoreDB) UpdateWebUser ¶
func (udb *UserStoreDB) UpdateWebUser(user *models.WebUser) error
UpdateWebUser updates all mutable fields of a web user record.
func (*UserStoreDB) WriteUserStore ¶
func (udb *UserStoreDB) WriteUserStore(userStore *models.UserStore) error
Write *models.UserStore to the database