Skip to content

Commit 6846cc3

Browse files
Feature/api client post (#530)
* Enhanced APIClient for including JSON parameter ain post request * Enhanced Vesion * Enhanced for using data/json as per payload * Enhanced request wrapper to accomodate json parameter
1 parent b4082eb commit 6846cc3

File tree

4 files changed

+22
-7
lines changed

4 files changed

+22
-7
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,3 +112,6 @@ venv.bak/
112112

113113
#
114114
*.secret
115+
116+
#visual studio code
117+
.vscode

atlassian/VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.16.0
1+
1.16.1

atlassian/rest_client.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,13 +117,14 @@ def url_joiner(url, path, trailing=None):
117117
url_link += '/'
118118
return url_link
119119

120-
def request(self, method='GET', path='/', data=None, flags=None, params=None, headers=None,
120+
def request(self, method='GET', path='/', data=None, json=None, flags=None, params=None, headers=None,
121121
files=None, trailing=None):
122122
"""
123123
124124
:param method:
125125
:param path:
126126
:param data:
127+
:param json:
127128
:param flags:
128129
:param params:
129130
:param headers:
@@ -140,15 +141,17 @@ def request(self, method='GET', path='/', data=None, flags=None, params=None, he
140141
url += ('&' if params else '') + '&'.join(flags or [])
141142
if files is None:
142143
data = None if not data else json.dumps(data)
144+
json_dump = None if not json else json.dumps(json)
143145
self.log_curl_debug(method=method, url=url, headers=headers,
144-
data=data)
146+
data=data if data else json_dump)
145147

146148
headers = headers or self.default_headers
147149
response = self._session.request(
148150
method=method,
149151
url=url,
150152
headers=headers,
151153
data=data,
154+
json=json,
152155
timeout=self.timeout,
153156
verify=self.verify_ssl,
154157
files=files,
@@ -190,8 +193,8 @@ def get(self, path, data=None, flags=None, params=None, headers=None, not_json_r
190193
log.error(e)
191194
return response.text
192195

193-
def post(self, path, data=None, headers=None, files=None, params=None, trailing=None):
194-
response = self.request('POST', path=path, data=data, headers=headers, files=files, params=params,
196+
def post(self, path, data=None, json=None, headers=None, files=None, params=None, trailing=None):
197+
response = self.request('POST', path=path, data=data, json=None, headers=headers, files=files, params=params,
195198
trailing=trailing)
196199
if self.advanced_mode:
197200
return response

atlassian/service_desk.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ def create_customer_request(self, service_desk_id, request_type_id,
8181
8282
:param service_desk_id: str
8383
:param request_type_id: str
84-
:param values_dict: str
84+
:param values_dict: str/dict
8585
:param raise_on_behalf_of: str
8686
:param request_participants: list
8787
:return: New request
@@ -99,7 +99,16 @@ def create_customer_request(self, service_desk_id, request_type_id,
9999
if request_participants:
100100
data["requestParticipants"] = request_participants
101101

102-
return self.post('rest/servicedeskapi/request', data=data, headers=self.experimental_headers)
102+
param_map = {
103+
"headers": self.experimental_headers
104+
}
105+
106+
if isinstance(values_dict, dict):
107+
param_map["json"] = data
108+
elif isinstance(values_dict, str):
109+
param_map["data"] = data
110+
111+
return self.post('rest/servicedeskapi/request', **param_map)
103112

104113
def get_customer_request_status(self, issue_id_or_key):
105114
"""

0 commit comments

Comments
 (0)