Skip to content

Commit b6b0c53

Browse files
committed
Added http headers in Intent model
1 parent 8bdea93 commit b6b0c53

File tree

4 files changed

+17
-9
lines changed

4 files changed

+17
-9
lines changed

app/endpoint/controllers.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,8 @@ def api():
169169
if intent.apiTrigger:
170170
isJson = False
171171
parameters = result_json["extractedParameters"]
172-
172+
headers = intent.apiDetails.get_headers()
173+
app.logger.info("headers %s"%headers)
173174
url_template = Template(
174175
intent.apiDetails.url, undefined=SilentUndefined)
175176
rendered_url = url_template.render(**context)
@@ -181,7 +182,7 @@ def api():
181182

182183
try:
183184
result = call_api(rendered_url,
184-
intent.apiDetails.requestType,
185+
intent.apiDetails.requestType,headers,
185186
parameters, isJson)
186187
except Exception as e:
187188
app.logger.warn("API call failed", e)

app/endpoint/utils.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ def get_synonyms():
2222
app.logger.info("loaded synonyms %s",synonyms)
2323
return synonyms
2424

25-
def call_api(url, type, parameters = {}, is_json=False):
25+
def call_api(url, type,headers={}, parameters = {}, is_json=False):
2626
"""
2727
Call external API
2828
:param url:
@@ -33,19 +33,19 @@ def call_api(url, type, parameters = {}, is_json=False):
3333
"""
3434
app.logger.info("Initiating API Call with following info: url => {} payload => {}".format(url,parameters))
3535
if "GET" in type:
36-
response = requests.get(url, params=parameters)
36+
response = requests.get(url,headers=headers, params=parameters)
3737
elif "POST" in type:
3838
if is_json:
39-
response = requests.post(url, json=parameters)
39+
response = requests.post(url,headers=headers, json=parameters)
4040
else:
41-
response = requests.post(url, params=parameters)
41+
response = requests.post(url,headers=headers, params=parameters)
4242
elif "PUT" in type:
4343
if is_json:
44-
response = requests.put(url, json=parameters)
44+
response = requests.put(url,headers=headers, json=parameters)
4545
else:
46-
response = requests.put(url, params=parameters)
46+
response = requests.put(url,headers=headers, params=parameters)
4747
elif "DELETE" in type:
48-
response = requests.delete(url, params=parameters)
48+
response = requests.delete(url,headers=headers, params=parameters)
4949
else:
5050
raise Exception("unsupported request method.")
5151
result = json.loads(response.text)

app/intents/controllers.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ def create_intent():
3636
api_details.jsonData = content.get("apiDetails").get("jsonData")
3737

3838
api_details.url = content.get("apiDetails").get("url")
39+
api_details.headers = content.get("apiDetails").get("headers")
3940
api_details.requestType = content.get("apiDetails").get("requestType")
4041
intent.apiDetails = api_details
4142
else:

app/intents/models.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,15 @@ class ApiDetails(EmbeddedDocument):
3030
"DELETE",
3131
"PUT"],
3232
required=True)
33+
headers = ListField(default=[])
3334
isJson = BooleanField(default=False)
3435
jsonData = StringField(default="{}")
3536

37+
def get_headers(self):
38+
headers = {}
39+
for header in self.headers:
40+
headers[header["headerKey"]]=header["headerValue"]
41+
return headers
3642

3743
class Intent(Document):
3844
name = StringField(max_length=100, required=True, unique=True)

0 commit comments

Comments
 (0)