[ADD]mcp market: Obtain the list of MCP services from MCP Market Source - ModelScope
This commit is contained in:
83
api/app/services/mcp_market_config_service.py
Normal file
83
api/app/services/mcp_market_config_service.py
Normal file
@@ -0,0 +1,83 @@
|
||||
import uuid
|
||||
from sqlalchemy.orm import Session
|
||||
from app.models.user_model import User
|
||||
from app.models.mcp_market_config_model import McpMarketConfig
|
||||
from app.schemas.mcp_market_config_schema import McpMarketConfigCreate, McpMarketConfigUpdate
|
||||
from app.repositories import mcp_market_config_repository
|
||||
from app.core.logging_config import get_business_logger
|
||||
|
||||
# Obtain a dedicated logger for business logic
|
||||
business_logger = get_business_logger()
|
||||
|
||||
|
||||
def create_mcp_market_config(
|
||||
db: Session, mcp_market_config: McpMarketConfigCreate, current_user: User
|
||||
) -> McpMarketConfig:
|
||||
business_logger.info(f"Create a mcp market config base: {mcp_market_config.mcp_market_id}, creator: {current_user.username}")
|
||||
|
||||
try:
|
||||
mcp_market_config.tenant_id = current_user.tenant_id
|
||||
mcp_market_config.created_by = current_user.id
|
||||
business_logger.debug(f"Start creating the mcp market config on mcp_market_id: {mcp_market_config.mcp_market_id}")
|
||||
db_mcp_market_config = mcp_market_config_repository.create_mcp_market_config(
|
||||
db=db, mcp_market_config=mcp_market_config
|
||||
)
|
||||
business_logger.info(
|
||||
f"The mcp market config has been successfully created: {mcp_market_config.mcp_market_id} (ID: {db_mcp_market_config.id}), creator: {current_user.username}")
|
||||
return db_mcp_market_config
|
||||
except Exception as e:
|
||||
business_logger.error(f"Failed to create a mcp marke config: {mcp_market_config.mcp_market_id} - {str(e)}")
|
||||
raise
|
||||
|
||||
|
||||
def get_mcp_market_config_by_id(db: Session, mcp_market_config_id: uuid.UUID, current_user: User) -> McpMarketConfig | None:
|
||||
business_logger.debug(
|
||||
f"Query mcp market config based on ID: mcp_market_config_id={mcp_market_config_id}, username: {current_user.username}")
|
||||
|
||||
try:
|
||||
mcpMarketConfig = mcp_market_config_repository.get_mcp_market_config_by_id(db=db, mcp_market_config_id=mcp_market_config_id)
|
||||
if mcpMarketConfig:
|
||||
business_logger.info(f"mcp market config query successful: (ID: {mcp_market_config_id})")
|
||||
else:
|
||||
business_logger.warning(f"mcp market config does not exist: mcp_market_config_id={mcp_market_config_id}")
|
||||
return mcpMarketConfig
|
||||
except Exception as e:
|
||||
business_logger.error(
|
||||
f"Failed to query the mcp market config based on the ID: {mcp_market_config_id} - {str(e)}")
|
||||
raise
|
||||
|
||||
|
||||
def get_mcp_market_config_by_mcp_market_id(db: Session, mcp_market_id: uuid.UUID, current_user: User) -> McpMarketConfig | None:
|
||||
business_logger.debug(
|
||||
f"Query mcp market config based on mcp_market_id: {mcp_market_id}, username: {current_user.username}")
|
||||
|
||||
try:
|
||||
mcpMarketConfig = mcp_market_config_repository.get_mcp_market_config_by_mcp_market_id(db=db, mcp_market_id=mcp_market_id, tenant_id=current_user.tenant_id)
|
||||
if mcpMarketConfig:
|
||||
business_logger.info(f"mcp market config query successful: (mcp_market_id: {mcp_market_id})")
|
||||
else:
|
||||
business_logger.warning(f"mcp market config does not exist: mcp_market_id={mcp_market_id}")
|
||||
return mcpMarketConfig
|
||||
except Exception as e:
|
||||
business_logger.error(
|
||||
f"Failed to query the mcp market config based on the mcp_market_id: {mcp_market_id} - {str(e)}")
|
||||
raise
|
||||
|
||||
|
||||
def delete_mcp_market_config_by_id(db: Session, mcp_market_config_id: uuid.UUID, current_user: User) -> None:
|
||||
business_logger.info(f"Delete mcp market config: mcp_market_config_id={mcp_market_config_id}, operator: {current_user.username}")
|
||||
|
||||
try:
|
||||
# First, query the mcp market config information for logging purposes
|
||||
mcpMarketConfig = mcp_market_config_repository.get_mcp_market_config_by_id(db=db, mcp_market_config_id=mcp_market_config_id)
|
||||
if mcpMarketConfig:
|
||||
business_logger.debug(f"Execute mcp market config deletion: (ID: {mcp_market_config_id})")
|
||||
else:
|
||||
business_logger.warning(f"The mcp market config to be deleted does not exist: mcp_market_config_id={mcp_market_config_id}")
|
||||
|
||||
mcp_market_config_repository.delete_mcp_market_config_by_id(db=db, mcp_market_config_id=mcp_market_config_id)
|
||||
business_logger.info(
|
||||
f"mcp market config record deleted successfully: mcp_market_config_id={mcp_market_config_id}, operator: {current_user.username}")
|
||||
except Exception as e:
|
||||
business_logger.error(f"Failed to delete mcp market config: mcp_market_config_id={mcp_market_config_id} - {str(e)}")
|
||||
raise
|
||||
109
api/app/services/mcp_market_service.py
Normal file
109
api/app/services/mcp_market_service.py
Normal file
@@ -0,0 +1,109 @@
|
||||
import uuid
|
||||
from sqlalchemy.orm import Session
|
||||
from app.models.user_model import User
|
||||
from app.models.mcp_market_model import McpMarket
|
||||
from app.schemas.mcp_market_schema import McpMarketCreate, McpMarketUpdate
|
||||
from app.repositories import mcp_market_repository
|
||||
from app.core.logging_config import get_business_logger
|
||||
|
||||
# Obtain a dedicated logger for business logic
|
||||
business_logger = get_business_logger()
|
||||
|
||||
|
||||
def get_mcp_markets_paginated(
|
||||
db: Session,
|
||||
current_user: User,
|
||||
filters: list,
|
||||
page: int,
|
||||
pagesize: int,
|
||||
orderby: str = None,
|
||||
desc: bool = False
|
||||
) -> tuple[int, list]:
|
||||
business_logger.debug(
|
||||
f"Query mcp market in pages: username={current_user.username}, page={page}, pagesize={pagesize}, orderby={orderby}, desc={desc}")
|
||||
|
||||
try:
|
||||
total, items = mcp_market_repository.get_mcp_markets_paginated(
|
||||
db=db,
|
||||
filters=filters,
|
||||
page=page,
|
||||
pagesize=pagesize,
|
||||
orderby=orderby,
|
||||
desc=desc
|
||||
)
|
||||
business_logger.info(
|
||||
f"The mcp market paging query has been successful: username={current_user.username}, total={total}, Number of current page={len(items)}")
|
||||
return total, items
|
||||
except Exception as e:
|
||||
business_logger.error(f"Querying mcp market pagination failed: username={current_user.username} - {str(e)}")
|
||||
raise
|
||||
|
||||
|
||||
def create_mcp_market(
|
||||
db: Session, mcp_market: McpMarketCreate, current_user: User
|
||||
) -> McpMarket:
|
||||
business_logger.info(f"Create a mcp market base: {mcp_market.name}, creator: {current_user.username}")
|
||||
|
||||
try:
|
||||
mcp_market.created_by = current_user.id
|
||||
business_logger.debug(f"Start creating the mcp market: {mcp_market.name}")
|
||||
db_mcp_market = mcp_market_repository.create_mcp_market(
|
||||
db=db, mcp_market=mcp_market
|
||||
)
|
||||
business_logger.info(
|
||||
f"The mcp market has been successfully created: {mcp_market.name} (ID: {db_mcp_market.id}), creator: {current_user.username}")
|
||||
return db_mcp_market
|
||||
except Exception as e:
|
||||
business_logger.error(f"Failed to create a mcp market: {mcp_market.name} - {str(e)}")
|
||||
raise
|
||||
|
||||
|
||||
def get_mcp_market_by_id(db: Session, mcp_market_id: uuid.UUID, current_user: User) -> McpMarket | None:
|
||||
business_logger.debug(
|
||||
f"Query mcp market based on ID: mcp_market_id={mcp_market_id}, username: {current_user.username}")
|
||||
|
||||
try:
|
||||
mcpMarket = mcp_market_repository.get_mcp_market_by_id(db=db, mcp_market_id=mcp_market_id)
|
||||
if mcpMarket:
|
||||
business_logger.info(f"mcp market query successful: {mcpMarket.name} (ID: {mcp_market_id})")
|
||||
else:
|
||||
business_logger.warning(f"mcp market does not exist: mcp_market_id={mcp_market_id}")
|
||||
return mcpMarket
|
||||
except Exception as e:
|
||||
business_logger.error(
|
||||
f"Failed to query the mcp market based on the ID: {mcp_market_id} - {str(e)}")
|
||||
raise
|
||||
|
||||
|
||||
def get_mcp_market_by_name(db: Session, name: str, current_user: User) -> McpMarket | None:
|
||||
business_logger.debug(f"Query mcp market based on name: name={name}, username: {current_user.username}")
|
||||
|
||||
try:
|
||||
db_mcp_market = mcp_market_repository.get_mcp_market_by_name(db=db, name=name)
|
||||
if db_mcp_market:
|
||||
business_logger.info(f"mcp market query successful: {name} (ID: {db_mcp_market.id})")
|
||||
else:
|
||||
business_logger.warning(f"mcp market does not exist: name={name}")
|
||||
return db_mcp_market
|
||||
except Exception as e:
|
||||
business_logger.error(f"Failed to query the mcp market based on the name: name={name} - {str(e)}")
|
||||
raise
|
||||
|
||||
|
||||
def delete_mcp_market_by_id(db: Session, mcp_market_id: uuid.UUID, current_user: User) -> None:
|
||||
business_logger.info(f"Delete mcp market: mcp_market_id={mcp_market_id}, operator: {current_user.username}")
|
||||
|
||||
try:
|
||||
# First, query the mcp market information for logging purposes
|
||||
mcpMarket = mcp_market_repository.get_mcp_market_by_id(db=db, mcp_market_id=mcp_market_id)
|
||||
if mcpMarket:
|
||||
business_logger.debug(f"Execute mcp market deletion: {mcpMarket.name} (ID: {mcp_market_id})")
|
||||
else:
|
||||
business_logger.warning(f"The mcp market to be deleted does not exist: mcp_market_id={mcp_market_id}")
|
||||
|
||||
mcp_market_repository.delete_mcp_market_by_id(db=db, mcp_market_id=mcp_market_id)
|
||||
business_logger.info(
|
||||
f"mcp market record deleted successfully: mcp_market_id={mcp_market_id}, operator: {current_user.username}")
|
||||
except Exception as e:
|
||||
business_logger.error(f"Failed to delete mcp market: mcp_market_id={mcp_market_id} - {str(e)}")
|
||||
raise
|
||||
Reference in New Issue
Block a user