more cool features

This commit is contained in:
2023-10-30 23:27:40 +07:00
parent 27bd2780da
commit ce88bb6dc8
12 changed files with 95 additions and 19 deletions
+1
View File
@@ -0,0 +1 @@
from . import config, models, requests
+7
View File
@@ -0,0 +1,7 @@
from sqlalchemy.ext.asyncio import async_sessionmaker, create_async_engine
import config
DB_CONNECT_URL = f"postgresql+asyncpg://{config.psql_login}:{config.psql_password}@{config.psql_host}/{config.psql_database}"
engine = create_async_engine(DB_CONNECT_URL)
async_session = async_sessionmaker(engine)
+14
View File
@@ -0,0 +1,14 @@
from sqlalchemy import (BigInteger, Column, Identity, Text)
from sqlalchemy.orm import DeclarativeBase
class Base(DeclarativeBase):
pass
class UsersTokens(Base):
__tablename__ = "users_tokens"
id = Column("id", BigInteger, Identity(start=1, increment=1, minvalue=1, cycle=False, cache=1), nullable=False, primary_key=True)
vkid = Column("vkid", BigInteger, nullable=False)
token = Column("token", Text, nullable=False)
+35
View File
@@ -0,0 +1,35 @@
from loguru import logger
from sqlalchemy import select, update
import db
async def execute_statement(statement) -> None:
"""
Возвращает результат выполнения statement
:param statement:
:return:
"""
try:
async with db.config.async_session() as session:
await session.execute(statement)
await session.commit()
except Exception as e:
logger.exception(e)
# return None
async def get_user_token(user_id: int) -> str:
"""
Возвращает токен пользователя
:param user_id: VKID
"""
try:
async with db.config.async_session() as session:
result = await session.execute(select(db.models.UsersTokens).where(db.models.UsersTokens.vkid == user_id))
return await result.scalars().one_or_none()
except Exception as e:
logger.exception(e)
return None