| 123456789101112131415161718192021222324252627 |
- from __future__ import annotations
- from pydantic import ValidationError
- from quart import Blueprint, jsonify
- from app.api.service import ElasticSearchManager
- from app.api.v1.utils import ApiDependencies
- from app.api.v1.utils import ElasticSearchRequest
- from app.api.v1.utils import parse_json, validation_error_response
- def create_elasticsearch_bp(deps: ApiDependencies) -> Blueprint:
- bp = Blueprint("elasticsearch", __name__)
- @bp.route("/es_search", methods=["POST"])
- async def es_search():
- try:
- obj, _ = await parse_json(ElasticSearchRequest)
- except ValidationError as e:
- payload, status = validation_error_response(e)
- return jsonify(payload), status
- manager = ElasticSearchManager(config=deps.config)
- result = await manager.search(keywords=obj.keywords, size=obj.size)
- return jsonify({"code": 0, "message": "success", "data": result})
- return bp
|