import datetime import json import requests from django.utils import timezone from constance import config from .models import CallRequest, RequestLog def add_call_request(call_request: CallRequest, logging=True): call_request.reset_request() data = dict( number_b=call_request.patient_phone, name=call_request.patient_name, date=call_request.date.strftime('%Y-%m-%d'), time=call_request.date.strftime('%H:%M'), doctor=call_request.doctor_name, address=call_request.address, ) hooks = None if logging: log = RequestLog( request_url=config.HOST, request_body=json.dumps(data, ensure_ascii=False, indent=4), ) hooks = {'response': log.response_hook} r = requests.post( config.HOST, auth=(config.USERNAME, config.PASSWORD), json=data, hooks=hooks ) call_request.response_status_code = r.status_code call_request.request_time = timezone.now() if r.status_code == 200: call_request.call_id = r.json()['request_id'] call_request.request_status = CallRequest.RequestStatus.SENT elif r.status_code == 400: call_request.call_id = r.json()['request_id'] call_request.response_message = r.json()['error'] call_request.request_status = CallRequest.RequestStatus.ERROR call_request.save(update_fields=( 'call_id', 'request_status', 'request_time', 'response_status_code', 'response_message', )) def call_history(date_from: datetime.date, date_to: datetime.date): pass