diff --git a/lambda_handlers/history.py b/lambda_handlers/history.py index 509f529..5734dea 100644 --- a/lambda_handlers/history.py +++ b/lambda_handlers/history.py @@ -10,18 +10,36 @@ def handle_history(event, context): # Logic for /servicenow/history - url = f"{ENVIRONMENT_VARIABLES['API_URL']}/sysapproval_approver?sysparm_limit=10" - + query_params = event.get('queryStringParameters', {}) + url = f"{ENVIRONMENT_VARIABLES['API_URL']}/table/sysapproval_approver" + query_params = event.get('queryStringParameters', {}) + params = { + 'sysparm_limit': 10, + 'sysparm_display_value': True, + 'sysparm_query': "" + } + + if query_params: + sysparm_limit = query_params.get('sysparm_limit') + sysparm_display_value = query_params.get('sysparm_display_value') + sysparm_query = query_params.get('sysparm_query') + + if sysparm_limit: + params['sysparm_limit'] = sysparm_limit + if sysparm_display_value: + params['sysparm_display_value'] = sysparm_display_value + if sysparm_query: + params['sysparm_query'] = sysparm_query try: response = requests.get( url, + params=params, auth=HTTPBasicAuth(ENVIRONMENT_VARIABLES['USERNAME'], ENVIRONMENT_VARIABLES['PASSWORD']) ) - response.raise_for_status() # Raise an exception for bad responses (4xx, 5xx) + response.raise_for_status() data = response.json() - # Process the data as needed print(data) return { diff --git a/lambda_handlers/item.py b/lambda_handlers/item.py index 945b53a..ed24a26 100644 --- a/lambda_handlers/item.py +++ b/lambda_handlers/item.py @@ -12,10 +12,19 @@ def handle_item(event, context): 'statusCode': 400, 'body': json.dumps({'error': 'Invalid request'}) } - item_id = event['path'].split('/')[-1] + url = "" + query_params = event.get('queryStringParameters', {}) # Logic for /servicenow/item/ - url = f"{ENVIRONMENT_VARIABLES['API_URL']}/x_rnod_csod_serv_0_service_ops_request/{item_id}" + if query_params: + item_id = query_params.get('item_id') + if item_id: + url = f"{ENVIRONMENT_VARIABLES['API_URL']}/task/{item_id}" + else: + return { + 'statusCode': 400, + 'body': json.dumps({'error': 'Invalid request'}) + } try: diff --git a/lambda_handlers/items.py b/lambda_handlers/items.py index 7b32b35..4c3bdf0 100644 --- a/lambda_handlers/items.py +++ b/lambda_handlers/items.py @@ -6,14 +6,31 @@ from common.constants.environment_variables import ENVIRONMENT_VARIABLES -def handle_items(): +def handle_items(event, context): # Logic for /servicenow/items - url = f"{ENVIRONMENT_VARIABLES['API_URL']}/sysapproval_approver?sysparm_limit=10&sysparm_display_value=true" - + url = f"{ENVIRONMENT_VARIABLES['API_URL']}/sysapproval_approver" + query_params = event.get('queryStringParameters', {}) + params = { + 'sysparm_limit': 10, + 'sysparm_display_value': True, + 'sysparm_query': "" + } + if query_params: + sysparm_limit = query_params.get('sysparm_limit') + sysparm_display_value = query_params.get('sysparm_display_value') + sysparm_query = query_params.get('sysparm_query') + + if sysparm_limit: + params['sysparm_limit'] = sysparm_limit + if sysparm_display_value: + params['sysparm_display_value'] = sysparm_display_value + if sysparm_query: + params['sysparm_query'] = sysparm_query try: response = requests.get( url, + params=params, auth=HTTPBasicAuth(ENVIRONMENT_VARIABLES['USERNAME'], ENVIRONMENT_VARIABLES['PASSWORD']) ) response.raise_for_status() # Raise an exception for bad responses (4xx, 5xx) diff --git a/lambda_handlers/patch_items.py b/lambda_handlers/patch_items.py index 5e3f829..da675c1 100644 --- a/lambda_handlers/patch_items.py +++ b/lambda_handlers/patch_items.py @@ -13,9 +13,19 @@ def handle_patch_item(event, context): 'statusCode': 400, 'body': json.dumps({'error': 'Invalid request'}) } - item_id = event['path'].split('/')[-1] + url = "" + query_params = event.get('queryStringParameters', {}) + # Logic for /servicenow/item/ + if query_params: + item_id = query_params.get('item_id') + if item_id: + url = f"{ENVIRONMENT_VARIABLES['API_URL']}/task/{item_id}" + else: + return { + 'statusCode': 400, + 'body': json.dumps({'error': 'Invalid request'}) + } patch_data = event['body'] - url = f"{ENVIRONMENT_VARIABLES['API_URL']}/sysapproval_approver/{item_id}" try: response = requests.patch( diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..2c24336 --- /dev/null +++ b/requirements.txt @@ -0,0 +1 @@ +requests==2.31.0