query_order.py 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. class QueryOrderTool:
  2. name = 'query_order'
  3. route_path = '/admin/mcp/tools/queryOrder'
  4. def __init__(self, api_client=None):
  5. self.api_client = api_client
  6. def metadata(self):
  7. return {
  8. 'name': self.name,
  9. 'description': 'Query orders with the current employee permissions.',
  10. 'input_schema': {
  11. 'type': 'object',
  12. 'properties': {
  13. 'keyword': {'type': 'string'},
  14. 'page': {'type': 'integer', 'minimum': 1},
  15. 'limit': {'type': 'integer', 'minimum': 1, 'maximum': 100},
  16. },
  17. 'required': ['keyword'],
  18. },
  19. }
  20. def call(self, keyword, page=1, limit=20, request_id='rq_query_order'):
  21. if self.api_client is None:
  22. raise RuntimeError('api client is required for query_order')
  23. keyword = str(keyword).strip()
  24. if not keyword:
  25. raise ValueError('keyword is required')
  26. page = max(1, int(page))
  27. limit = max(1, min(100, int(limit)))
  28. payload = {
  29. 'keyword': keyword,
  30. 'page': page,
  31. 'limit': limit,
  32. }
  33. return self.api_client.call_tool(self.name, self.route_path, payload, request_id)