Skip to content

Commit

Permalink
Merge pull request #77 from conductor-sdk/refactor/http-client
Browse files Browse the repository at this point in the history
Update Task Resource API to use Orkes playground Conductor version docs as base
  • Loading branch information
v1r3n authored May 5, 2022
2 parents ea2d0e9 + e17e7b0 commit bfe5ec7
Show file tree
Hide file tree
Showing 3 changed files with 128 additions and 1 deletion.
2 changes: 1 addition & 1 deletion src/conductor/client/automator/task_runner.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,7 +166,7 @@ def __update_task(self, task_result: TaskResult):
task_id=task_result.task_id,
workflow_instance_id=task_result.workflow_instance_id,
task_definition_name=task_definition_name,
response=str(response)
response=response
)
)
return response
Expand Down
122 changes: 122 additions & 0 deletions src/conductor/client/http/api/task_resource_api.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import six

from conductor.client.http.api_client import ApiClient
from conductor.client.http.models.task_result_status import TaskResultStatus


class TaskResourceApi(object):
Expand Down Expand Up @@ -1467,3 +1468,124 @@ def update_task_with_http_info(self, body, **kwargs): # noqa: E501
_preload_content=params.get('_preload_content', True),
_request_timeout=params.get('_request_timeout'),
collection_formats=collection_formats)

def update_task_by_ref_name(self, output: dict, workflow_id: str, task_ref_name: str, status: TaskResultStatus, **kwargs): # noqa: E501
"""Update a task By Ref Name # noqa: E501
This method makes a synchronous HTTP request by default. To make an
asynchronous HTTP request, please pass async_req=True
>>> thread = api.update_task(output, workflow_id, task_ref_name, status, async_req=True)
>>> result = thread.get()
:param async_req bool
:param dict(str, object) output: (required)
:param str workflow_id: (required)
:param str task_ref_name: (required)
:param str status: (required)
:return: str
If the method is called asynchronously,
returns the request thread.
"""
kwargs['_return_http_data_only'] = True
if kwargs.get('async_req'):
return self.update_task_by_ref_name_with_http_info(output, workflow_id, task_ref_name, status, **kwargs) # noqa: E501
else:
(data) = self.update_task_by_ref_name_with_http_info(output, workflow_id, task_ref_name, status, **kwargs) # noqa: E501
return data

def update_task_by_ref_name_with_http_info(self, body, workflow_id, task_ref_name, status, **kwargs): # noqa: E501
"""Update a task By Ref Name # noqa: E501
This method makes a synchronous HTTP request by default. To make an
asynchronous HTTP request, please pass async_req=True
>>> thread = api.update_task_with_http_info(body, workflow_id, task_ref_name, status, async_req=True)
>>> result = thread.get()
:param async_req bool
:param dict(str, object) body: (required)
:param str workflow_id: (required)
:param str task_ref_name: (required)
:param str status: (required)
:return: str
If the method is called asynchronously,
returns the request thread.
"""

all_params = ['body', 'workflow_id', 'task_ref_name', 'status'] # noqa: E501
all_params.append('async_req')
all_params.append('_return_http_data_only')
all_params.append('_preload_content')
all_params.append('_request_timeout')

params = locals()
for key, val in six.iteritems(params['kwargs']):
if key not in all_params:
raise TypeError(
"Got an unexpected keyword argument '%s'"
" to method update_task" % key
)
params[key] = val
del params['kwargs']
# verify the required parameter 'body' is set
if ('body' not in params or
params['body'] is None):
raise ValueError("Missing the required parameter `body` when calling `update_task`") # noqa: E501
# verify the required parameter 'workflow_id' is set
if ('workflow_id' not in params or
params['workflow_id'] is None):
raise ValueError("Missing the required parameter `workflow_id` when calling `update_task`") # noqa: E501
# verify the required parameter 'task_ref_name' is set
if ('task_ref_name' not in params or
params['task_ref_name'] is None):
raise ValueError("Missing the required parameter `task_ref_name` when calling `update_task`") # noqa: E501
# verify the required parameter 'status' is set
if ('status' not in params or
params['status'] is None):
raise ValueError("Missing the required parameter `status` when calling `update_task`") # noqa: E501

collection_formats = {}

path_params = {}
if 'workflow_id' in params:
path_params['workflowId'] = params['workflow_id'] # noqa: E501
if 'task_ref_name' in params:
path_params['taskRefName'] = params['task_ref_name'] # noqa: E501
if 'status' in params:
path_params['status'] = params['status'] # noqa: E501

query_params = []

header_params = {}

form_params = []
local_var_files = {}

body_params = None
if 'body' in params:
body_params = params['body']
# HTTP header `Accept`
header_params['Accept'] = self.api_client.select_header_accept(
['text/plain']) # noqa: E501

# HTTP header `Content-Type`
header_params['Content-Type'] = self.api_client.select_header_content_type( # noqa: E501
['application/json']) # noqa: E501

# Authentication setting
auth_settings = [] # noqa: E501

return self.api_client.call_api(
'/api/tasks/{workflowId}/{taskRefName}/{status}', 'POST',
path_params,
query_params,
header_params,
body=body_params,
post_params=form_params,
files=local_var_files,
response_type='str', # noqa: E501
auth_settings=auth_settings,
async_req=params.get('async_req'),
_return_http_data_only=params.get('_return_http_data_only'),
_preload_content=params.get('_preload_content', True),
_request_timeout=params.get('_request_timeout'),
collection_formats=collection_formats)
5 changes: 5 additions & 0 deletions src/conductor/client/http/api_client.py
Original file line number Diff line number Diff line change
Expand Up @@ -521,12 +521,17 @@ def __deserialize_primitive(self, data, klass):
:return: int, long, float, str, bool.
"""
try:
if klass == str and type(data) == bytes:
return self.__deserialize_bytes_to_str(data)
return klass(data)
except UnicodeEncodeError:
return six.text_type(data)
except TypeError:
return data

def __deserialize_bytes_to_str(self, data):
return data.decode('utf-8')

def __deserialize_object(self, value):
"""Return a original value.
Expand Down

0 comments on commit bfe5ec7

Please sign in to comment.