Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from flask import Flask, request, jsonify
- from typing import Any
- from part_search.search import make_search
- import flask
- app = Flask(__name__)
- def check_dict_request(request_part: Any) -> bool:
- """
- Проверяем, что в запросе содержаться словари нужного типа
- Arg:
- request_part: часть запроса к api поискового алгоритма
- Return:
- возращает True, если запрос в формате словаря с нужными полями,
- в остальных случаях False
- """
- if not isinstance(request_part, dict):
- return False
- if "bank" not in request_part or "doc_num" not in request_part\
- or "low" not in request_part or "high" not in request_part or "request" not in request_part:
- return False
- return True
- @app.route("/part_search", methods=["POST"])
- def part_search_api():
- """
- Api для поиска документа. Принимает запрос в формате списка со словарями
- {"bank": str, "doc_num": int, "low": int, "high": int, "request": str}. Возращает номер параграфа или None
- """
- if not request.is_json:
- return "Запрос не в JSON формате", 400
- json_data = request.get_json()
- references = json_data
- if not isinstance(references, list):
- return "Запрос должен содержать список словарей", 400
- result = []
- for reference in references:
- if not check_dict_request(reference):
- print(f'{reference} должен иметь формат {"bank": str, "doc_num": int, "low": int, "high": int, "request": str}')
- continue
- num = reference["doc_num"]
- bank = reference['bank']
- request = reference['request']
- search_result = make_search(num, bank, request)
- if not search_result:
- print(f'{num=} {bank=} {request=} не найден')
- continue
- one_res = {"par_num": search_result}
- result.append(one_res)
- return jsonify(result)
- if __name__ == "__main__":
- app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement