gitscope
← marzneshin / v0.5.1 / 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
 5from .crud import (
 6    create_admin,
 7    create_notification_reminder,  # noqa
 8    create_user,
 9    delete_notification_reminder,
10    get_admin,
11    get_admins,
12    get_jwt_secret_key,
13    get_notification_reminder,
14    ensure_node_inbounds,
15    get_system_usage,
16    get_tls_certificate,
17    get_user,
18    get_user_by_id,
19    get_users,
20    get_users_count,
21    remove_admin,
22    remove_user,
23    revoke_user_sub,
24    set_owner,
25    update_admin,
26    update_user,
27    update_user_status,
28    update_user_sub,
29)
30from .models import JWT, System, User  # noqa
31
32
33class GetDB:  # Context Manager
34    def __init__(self):
35        self.db = SessionLocal()
36
37    def __enter__(self):
38        return self.db
39
40    def __exit__(self, _, exc_value, traceback):
41        if isinstance(exc_value, SQLAlchemyError):
42            self.db.rollback()  # rollback on exception
43
44        self.db.close()
45
46
47__all__ = [
48    "get_user",
49    "get_user_by_id",
50    "get_users",
51    "get_users_count",
52    "create_user",
53    "remove_user",
54    "update_user",
55    "update_user_status",
56    "update_user_sub",
57    "revoke_user_sub",
58    "set_owner",
59    "get_system_usage",
60    "get_jwt_secret_key",
61    "get_tls_certificate",
62    "get_admin",
63    "create_admin",
64    "update_admin",
65    "remove_admin",
66    "get_admins",
67    "create_notification_reminder",
68    "get_notification_reminder",
69    "delete_notification_reminder",
70    "GetDB",
71    "User",
72    "System",
73    "JWT",
74    "Base",
75    "Session",
76]