initial commit
This commit is contained in:
46
한국투자증권(API)/MCP/Kis Trading MCP/module/middleware.py
Normal file
46
한국투자증권(API)/MCP/Kis Trading MCP/module/middleware.py
Normal file
@@ -0,0 +1,46 @@
|
||||
import uuid
|
||||
from datetime import datetime
|
||||
import time
|
||||
|
||||
from fastmcp.server.middleware import Middleware, MiddlewareContext
|
||||
|
||||
import module.factory as factory
|
||||
|
||||
# 기본 미들웨어
|
||||
class EnvironmentMiddleware(Middleware):
|
||||
def __init__(self, environment):
|
||||
self.environment = environment
|
||||
|
||||
async def on_call_tool(self, context: MiddlewareContext, call_next):
|
||||
ctx = context.fastmcp_context
|
||||
|
||||
# time counter start
|
||||
t0 = time.perf_counter()
|
||||
|
||||
# started_at
|
||||
started_dt = datetime.now()
|
||||
ctx.set_state(factory.CONTEXT_STARTED_AT, started_dt.strftime("%Y-%m-%d %H:%M:%S"))
|
||||
|
||||
# request id
|
||||
request_id = uuid.uuid4().hex
|
||||
ctx.set_state(factory.CONTEXT_REQUEST_ID, request_id)
|
||||
|
||||
# context setup
|
||||
ctx.set_state(factory.CONTEXT_ENVIRONMENT, self.environment)
|
||||
|
||||
try:
|
||||
result = await call_next(context)
|
||||
return result
|
||||
except Exception as e:
|
||||
raise e
|
||||
finally:
|
||||
# ended at
|
||||
ended_at = datetime.now()
|
||||
ctx.set_state(factory.CONTEXT_ENDED_AT, ended_at.strftime("%Y-%m-%d %H:%M:%S"))
|
||||
|
||||
# time counter end
|
||||
elapsed_sec = time.perf_counter() - t0
|
||||
ctx.set_state(factory.CONTEXT_ELAPSED_SECONDS, round(elapsed_sec, 2))
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user