amélioration du programme en cas de nécessité de reprise du programme
This commit is contained in:
40
api.py
40
api.py
@ -3,7 +3,33 @@ import base64
|
||||
import requests
|
||||
import ssl
|
||||
from requests.adapters import HTTPAdapter
|
||||
import logging
|
||||
import os
|
||||
from logging.handlers import TimedRotatingFileHandler
|
||||
|
||||
log_directory = "logs"
|
||||
|
||||
# 🔧 Configuration du handler avec rotation quotidienne
|
||||
log_file = os.path.join(log_directory, "woocommerce.log")
|
||||
handler = TimedRotatingFileHandler(
|
||||
filename=log_file,
|
||||
when="midnight", # ⏰ Rotation tous les jours à minuit
|
||||
interval=1, # 📅 Chaque 1 jour
|
||||
backupCount=7, # ♻️ Garde les 7 derniers fichiers de log
|
||||
encoding='utf-8' # 🧾 Pour supporter tous les caractères
|
||||
)
|
||||
|
||||
# 📋 Format du log
|
||||
formatter = logging.Formatter(
|
||||
fmt="%(asctime)s - %(levelname)s - %(message)s",
|
||||
datefmt="%Y-%m-%d %H:%M:%S"
|
||||
)
|
||||
handler.setFormatter(formatter)
|
||||
|
||||
# 🔌 Récupère le logger
|
||||
logger = logging.getLogger(__name__)
|
||||
logger.setLevel(logging.DEBUG) # 👁 Niveau minimum à capturer
|
||||
logger.addHandler(handler)
|
||||
|
||||
class WoocommerceApiClient(API):
|
||||
def __init__(self, url, wc_consumer_key, wc_consumer_secret, wp_application_user, wp_application_password, verify_ssl=False, **kwargs):
|
||||
@ -59,8 +85,8 @@ class WoocommerceApiClient(API):
|
||||
try:
|
||||
if self._is_wc_api(endpoint):
|
||||
kwargs.update(self._get_requests_general_kwargs(endpoint))
|
||||
print(kwargs) # ✅ Montre tout le dict
|
||||
print(kwargs["headers"]) # ✅ Si tu veux un champ en particulier
|
||||
#print(kwargs) # ✅ Montre tout le dict
|
||||
#print(kwargs["headers"]) # ✅ Si tu veux un champ en particulier
|
||||
return requests.get(**kwargs)
|
||||
else:
|
||||
return super().get(endpoint, **kwargs)
|
||||
@ -83,7 +109,7 @@ class WoocommerceApiClient(API):
|
||||
kwargs['files'] = files
|
||||
if data:
|
||||
kwargs['json'] = data
|
||||
print("kwargs envoyés à requests.post:", kwargs)
|
||||
#print("kwargs envoyés à requests.post:", kwargs)
|
||||
response = requests.post(**kwargs)
|
||||
elif self._is_wp_api(endpoint):
|
||||
kwargs.update(self._get_requests_general_kwargs(endpoint))
|
||||
@ -91,10 +117,14 @@ class WoocommerceApiClient(API):
|
||||
response = requests.post(**kwargs)
|
||||
else:
|
||||
response = super().post(endpoint, data, **kwargs)
|
||||
if response and response.status_code not in (500, 400):
|
||||
return response
|
||||
if response.status_code not in (500, ) or retry >= self.max_retry:
|
||||
return response
|
||||
else:
|
||||
retry += 1
|
||||
logger.debug(f"status_code={response.status_code} - retry #{retry}")
|
||||
except requests.exceptions.ConnectionError:
|
||||
if retry < self.max_retry:
|
||||
logger.debug(f"got requests.exceptions.ConnectionError - retry #{retry}")
|
||||
print(".", end="")
|
||||
retry += 1
|
||||
else: raise
|
||||
|
||||
Reference in New Issue
Block a user