FIX: fix request api
This commit is contained in:
parent
d156c1d937
commit
683ad1bec5
@ -112,6 +112,7 @@ class AccuracyViewSet(viewsets.ViewSet):
|
|||||||
try:
|
try:
|
||||||
start_date = timezone.datetime.strptime(start_date_str, '%Y-%m-%d') # We care only about day precision only
|
start_date = timezone.datetime.strptime(start_date_str, '%Y-%m-%d') # We care only about day precision only
|
||||||
end_date = timezone.datetime.strptime(end_date_str, '%Y-%m-%d')
|
end_date = timezone.datetime.strptime(end_date_str, '%Y-%m-%d')
|
||||||
|
end_date = end_date + timezone.timedelta(days=1)
|
||||||
# Round:
|
# Round:
|
||||||
# end_date_str to the beginning of the next day
|
# end_date_str to the beginning of the next day
|
||||||
# start_date_str to the start of the date
|
# start_date_str to the start of the date
|
||||||
@ -119,7 +120,7 @@ class AccuracyViewSet(viewsets.ViewSet):
|
|||||||
end_date = timezone.make_aware(end_date)
|
end_date = timezone.make_aware(end_date)
|
||||||
|
|
||||||
start_date_str = start_date.strftime('%Y-%m-%dT%H:%M:%S%z') # inside logic will include second precision with timezone for calculation
|
start_date_str = start_date.strftime('%Y-%m-%dT%H:%M:%S%z') # inside logic will include second precision with timezone for calculation
|
||||||
end_date_str = (end_date + timezone.timedelta(days=1)).strftime('%Y-%m-%dT%H:%M:%S%z')
|
end_date_str = end_date.strftime('%Y-%m-%dT%H:%M:%S%z')
|
||||||
base_query &= Q(created_at__range=(start_date, end_date))
|
base_query &= Q(created_at__range=(start_date, end_date))
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
raise InvalidException(excArgs="Date format")
|
raise InvalidException(excArgs="Date format")
|
||||||
@ -128,15 +129,13 @@ class AccuracyViewSet(viewsets.ViewSet):
|
|||||||
base_query &= Q(request_id=request_id)
|
base_query &= Q(request_id=request_id)
|
||||||
if redemption_id:
|
if redemption_id:
|
||||||
base_query &= Q(redemption_id=redemption_id)
|
base_query &= Q(redemption_id=redemption_id)
|
||||||
base_query &= Q(is_test_request=False)
|
|
||||||
if isinstance(include_test, str):
|
if isinstance(include_test, str):
|
||||||
include_test = True if include_test=="true" else False
|
include_test = True if include_test=="true" else False
|
||||||
if include_test:
|
if not include_test:
|
||||||
# base_query = ~base_query
|
base_query &= Q(is_test_request=False)
|
||||||
base_query.children = base_query.children[:-1]
|
|
||||||
elif isinstance(include_test, bool):
|
elif isinstance(include_test, bool):
|
||||||
if include_test:
|
if not include_test:
|
||||||
base_query = ~base_query
|
base_query &= Q(is_test_request=False)
|
||||||
if isinstance(is_reviewed, str):
|
if isinstance(is_reviewed, str):
|
||||||
if is_reviewed == "reviewed":
|
if is_reviewed == "reviewed":
|
||||||
base_query &= Q(is_reviewed=True)
|
base_query &= Q(is_reviewed=True)
|
||||||
@ -675,7 +674,7 @@ class AccuracyViewSet(viewsets.ViewSet):
|
|||||||
|
|
||||||
subscription_request_files = SubscriptionRequestFile.objects.filter(request=subscription_request.id)
|
subscription_request_files = SubscriptionRequestFile.objects.filter(request=subscription_request.id)
|
||||||
|
|
||||||
if not data["reviewed_result"]:
|
if "reviewed_result" not in data:
|
||||||
raise InvalidException(excArgs=f'reviewed_result')
|
raise InvalidException(excArgs=f'reviewed_result')
|
||||||
|
|
||||||
reviewed_result = data["reviewed_result"]
|
reviewed_result = data["reviewed_result"]
|
||||||
@ -690,9 +689,9 @@ class AccuracyViewSet(viewsets.ViewSet):
|
|||||||
subscription_request_file.reviewed_result['imei_number'] = []
|
subscription_request_file.reviewed_result['imei_number'] = []
|
||||||
elif subscription_request_file.doc_type == 'imei':
|
elif subscription_request_file.doc_type == 'imei':
|
||||||
subscription_request_file.reviewed_result = {
|
subscription_request_file.reviewed_result = {
|
||||||
"retailername": None,
|
"retailername": None,
|
||||||
"sold_to_party": None,
|
"sold_to_party": None,
|
||||||
"purchase_date": [],
|
"purchase_date": [],
|
||||||
"imei_number": []}
|
"imei_number": []}
|
||||||
if len(reviewed_result["imei_number"]) - 1 >= subscription_request_file.index_in_request:
|
if len(reviewed_result["imei_number"]) - 1 >= subscription_request_file.index_in_request:
|
||||||
subscription_request_file.reviewed_result["imei_number"] = reviewed_result["imei_number"][subscription_request_file.index_in_request]
|
subscription_request_file.reviewed_result["imei_number"] = reviewed_result["imei_number"][subscription_request_file.index_in_request]
|
||||||
@ -706,3 +705,50 @@ class AccuracyViewSet(viewsets.ViewSet):
|
|||||||
return JsonResponse({'message': 'success.'}, status=200)
|
return JsonResponse({'message': 'success.'}, status=200)
|
||||||
else:
|
else:
|
||||||
return JsonResponse({'error': 'Invalid request method.'}, status=405)
|
return JsonResponse({'error': 'Invalid request method.'}, status=405)
|
||||||
|
|
||||||
|
@extend_schema(
|
||||||
|
request={
|
||||||
|
'multipart/form-data': {
|
||||||
|
'type': 'object',
|
||||||
|
'properties': {
|
||||||
|
'reason': {
|
||||||
|
'type': 'string',
|
||||||
|
'default': '''"Sample reason"''',
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
responses=None,
|
||||||
|
tags=['Accuracy']
|
||||||
|
)
|
||||||
|
@action(detail=False, url_path=r"request_image/(?P<request_id>[\w\-]+)/(?P<request_image_id>[\w\-]+)", methods=["POST"])
|
||||||
|
def request_image(self, request, request_id=None, request_image_id=None):
|
||||||
|
if request.method == 'POST':
|
||||||
|
data = request.data
|
||||||
|
|
||||||
|
base_query = Q(request_id=request_id)
|
||||||
|
|
||||||
|
subscription_request = SubscriptionRequest.objects.filter(base_query)
|
||||||
|
|
||||||
|
if subscription_request.count() == 0:
|
||||||
|
raise NotFoundException(excArgs=request_id)
|
||||||
|
|
||||||
|
subscription_request = subscription_request.first()
|
||||||
|
|
||||||
|
subscription_request_files = SubscriptionRequestFile.objects.filter(request=subscription_request.id)
|
||||||
|
|
||||||
|
if "reason" not in data:
|
||||||
|
raise InvalidException(excArgs=f'reason')
|
||||||
|
|
||||||
|
reason = data["reason"]
|
||||||
|
|
||||||
|
is_available = False
|
||||||
|
for subscription_request_file in subscription_request_files:
|
||||||
|
if subscription_request_file.file_name.split(".")[0] == request_image_id:
|
||||||
|
subscription_request_file.reason = reason
|
||||||
|
subscription_request_file.save()
|
||||||
|
is_available = True
|
||||||
|
if not is_available:
|
||||||
|
raise NotFoundException(excArgs=request_id + "/" + request_image_id)
|
||||||
|
else:
|
||||||
|
return JsonResponse({'error': 'Invalid request method.'}, status=405)
|
||||||
|
@ -615,6 +615,8 @@ def predict_result_to_ready(result):
|
|||||||
"sold_to_party": "",
|
"sold_to_party": "",
|
||||||
"purchase_date": [],
|
"purchase_date": [],
|
||||||
"imei_number": [],}
|
"imei_number": [],}
|
||||||
|
if not result:
|
||||||
|
return dict_result
|
||||||
dict_result["retailername"] = result.get("content", {}).get("document", [{}])[0].get("content", [{}])[0].get("value", None)
|
dict_result["retailername"] = result.get("content", {}).get("document", [{}])[0].get("content", [{}])[0].get("value", None)
|
||||||
dict_result["sold_to_party"] = result.get("content", {}).get("document", [{}])[0].get("content", [{}, {}])[1].get("value", None)
|
dict_result["sold_to_party"] = result.get("content", {}).get("document", [{}])[0].get("content", [{}, {}])[1].get("value", None)
|
||||||
dict_result["purchase_date"] = result.get("content", {}).get("document", [{}])[0].get("content", [{}, {}, {}])[2].get("value", [])
|
dict_result["purchase_date"] = result.get("content", {}).get("document", [{}])[0].get("content", [{}, {}, {}])[2].get("value", [])
|
||||||
|
Loading…
Reference in New Issue
Block a user