import requests import logging from rest_framework.response import Response from .constants import * def get_new_token(url): """Function to get a new token.""" payload = {"UserName": USERNAME, "Password": PASSWORD} try: response = requests.post(url, json=payload) response_data = response.json() if response.status_code == 200 and response_data.get("IsSuccess"): return response_data["Value"]["Token"] else: return None except requests.RequestException as e: logging.error(f"Network error while getting token: {str(e)}") return None def request_to_api(url, token, payload=None, timeout=10): """General function to make API requests.""" if payload is None: payload = {} headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"} try: response = requests.post(url, json=payload, headers=headers, timeout=timeout) if response.ok: return response.json() else: logging.error(f"Error from API ({url}): {response.status_code} - {response.text}") return None except requests.Timeout: logging.error(f"Timeout while requesting {url}") return None except requests.RequestException as e: logging.error(f"Request error to {url}: {str(e)}") return None def create_response(status, message=None, data=None, status_code=200): """Function to create consistent API responses.""" return Response({ "status": status, "message": message, "data": data }, status=status_code)