Skip to content

Commit d8812c8

Browse files
authored
Merge pull request #168 from salute-developers/feature/DPNLPF-2184_fix_http_request
issue#50: DPNLPF-2184: fix http_request
2 parents 5da1227 + 302a5f9 commit d8812c8

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

smart_kit/action/http.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,11 @@ async def _make_response(self, request_parameters: dict, user: BaseUser):
7777
async with aiohttp.request(**request_parameters) as response:
7878
response.raise_for_status()
7979
self._log_response(user, response)
80-
return response
80+
try:
81+
return await response.json()
82+
except aiohttp.client_exceptions.ContentTypeError:
83+
return await response.content.read()
84+
return None
8185
except (aiohttp.ServerTimeoutError, asyncio.TimeoutError):
8286
self.error = self.TIMEOUT
8387
except aiohttp.ClientError:
@@ -118,11 +122,7 @@ async def process_result(self, response, user, text_preprocessing_result, params
118122
behavior_description = user.descriptions["behaviors"][self.behavior] if self.behavior else None
119123
action = None
120124
if self.error is None:
121-
try:
122-
data = await response.json()
123-
except aiohttp.client_exceptions.ContentTypeError:
124-
data = None
125-
user.variables.set(self.store, data)
125+
user.variables.set(self.store, response)
126126
action = behavior_description.success_action if behavior_description else None
127127
elif behavior_description is not None:
128128
if self.error == self.TIMEOUT:
@@ -139,6 +139,6 @@ async def run(self, user: BaseUser, text_preprocessing_result: BaseTextPreproces
139139
request_parameters = self._get_request_params(user, text_preprocessing_result, params)
140140
self._log_request(user, request_parameters)
141141
response = await self._make_response(request_parameters, user)
142-
if response:
143-
log("response data: %(body)s", params={"body": response.json()}, level="INFO")
142+
if response is not None:
143+
log("response data: %(body)s", params={"body": response}, level="INFO")
144144
return await self.process_result(response, user, text_preprocessing_result, params)

smart_kit/template/static/references/actions/actions.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
{
22
"exception_action": {
3+
"type": "string",
34
"command": "ANSWER_TO_USER",
45
"nodes": {
56
"answer": [
@@ -21,5 +22,13 @@
2122
"type": "template",
2223
"template": "{{ payload.get('new_session', False) and settings['template_settings'].get('reset_context_on_new_session', False)}}"
2324
}
25+
},
26+
"exception_reset_scenario": {
27+
"type": "external",
28+
"action": "exception_action"
29+
},
30+
"timeout_reset_scenario": {
31+
"type": "external",
32+
"action": "exception_action"
2433
}
2534
}

0 commit comments

Comments
 (0)