feat(doc): add new doc and register into mongodb
This commit is contained in:
parent
cea505cbdd
commit
1c70143f2d
@ -106,3 +106,23 @@ class EmailBounceDoc(Document):
|
||||
"tenant_id"
|
||||
]
|
||||
|
||||
class UsageLogDoc(Document):
|
||||
timestamp: datetime = datetime.utcnow() # timestamp
|
||||
tenant_id: str # tenant id
|
||||
operation: str # operation type
|
||||
request_id: str # request id # TODO: use true one
|
||||
units: int # units
|
||||
status: str # operation status
|
||||
latency_ms: int # latency time(milliseconds)
|
||||
bytes_in: int # input bytes
|
||||
bytes_out: int # output bytes
|
||||
key_id: Optional[str] = None # API Key ID
|
||||
extra: dict = {} # extra information
|
||||
|
||||
class Settings:
|
||||
name = "usage_log_doc"
|
||||
indexes = [
|
||||
"tenant_id",
|
||||
"request_id",
|
||||
"key_id"
|
||||
]
|
||||
@ -1,15 +1,12 @@
|
||||
from webapi.config.site_settings import site_settings
|
||||
from beanie import init_beanie
|
||||
from motor.motor_asyncio import AsyncIOMotorClient
|
||||
from backend.models.models import MessageTemplateDoc, EmailSenderDoc, EmailSendStatusDoc, EmailTrackingDoc, EmailBounceDoc
|
||||
from backend.models.models import MessageTemplateDoc, EmailSenderDoc, EmailSendStatusDoc, EmailTrackingDoc, EmailBounceDoc, UsageLogDoc
|
||||
import os
|
||||
|
||||
# MongoDB config
|
||||
# TODO: for non-local environment, use the following config
|
||||
#MONGODB_URI = os.getenv('MONGODB_URI', 'mongodb+srv://jetli:8IHKx6dZK8BfugGp@freeleaps2.hanbj.mongodb.net/')
|
||||
#MONGODB_NAME = os.getenv('MONGODB_NAME', 'freeleaps2')
|
||||
MONGODB_URI = os.getenv('MONGODB_URI', 'mongodb://localhost:27017/')
|
||||
MONGODB_NAME = os.getenv('MONGODB_NAME', 'interview')
|
||||
MONGODB_URI = os.getenv('MONGODB_URI')
|
||||
MONGODB_NAME = os.getenv('MONGODB_NAME')
|
||||
|
||||
# create MongoDB client
|
||||
client = AsyncIOMotorClient(
|
||||
@ -26,7 +23,8 @@ document_models = [
|
||||
EmailSenderDoc,
|
||||
EmailSendStatusDoc,
|
||||
EmailTrackingDoc,
|
||||
EmailBounceDoc
|
||||
EmailBounceDoc,
|
||||
UsageLogDoc
|
||||
]
|
||||
|
||||
def register(app):
|
||||
@ -40,13 +38,7 @@ def register(app):
|
||||
|
||||
async def initiate_database():
|
||||
"""initiate Beanie database connection"""
|
||||
try:
|
||||
await init_beanie(
|
||||
database=client[MONGODB_NAME],
|
||||
document_models=document_models
|
||||
)
|
||||
print(f"✅ database initialized successfully: {MONGODB_NAME}")
|
||||
print(f" URI: {MONGODB_URI}")
|
||||
except Exception as e:
|
||||
print(f"❌ database initialization failed: {e}")
|
||||
raise
|
||||
|
||||
Loading…
Reference in New Issue
Block a user