Spaces:
Sleeping
Sleeping
| import requests | |
| from public_api.public_api_auth import login | |
| def get_location_status(session_data, warehouse_id, stoloc): | |
| url = "http://euwdsw202em01:4660/api/inventory/v1/locationStatus" | |
| session = session_data["wms_auth"] | |
| # Pass everything from kwargs directly to the API | |
| params = { | |
| "stoloc":stoloc | |
| } | |
| headers = { | |
| "accept": "application/json", | |
| "Content-Type": "application/json" | |
| } | |
| try: | |
| response = session.get(url, params=params, headers=headers, verify=False) | |
| # Standardized 401 Session Recovery | |
| if response.status_code == 401: | |
| print("Session expired. Re-logging in...") | |
| new_session, new_wh, success = login() | |
| if success: | |
| session_data["wms_auth"] = new_session | |
| session_data["user_warehouse_id"] = new_wh | |
| response = new_session.get(url, params=params, headers=headers, verify=False) | |
| # SUCCESS: Return data and the status code for main.py to inspect | |
| if response.status_code == 200: | |
| try: | |
| res_json = response.json() | |
| all_data = res_json.get("data", []) | |
| return {"data": all_data, "error": None, "status_code": 200} | |
| except ValueError: | |
| return {"data": [], "error": "Invalid JSON format", "status_code": 200} | |
| print(f"Location API response code: {response.status_code}\n{response.text}") | |
| return {"data": [], "error": f"Location API Error: {response.text}"} | |
| except Exception as e: | |
| print(f"Location API exception: {e}") | |
| return {"data": [], "error": f"Location API Connection failed: {str(e)}"} |