Skip to content
Snippets Groups Projects
Commit 6e1a87d1 authored by rha104's avatar rha104
Browse files

FSHO-19: Added update batch method. And fixed format to match the post_new_batch method

parent 4840bd32
No related branches found
No related tags found
1 merge request!14FSHO-19: Added update batch method. And fixed format to match the post_new_batch method
Pipeline #74967 failed
...@@ -41,6 +41,7 @@ class SetraEndpoints: ...@@ -41,6 +41,7 @@ class SetraEndpoints:
transaction_url='api/transaction/', transaction_url='api/transaction/',
voucher_url='api/voucher/', voucher_url='api/voucher/',
new_batch_url='api/addtrans/', new_batch_url='api/addtrans/',
put_batch_url='api/addtrans/',
batch_complete_url='api/batch_complete/', batch_complete_url='api/batch_complete/',
batch_error_url="api/batch_error/", batch_error_url="api/batch_error/",
parameters_url="api/parameters/", parameters_url="api/parameters/",
...@@ -50,6 +51,7 @@ class SetraEndpoints: ...@@ -50,6 +51,7 @@ class SetraEndpoints:
self.transaction_url = transaction_url self.transaction_url = transaction_url
self.voucher_url = voucher_url self.voucher_url = voucher_url
self.new_batch_url = new_batch_url self.new_batch_url = new_batch_url
self.put_batch_url = put_batch_url
self.batch_complete_url = batch_complete_url self.batch_complete_url = batch_complete_url
self.batch_error_url = batch_error_url self.batch_error_url = batch_error_url
self.parameters_url = parameters_url self.parameters_url = parameters_url
...@@ -95,6 +97,9 @@ class SetraEndpoints: ...@@ -95,6 +97,9 @@ class SetraEndpoints:
def post_new_batch(self): def post_new_batch(self):
return urllib.parse.urljoin(self.baseurl, self.new_batch_url) return urllib.parse.urljoin(self.baseurl, self.new_batch_url)
def put_update_batch(self):
return urllib.parse.urljoin(self.baseurl, self.new_batch_url)
def batch_complete(self, batch_id: str): def batch_complete(self, batch_id: str):
""" """
URL for Batch endpoint URL for Batch endpoint
...@@ -269,6 +274,25 @@ class SetraClient(object): ...@@ -269,6 +274,25 @@ class SetraClient(object):
response.raise_for_status() response.raise_for_status()
return response return response
def put_update_batch(self, batchdata: Batch):
"""
PUT updates an existing batch with vouchers and transactions,
if the batch exists in setra, and has status=created, or validation failed.
Returns 404 if no batch was found, 202 for successful update, or 409 if batch was found, but
did not meet the status criteria mentioned above.
"""
url = self.urls.put_update_batch()
headers = {'Content-Type': 'application/json'}
response = self.put(url,
data=batchdata.json(),
headers=headers,
return_response=True)
if response.status_code in (409, 202):
return 'OK'
else:
response.raise_for_status()
return response
def get_batch_complete(self, batch_id: str): def get_batch_complete(self, batch_id: str):
""" """
GETs complete batch (with vouchers and transactions) GETs complete batch (with vouchers and transactions)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment