"""Interface for the ows-carveouts microservice.""" from oto import response from owsrequest import request as requests import sentry_sdk from product.constants import error from product.constants import service_name def delete_carveout(upc): """Delete carveouts. Args: upc (int): product upc to delete carveouts for. Returns: response.Response: status of deletion """ request_body = [] try: delete_status = requests.put( service_name.OWS_CARVEOUTS, "/carveout/{upc}/territory".format(upc=upc), json=request_body, ) return response.Response(status=delete_status.status_code) except Exception as exception: sentry_sdk.capture_exception(exception) return response.create_error_response( code=error.INTERNAL_ERROR, message="connection error", status=500 ) def copy(product_id, new_product_id): """Copy carveouts. Args: product_id (int): product to copy territory carveouts from. new_product_id (int): product to copy territory carveouts to. Returns: response.Response: status of copy """ try: copy_status = requests.post( service_name.OWS_CARVEOUTS, "/carveout/product/{}/copy/{}".format(product_id, new_product_id), ) return response.Response(status=copy_status.status_code) except Exception as exception: sentry_sdk.capture_exception(exception) return response.create_error_response( code=error.INTERNAL_ERROR, message="connection error", status=500 )