From 198bdcfdc609e9a6280408f86471cedbc454da90 Mon Sep 17 00:00:00 2001 From: Saqib Ansari Date: Wed, 20 Apr 2022 14:14:29 +0530 Subject: [PATCH 1/3] fix(india): 401 & 403 client error while generating IRN (cherry picked from commit ee8047aba320a1fb36d2203bd117ed7cb4f9a4ba) # Conflicts: # erpnext/regional/india/e_invoice/utils.py --- erpnext/regional/india/e_invoice/utils.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/erpnext/regional/india/e_invoice/utils.py b/erpnext/regional/india/e_invoice/utils.py index 0036a2bf7216..16f63c621b19 100644 --- a/erpnext/regional/india/e_invoice/utils.py +++ b/erpnext/regional/india/e_invoice/utils.py @@ -12,7 +12,11 @@ import frappe import jwt +<<<<<<< HEAD import six +======= +import requests +>>>>>>> ee8047aba3 (fix(india): 401 & 403 client error while generating IRN) from frappe import _, bold from frappe.core.page.background_jobs.background_jobs import get_info from frappe.integrations.utils import make_get_request, make_post_request @@ -828,14 +832,25 @@ def get_auth_token(self): return self.e_invoice_settings.auth_token def make_request(self, request_type, url, headers=None, data=None): - if request_type == "post": - res = make_post_request(url, headers=headers, data=data) - else: - res = make_get_request(url, headers=headers, data=data) + try: + if request_type == "post": + res = make_post_request(url, headers=headers, data=data) + else: + res = make_get_request(url, headers=headers, data=data) + + except requests.exceptions.HTTPError as e: + if e.response.status_code in [401, 403] and not hasattr(self, "token_auto_refreshed"): + self.auto_refresh_token() + headers = self.get_headers() + return self.make_request(request_type, url, headers, data) self.log_request(url, headers, data, res) return res + def auto_refresh_token(self): + self.fetch_auth_token() + self.token_auto_refreshed = True + def log_request(self, url, headers, data, res): headers.update({"password": self.credentials.password}) request_log = frappe.get_doc( From 712443a91c56d45f6ef8e7ef5bbf048ca6078295 Mon Sep 17 00:00:00 2001 From: Deepesh Garg <42651287+deepeshgarg007@users.noreply.github.com> Date: Fri, 22 Apr 2022 11:48:07 +0530 Subject: [PATCH 2/3] chore: Resolve conflicts --- erpnext/regional/india/e_invoice/utils.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/erpnext/regional/india/e_invoice/utils.py b/erpnext/regional/india/e_invoice/utils.py index 16f63c621b19..fae88b630033 100644 --- a/erpnext/regional/india/e_invoice/utils.py +++ b/erpnext/regional/india/e_invoice/utils.py @@ -12,11 +12,8 @@ import frappe import jwt -<<<<<<< HEAD import six -======= import requests ->>>>>>> ee8047aba3 (fix(india): 401 & 403 client error while generating IRN) from frappe import _, bold from frappe.core.page.background_jobs.background_jobs import get_info from frappe.integrations.utils import make_get_request, make_post_request From 6dddbb9f27354e57d5acc8cf692e6c2493c8ad7c Mon Sep 17 00:00:00 2001 From: Saqib Ansari Date: Fri, 22 Apr 2022 14:15:21 +0530 Subject: [PATCH 3/3] fix: linter --- erpnext/regional/india/e_invoice/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/erpnext/regional/india/e_invoice/utils.py b/erpnext/regional/india/e_invoice/utils.py index fae88b630033..ed5ad2f28fff 100644 --- a/erpnext/regional/india/e_invoice/utils.py +++ b/erpnext/regional/india/e_invoice/utils.py @@ -12,8 +12,8 @@ import frappe import jwt -import six import requests +import six from frappe import _, bold from frappe.core.page.background_jobs.background_jobs import get_info from frappe.integrations.utils import make_get_request, make_post_request