raito.plugins.roles.providers.sql.sqlalchemy moduleΒΆ

class raito.plugins.roles.providers.sql.sqlalchemy.SQLAlchemyRoleProvider(storage, session_factory=None)[source]ΒΆ

Bases: IRoleProvider

Base SQLAlchemy role provider.

Parameters:
  • storage (SQLAlchemyStorage)

  • session_factory (async_sessionmaker[AsyncSession] | None)

async get_role(bot_id, user_id)[source]ΒΆ

Get the role for a specific user.

Parameters:
  • bot_id (int) – The Telegram bot ID

  • user_id (int) – The Telegram user ID

Returns:

The role slug or None if not found

Return type:

str | None

async migrate()[source]ΒΆ

Initialize the storage backend (create tables, etc.).

Return type:

None

async close()[source]ΒΆ

Close the database connection.

Return type:

None

async get_users(bot_id, role_slug)[source]ΒΆ

Get all users with a specific role.

Parameters:
  • bot_id (int) – The Telegram bot ID

  • role_slug (str) – The role slug to check for

Returns:

A list of Telegram user IDs

Return type:

list[int]