Skip to content

Commit

Permalink
aaq search endpoint
Browse files Browse the repository at this point in the history
  • Loading branch information
Hlamallama committed Aug 8, 2024
1 parent 48bc4d8 commit 40aa6c8
Show file tree
Hide file tree
Showing 4 changed files with 61 additions and 40 deletions.
27 changes: 11 additions & 16 deletions aaq/tests/test_utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,14 +45,13 @@ def test_search_function(self):

search_request = responses.calls[0]

self.assertEqual(response.status_code, 200)
self.assertIn("message", response.data)
self.assertIn("body", response.data)
self.assertIn("feedback_secret_key", response.data)
self.assertIn("query_id", response.data)
self.assertEqual(response.data["query_id"], 1)
self.assertIn("message", response)
self.assertIn("body", response)
self.assertIn("feedback_secret_key", response)
self.assertIn("query_id", response)
self.assertEqual(response["query_id"], 1)
self.assertEqual(json.loads(search_request.request.body), payload)
assert response.data == {
assert response == {
"message": "*0* - Example content title\n"
"*1* - Another example content title",
"body": {
Expand Down Expand Up @@ -86,21 +85,17 @@ def test_urgency_check(self):
)

message_text = "Test message"
payload = {
"message_text": message_text,
}

response = check_urgency_v2(message_text)

[request] = responses.calls

self.assertEqual(response.status_code, 200)
self.assertIn("details", response.data)
self.assertIn("is_urgent", response.data)
self.assertIn("matched_rules", response.data)
self.assertEqual(json.loads(request.request.body), payload)
self.assertIn("details", response)
self.assertIn("is_urgent", response)
self.assertIn("matched_rules", response)
self.assertEqual(json.loads(request.request.body), message_text)

assert response.data == {
assert response == {
"details": {
"0": {"distance": 0.1, "urgency_rule": "Blurry vision and dizziness"},
"1": {"distance": 0.2, "urgency_rule": "Nausea that lasts for 3 days"},
Expand Down
53 changes: 44 additions & 9 deletions aaq/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -384,15 +384,15 @@ def test_search(self):
)

self.assertEqual(response.status_code, 200)
self.assertIn("message", response.data)
self.assertIn("body", response.data)
self.assertIn("query_id", response.data)
self.assertIn("feedback_secret_key", response.data)
self.assertIn("details", response.data)
self.assertIn("is_urgent", response.data)
self.assertIn("matched_rules", response.data)

assert response.data == {
self.assertIn("message", response.json())
self.assertIn("body", response.json())
self.assertIn("query_id", response.json())
self.assertIn("feedback_secret_key", response.json())
self.assertIn("details", response.json())
self.assertIn("is_urgent", response.json())
self.assertIn("matched_rules", response.json())

assert response.json() == {
"message": "*0* - Example content title\n"
"*1* - Another example content title",
"body": {
Expand Down Expand Up @@ -427,6 +427,41 @@ def test_search_invalid_request_body(self):
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(response.json(), {"query_text": ["This field is required."]})

@responses.activate
def test_request(self):
user = get_user_model().objects.create_user("test")
self.client.force_authenticate(user)

fakeAaqApi = FakeAaqApi()
responses.add_callback(
responses.POST,
"http://aaq_v2/search",
callback=fakeAaqApi.post_search,
content_type="application/json",
)

fakeAaqUdV2Api = FakeAaqUdV2Api()
responses.add_callback(
responses.POST,
"http://aaq_v2/check-urgency",
callback=fakeAaqUdV2Api.post_urgency_detect_return_true,
content_type="application/json",
)

payload = {
"generate_llm_response": "testing",
"query_metadata": {},
"query_text": "query_text",
}

response = self.client.post(
self.url, data=json.dumps(payload), content_type="application/json"
)
self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST)
self.assertEqual(
response.json(), {"generate_llm_response": ["Must be a valid boolean."]}
)


class ContentFeedbackViewTests(APITestCase):
url = reverse("aaq-content-feedback")
Expand Down
19 changes: 5 additions & 14 deletions aaq/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,15 @@


def check_urgency_v2(message_text):
urgency_check_payload = {
"message_text": message_text,
}
url = urllib.parse.urljoin(settings.AAQ_V2_API_URL, "check-urgency")
headers = {
"Authorization": settings.AAQ_V2_AUTH,
"Content-Type": "application/json",
}

response = requests.request(
"POST", url, json=urgency_check_payload, headers=headers
)
response = requests.request("POST", url, json=message_text, headers=headers)

return Response(response.json(), status=status.HTTP_200_OK)
return response.json()


def search(query_text, generate_llm_response, query_metadata):
Expand Down Expand Up @@ -69,12 +64,8 @@ def search(query_text, generate_llm_response, query_metadata):
"query_id": query_id,
}

urgency_check_payload = {
"message_text": query_text,
}

check_urgency_response = check_urgency_v2(urgency_check_payload)
check_urgency_response = check_urgency_v2(query_text)

json_msg.update(check_urgency_response.data)
json_msg.update(check_urgency_response)

return Response(json_msg, status=status.HTTP_200_OK)
return json_msg
2 changes: 1 addition & 1 deletion aaq/views.py
Original file line number Diff line number Diff line change
Expand Up @@ -181,4 +181,4 @@ def aaq_search(request):

response = search(query_text, generate_llm_response, query_metadata)

return Response(response.data, status=status.HTTP_200_OK)
return Response(response, status=status.HTTP_200_OK)

0 comments on commit 40aa6c8

Please sign in to comment.