medicine-mts/appa/mts_api.py

59 lines
1.6 KiB
Python

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