gitscope
← marzneshin / v0.1.3 / app/db/__init__.py
https://dev.kronoz.win/r/marzneshin.git
app/db/__init__.py · Python
Blame Raw
 1from sqlalchemy.exc import SQLAlchemyError
 2from sqlalchemy.orm import Session
 3
 4from .base import Base, SessionLocal, engine  # noqa
 5
 6from .crud import (create_admin, create_notification_reminder,  # noqa
 7                   create_user, delete_notification_reminder, get_admin,
 8                   get_admins, get_jwt_secret_key, get_notification_reminder,
 9                   assure_node_inbounds, get_system_usage,
10                   get_tls_certificate, get_user, get_user_by_id, get_users,
11                   get_users_count, remove_admin, remove_user, revoke_user_sub,
12                   set_owner, update_admin, update_user, update_user_status,
13                   update_user_sub, start_user_expire)
14
15from .models import JWT, System, User  # noqa
16
17
18class GetDB:  # Context Manager
19    def __init__(self):
20        self.db = SessionLocal()
21
22    def __enter__(self):
23        return self.db
24
25    def __exit__(self, _, exc_value, traceback):
26        if isinstance(exc_value, SQLAlchemyError):
27            self.db.rollback()  # rollback on exception
28
29        self.db.close()
30
31
32__all__ = [
33    "get_user",
34    "get_user_by_id",
35    "get_users",
36    "get_users_count",
37    "create_user",
38    "remove_user",
39    "update_user",
40    "update_user_status",
41    "start_user_expire",
42    "update_user_sub",
43    "revoke_user_sub",
44    "set_owner",
45    "get_system_usage",
46    "get_jwt_secret_key",
47    "get_tls_certificate",
48    "get_admin",
49    "create_admin",
50    "update_admin",
51    "remove_admin",
52    "get_admins",
53
54    "create_notification_reminder",
55    "get_notification_reminder",
56    "delete_notification_reminder",
57
58    "GetDB",
59
60    "User",
61    "System",
62    "JWT",
63
64    "Base",
65    "Session",
66]